OpenAI GPT3 Search API 在本地无法工作

我在自己的Jsonlines文件上使用GPT 3搜索模型的Python客户端。当我在Google Colab Notebook上运行代码进行测试时,它运行良好并返回搜索结果。但是,当我在本地机器(Mac M1)上作为一个运行在localhost上的Web应用程序使用Flask进行Web服务功能时,它会出现以下错误:

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

即使我按照OpenAI文档中给出的完全相同的示例来实现,也会出现这个错误。搜索示例的链接在这里提供:搜索示例链接

如果我使用GPT3 playground使用的完成API,它在本地机器和colab notebook上运行得非常好。(代码链接

我的代码如下所示:

import openaiopenai.api_key = API_KEYfile = 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")

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

返回的文件对象看起来像这样(误导性):

enter image description here

它在Google Colab中工作是因为openai.File.create调用和搜索调用在两个不同的单元格中,这给了它时间在逐个执行单元格时完成处理。如果我在一个单元格中编写所有相同的代码,它也会在那里出现相同的错误。

因此,我不得不根据数据大小引入4-7秒的等待时间,在openai.File.create调用后使用time.sleep(5),然后再调用openai.Engine(“davinci”).search,这解决了问题。:)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注