[AI Embedchain] API手册 Query

.query()方法赋予开发者通过一个用户友好的查询API来提问和接收相关答案的能力。方法的签名如下:

使用

带有引用的使用

如果你想要得到问题的答案并返回答案和引用,使用以下代码片段:

带有引用的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from embedchain import App

# 初始化应用
app = App()

# 添加数据源
app.add("https://www.forbes.com/profile/elon-musk")

# 获取查询的相关答案
answer, sources = app.query("Elon的净资产是多少?", citations=True)
print(answer)
# 答案:Elon Musk的净资产是$221.9亿美元。

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,
#           ...
#        }
#    )
# ]

citations=True时,请注意返回的sources是一个元组的列表,其中每个元组有两个元素(以下顺序):

  1. 源块
  2. 源块的相关元数据字典
    • url: 源的URL
    • doc_id: 文档ID(用于记账目的)
    • score: 源块相对于问题的分数
    • 其他你可能在添加源时添加的元数据

不带引用的使用

如果你只想返回答案而不想要引用,你可以使用以下示例:

不带引用的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from embedchain import App

# 初始化应用
app = App()

# 添加数据源
app.add("https://www.forbes.com/profile/elon-musk")

# 获取查询的相关答案
answer = app.query("Elon的净资产是多少?")
print(answer)
# 答案:Elon Musk的净资产是$221.9亿美元。