Skip to content

Latest commit

 

History

History
109 lines (88 loc) · 3.24 KB

File metadata and controls

109 lines (88 loc) · 3.24 KB
title ❓ query

.query() method empowers developers to ask questions and receive relevant answers through a user-friendly query API. Function signature is given below:

Parameters

Question to ask Configure different llm settings such as prompt, temprature, number_documents etc. The purpose is to test the prompt structure without actually running LLM inference. Defaults to `False` A dictionary of key-value pairs to filter the chunks from the vector database. Defaults to `None` Return citations along with the LLM answer. Defaults to `False`

Returns

If `citations=False`, return a stringified answer to the question asked.
If `citations=True`, returns a tuple with answer and citations respectively.

Usage

With citations

If you want to get the answer to question and return both answer and citations, use the following code snippet:

from embedchain import App

# Initialize app
app = App()

# Add data source
app.add("https://www.forbes.com/profile/elon-musk")

# Get relevant answer for your query
answer, sources = app.query("What is the net worth of Elon?", citations=True)
print(answer)
# Answer: The net worth of Elon Musk is $221.9 billion.

print(sources)
# [
#    (
#        'Elon Musk PROFILEElon MuskCEO, Tesla$247.1B$2.3B (0.96%)Real Time Net Worthas of 12/7/23 ...',
#        {
#           'url': 'https://www.forbes.com/profile/elon-musk', 
#           'score': 0.89,
#           ...
#        }
#    ),
#    (
#        '74% of the company, which is now called X.Wealth HistoryHOVER TO REVEAL NET WORTH BY YEARForbes ...',
#        {
#           'url': 'https://www.forbes.com/profile/elon-musk', 
#           'score': 0.81,
#           ...
#        }
#    ),
#    (
#        'founded in 2002, is worth nearly $150 billion after a $750 million tender offer in June 2023 ...',
#        {
#           'url': 'https://www.forbes.com/profile/elon-musk', 
#           'score': 0.73,
#           ...
#        }
#    )
# ]
When `citations=True`, note that the returned `sources` are a list of tuples where each tuple has two elements (in the following order): 1. source chunk 2. dictionary with metadata about the source chunk - `url`: url of the source - `doc_id`: document id (used for book keeping purposes) - `score`: score of the source chunk with respect to the question - other metadata you might have added at the time of adding the source

Without citations

If you just want to return answers and don't want to return citations, you can use the following example:

from embedchain import App

# Initialize app
app = App()

# Add data source
app.add("https://www.forbes.com/profile/elon-musk")

# Get relevant answer for your query
answer = app.query("What is the net worth of Elon?")
print(answer)
# Answer: The net worth of Elon Musk is $221.9 billion.