QAnything [BUG] < title> RuntimeError: generator ignored GeneratorExit

iih3973s  于 2个月前  发布在  其他
关注(0)|答案(3)|浏览(52)

是否已有关于该错误的issue或讨论? | Is there an existing issue / discussion for this?

  • 我已经搜索过已有的issues和讨论 | I have searched the existing issues / discussions

该问题是否在FAQ中有解答? | Is there an existing answer for this in FAQ?

  • 我已经搜索过FAQ | I have searched FAQ

当前行为 | Current Behavior

已经修改llm_for_openai_api.py为openai接口,并且已经通过本地测试。使用docker启动(命令为“bash ./run.sh -c cloud -i 0”),streaming=False,服务启动正常,前端展示正常,可以正常新建知识库。
但是在问问题后,会一直反复调用sanic_api.py中local_doc_chat接口,前端一开始没有报错,然后查询sanic_api.log, 可以看到openai正常返回了结果(ChatCompletion(id='cmpl-782b8d6783034163b48abec915a07346',包含了content的正常结果 )。然后报下面错误:

Exception ignored in: <generator object OpenAILLM._call at 0x7f881c11b610>
Traceback (most recent call last):
  File "/workspace/qanything_local/qanything_kernel/core/local_doc_qa.py", line 265, in get_knowledge_based_answer
    yield response, history
RuntimeError: generator ignored GeneratorExit

然后程序继续调用local_doc_chat接口,重新调用openai接口并且结果返回正常,RuntimeError: generator ignored GeneratorExit报错继续出现,前端也没有报错。然后程序继续重复以上调用,直到出现如下错误:
Error code: 429 - {'error': {'message': 'Your account ************* request reached max concurrency: 1, please try again after 1 seconds', 'type': 'rate_limit_reached_error'}}
请问大家怎么解决!!

期望行为 | Expected Behavior

  • No response*

运行环境 | Environment

- OS:
- NVIDIA Driver:
- CUDA:
- docker:
- docker-compose:
- NVIDIA GPU:
- NVIDIA GPU Memory:

QAnything日志 | QAnything logs

Exception ignored in: <generator object OpenAILLM._call at 0x7f881c11aea0>
Traceback (most recent call last):
File "/workspace/qanything_local/qanything_kernel/core/local_doc_qa.py", line 265, in get_knowledge_based_answer
yield response, history
RuntimeError: generator ignored GeneratorExit

复现方法 | Steps To Reproduce

  1. 适配llm_for_openai_api.py为openai接口
  2. docker 启动 bash ./run.sh -c cloud -i 0
  3. 前端提问

备注 | Anything else?

  • No response*
azpvetkf

azpvetkf1#

您好,根据我所查到的资料,Sanic后端调用OpenAI接口次数取决于您的代码逻辑。如果您想要修改前端retry次数,可以在前端代码中设置retry次数。如果您想要修改后端调用OpenAI接口次数,可以在后端代码中设置调用次数。

ttvkxqim

ttvkxqim2#

理论上来说,前端调用一次问答只会调用一次local_qa_chat接口,后端只会调用一次openai。但是,Docker的前端代码目前存在bug,Python版的前端已经修复了这个问题。Docker版暂无排期,我们预计下周发布v2.0版本,合并Docker和Python版本。到时候可以再体验一下。

qgelzfjb

qgelzfjb3#

理论上来说,前端调用一次问答只会调用一次local_qa_chat接口,后端只会调用一次openai。但是,docker的前端代码目前存在bug,python版的前端已经修复了这个问题。docker版暂无排期,我们预计下周发布v2.0版本,合并docker和python版本。到时候可以再体验一下。

感谢告知,已经切换到python版本。期待v2.0版本!

相关问题