首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用文件参数的Openai语义搜索

不使用文件参数的Openai语义搜索
EN

Stack Overflow用户
提问于 2021-12-22 17:49:16
回答 1查看 174关注 0票数 1

据我所知,您可以使用documents参数或file参数告诉openai您想要执行搜索的标签。我正在使用documents参数获得预期的结果。使用file参数我得到了不满意的结果。我希望他们是一样的。

当使用documents参数执行搜索时。

代码语言:javascript
复制
response = dict(openai.Engine('davinci').search(
    query='sitcom',
    #file=file_id,
    max_rerank=5,
    documents=["white house", "school", "seinfeld"],
    return_metadata=False))

..I得到了预期的结果。“情景喜剧”以771分赢得了搜索。

代码语言:javascript
复制
{'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文件。

代码语言:javascript
复制
{"text": "white house", "metadata": "metadata here"}
{"text": "school", "metadata": "metadata here"}
{"text": "seinfeld", "metadata": "metadata here"}

然后我将文件上传到openai服务器。

代码语言:javascript
复制
res = openai.File.create(file=open('temp.jsonl'), purpose="search")

在哪里..。

代码语言:javascript
复制
file_id = res['id']

我一直等到服务器处理这个文件。

代码语言:javascript
复制
response = dict(openai.Engine('davinci').search(
    query='sitcom',
    file=file_id,
    max_rerank=5,
    #documents=["white house", "school", "seinfeld"],
    return_metadata=False))

但是,当我执行搜索时,我会收到以下消息。

代码语言:javascript
复制
No similar documents were found in file with ID 'file-LzHkASUxbDjTAWBhHxHpIOf4'.Please upload more documents or adjust your query.

只有当我的查询与标签完全匹配时才会得到结果。

代码语言:javascript
复制
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参数,结果不应该相同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-23 01:52:05

重新读取文档时,当使用file参数而不是documents参数时,服务器首先使用提供的query执行基本的“关键字”搜索,以缩小搜索结果的范围,然后使用相同的query进行语义搜索。

这真令人扫兴。

只是为了提供一个有用的例子..。

代码语言:javascript
复制
{"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参数时,只执行语义搜索,这就是为什么它在这种情况下工作的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70453161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档