OpenAI GPT3 搜索 API 无法在本地运行

OpenAI GPT3 Search API not working locally

我在自己的 Jsonlines 文件上使用 python 客户端进行 GPT 3 搜索模型。当我 运行 Google Colab Notebook 上的代码用于测试目的时,它工作正常并且 returns 搜索响应。但是,当我 运行 本地计算机 (Mac M1) 上的代码作为 Web 应用程序 (运行ning 在本地主机上) 使用 flask 实现 Web 服务功能时,它会出现以下错误:

openai.error.InvalidRequestError: File is still processing.  Check back later.

即使我实现与 OpenAI 文档中给出的示例完全相同的示例,也会发生此错误。 link 到 search example is given here.

如果我使用 GPT3 playground 使用的完成 API,它 运行 在本地机器和 colab notebook 上完全没问题。 (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)

知道为什么会出现这种奇怪的行为吗?我该如何解决?谢谢。

问题出在这一行:

file = openai.File.create(file=open(jsonFileName), purpose="search")

它 returns 带有文件 ID 和状态的调用已上传,这使得上传和文件处理似乎已完成。然后我将该文件 ID 传递给搜索 API,但实际上它尚未完成处理,因此搜索 API 抛出错误 openai.error.InvalidRequestError: File is still processing. Check back later.

返回的文件对象如下所示(误导):

它在 google colab 中工作,因为 openai.File.create 调用和搜索调用在 2 个不同的单元格中,这使它有时间在我一个一个地执行单元格时完成处理。如果我在一个单元格中编写所有相同的代码,它会给我同样的错误。

因此,我不得不引入 4-7 秒的等待时间,具体取决于您的数据大小,time.sleep(5) 在 openai.File.create 调用之后调用 openai.Engine("davinci ").search 调用并解决了问题。 :)