据我所知,您可以使用documents参数或file参数告诉openai您想要执行搜索的标签。我正在使用documents参数获得预期的结果。使用file参数我得到了不满意的结果。我希望他们是一样的。
当使用documents参数执行搜索时。
response = dict(openai.Engine('davinci').search(
query='sitcom',
#file=file_id,
max_rerank=5,
documents=["white house", "school", "seinfeld"],
return_metadata=False))..I得到了预期的结果。“情景喜剧”以771分赢得了搜索。
{'object': 'list', 'data': [<OpenAIObject search_result at 0xb5e8ef48> JSON: {
"document": 0,
"object": "search_result",
"score": 147.98
}, <OpenAIObject search_result at 0xb5ebd148> JSON: {
"document": 1,
"object": "search_result",
"score": 211.021
}, <OpenAIObject search_result at 0xb5ebd030> JSON: {
"document": 2,
"object": "search_result",
"score": 771.348
}], 'model': 'davinci:2020-05-03'}现在尝试使用file参数创建一个内容为.的temp.jsonl文件。
{"text": "white house", "metadata": "metadata here"}
{"text": "school", "metadata": "metadata here"}
{"text": "seinfeld", "metadata": "metadata here"}然后我将文件上传到openai服务器。
res = openai.File.create(file=open('temp.jsonl'), purpose="search")在哪里..。
file_id = res['id']我一直等到服务器处理这个文件。
response = dict(openai.Engine('davinci').search(
query='sitcom',
file=file_id,
max_rerank=5,
#documents=["white house", "school", "seinfeld"],
return_metadata=False))但是,当我执行搜索时,我会收到以下消息。
No similar documents were found in file with ID 'file-LzHkASUxbDjTAWBhHxHpIOf4'.Please upload more documents or adjust your query.只有当我的查询与标签完全匹配时才会得到结果。
response = dict(openai.Engine('davinci').search(
query='seinfeld',
file=file_id,
max_rerank=5,
#documents=["white house", "school", "seinfeld"],
return_metadata=False))
{'object': 'list', 'data': [<OpenAIObject search_result at 0xb5e74f48> JSON: {
"document": 0,
"object": "search_result",
"score": 668.846,
"text": "seinfeld"
}], 'model': 'davinci:2020-05-03'}我做错了什么?使用documents参数或file参数,结果不应该相同吗?
发布于 2021-12-23 01:52:05
重新读取文档时,当使用file参数而不是documents参数时,服务器首先使用提供的query执行基本的“关键字”搜索,以缩小搜索结果的范围,然后使用相同的query进行语义搜索。
这真令人扫兴。
只是为了提供一个有用的例子..。
{"text": "stairway to the basement", "metadata": "metadata here"}
{"text": "school", "metadata": "metadata here"}
{"text": "stairway to heaven", "metadata": "metadata here"}现在,使用查询“‘s最著名的歌曲阶梯”,服务器将缩小结果到文档0和文档2,为“楼梯”令牌找到匹配项。然后,它将执行一个语义搜索,并对两者进行评分。文件2(“通往天堂的阶梯”)将有最高的关联得分。
使用查询“楼梯到地下楼层”将给文档0(“楼梯到地下室”)最高的关联得分。
这是令人失望的,因为查询必须对关键字搜索和语义搜索都很有用。
在我最初的文章中,关键字搜索没有提供任何结果,因为查询只是为语义搜索而设计的。当使用documents参数时,只执行语义搜索,这就是为什么它在这种情况下工作的原因。
https://stackoverflow.com/questions/70453161
复制相似问题