OpenAI GPT3 搜索 API 无法在本地运行
Posted
技术标签:
【中文标题】OpenAI GPT3 搜索 API 无法在本地运行【英文标题】:OpenAI GPT3 Search API not working locally 【发布时间】:2022-01-21 06:34:10 【问题描述】:我在我自己的 Jsonlines 文件上使用 Python 客户端进行 GPT 3 搜索模型。当我出于测试目的在 Google Colab Notebook 上运行代码时,它可以正常工作并返回搜索响应。但是,当我在本地机器(Mac M1)上将代码作为 Web 应用程序(在 localhost 上运行)使用烧瓶实现 Web 服务功能时,会出现以下错误:
openai.error.InvalidRequestError: File is still processing. Check back later.
即使我实现了与 OpenAI 文档中给出的完全相同的示例,也会发生此错误。 search example is given here的链接。
如果我使用 GPT3 游乐场使用的完成 API,它在本地机器和 colab 笔记本上运行得非常好。 (code link here)
我的代码如下:
import openai
openai.api_key = API_KEY
file = openai.File.create(file=open(jsonFileName), purpose="search")
response = openai.Engine("davinci").search(
search_model = "davinci",
query = query,
max_rerank = 5,
file = file.id
)
for res in response.data:
print(res.text)
知道为什么会发生这种奇怪的行为,我该如何解决?谢谢。
【问题讨论】:
【参考方案1】:问题出在这一行:
file = openai.File.create(file=open(jsonFileName), purpose="search")
它返回带有文件 ID 和已上传状态的调用,这使得上传和文件处理似乎已完成。然后我将该文件 ID 传递给搜索 API,但实际上它尚未完成处理,因此搜索 API 抛出错误 openai.error.InvalidRequestError: File is still processing. Check back later.
返回的文件对象如下所示(误导):
它在 google colab 中有效,因为 openai.File.create 调用和 search 调用位于 2 个不同的单元格中,这使它有时间在我一个一个执行单元格时完成处理。如果我在一个单元格中编写所有相同的代码,它会给我同样的错误。
因此,我不得不根据您的数据大小引入 4-7 秒的等待时间,time.sleep(5)
在 openai.File.create 调用之后,然后再调用 openai.Engine("davinci").search 调用和解决了这个问题。 :)
【讨论】:
以上是关于OpenAI GPT3 搜索 API 无法在本地运行的主要内容,如果未能解决你的问题,请参考以下文章
基于GPT3.5实现本地知识库解决方案-利用向量数据库和GPT向量接口-实现智能回复并限制ChatGPT回答的范围...