OpenAI GPT3 Search API not working locally

题意:"OpenAI GPT-3 搜索 API 在本地无法工作"

问题背景:

I am using the python client for GPT 3 search model on my own Jsonlines files. When I run the code on Google Colab Notebook for test purposes, it works fine and returns the search responses. But when I run the code on my local machine (Mac M1) as a web application (running on localhost) using flask for web service functionalities, it gives the following error:

"我正在使用 Python 客户端在我自己的 Jsonlines 文件上运行 GPT-3 搜索模型。当我在 Google Colab Notebook 上运行代码进行测试时,它可以正常工作并返回搜索结果。但是,当我在本地机器(Mac M1)上将代码作为一个使用 Flask 提供网络服务功能的 Web 应用程序(在本地主机上运行)时,却出现了以下错误:"

python 复制代码
openai.error.InvalidRequestError: File is still processing.  Check back later.

This error occurs even if I implement the exact same example as given in OpenAI documentation. The link to the search example is given here.

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

It runs perfectly fine on local machine and on colab notebook if I use the completion API that is used by the GPT3 playground. (code link here)

"如果我使用 GPT-3 Playground 使用的 completion API,无论是在本地机器还是在 Colab Notebook 上,代码都能正常运行。(代码链接在此)"

The code that I have is as follows:

"我使用的代码如下:"

python 复制代码
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)

Any idea why this strange behaviour is occurring and how can I solve it? Thanks.

"有什么想法为什么会出现这种奇怪的行为,我该如何解决?谢谢。"

问题解决:

The problem was on this line:

"问题出在这一行:"

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

It returns the call with a file ID and status uploaded which makes it seem like the upload and file processing is complete. I then passed that fileID to the search API, but in reality it had not completed processing and so the search API threw the error openai.error.InvalidRequestError: File is still processing. Check back later.

"它返回了一个包含文件 ID 和状态为 'uploaded' 的调用,这让它看起来像是上传和文件处理已经完成。然后我将该 fileID 传递给搜索 API,但实际上处理尚未完成,因此搜索 API 抛出了错误 `openai.error.InvalidRequestError: File is still processing. Check back later.`"

The returned file object looks like this (misleading):

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

It worked in google colab because the openai.File.create call and the search call were in 2 different cells, which gave it the time to finish processing as I executed the cells one by one. If I write all of the same code in one cell, it gave me the same error there.

"它在 Google Colab 中工作正常,因为 `openai.File.create` 调用和搜索调用在两个不同的单元格中,这让我在逐个执行单元格时给了它完成处理的时间。如果我把所有代码写在一个单元格中,它也会给我同样的错误。"

So, I had to introduce a wait time for 4-7 seconds depending on the size of your data, time.sleep(5) after openai.File.create call before calling the openai.Engine("davinci").search call and that solved the issue. :)

"因此,我必须在调用 `openai.File.create` 后引入一个 4-7 秒的等待时间,根据数据的大小,使用 `time.sleep(5)`,然后再调用 `openai.Engine("davinci").search`,这样就解决了问题。:)"

相关推荐
T糖锅G35 分钟前
小白自学python第二天
python
满怀10151 小时前
【OpenCV图像处理实战】从基础操作到工业级应用
图像处理·人工智能·python·opencv·计算机视觉·编程入门
AI视觉网奇1 小时前
四元数转旋转矩阵
人工智能·pytorch·python
Apifox.2 小时前
Apifox 4月更新|Apifox在线文档支持LLMs.txt、评论支持使用@提及成员、支持为团队配置「IP 允许访问名单」
前端·人工智能·后端·ai·ai编程
Bruce_Liuxiaowei2 小时前
基于Python+Flask的MCP SDK响应式文档展示系统设计与实现
开发语言·python·flask·mcp
PyAIGCMaster2 小时前
Vscode已经打开的python项目,如何使用已经建立的虚拟环境
ide·vscode·python
Tiger_shl3 小时前
【Python语言基础】24、并发编程
java·数据库·python
<<3 小时前
基于Django的权限管理平台
后端·python·django
QMT量化交易3 小时前
如何解决PyQt从主窗口打开新窗口时出现闪退的问题
python·pyqt
databook3 小时前
『Plotly实战指南』--样式定制高级篇
python·数据分析·数据可视化