QwenLM / Qwen-Agent

Agent framework and applications built upon Qwen2, featuring Function Calling, Code Interpreter, RAG, and Chrome extension.
https://pypi.org/project/qwen-agent/
Other
2.51k stars 249 forks source link

ParallelDocQA可以限制相关句子的长度或数量吗? #191

Open L9qmzn opened 3 weeks ago

L9qmzn commented 3 weeks ago

我用一本70万字的小说做测试。很多问题得到的相关句子长度都超过1万tokens,最多的一次得到了9万tokens的相关句子。。。 我使用的模型是qwen2-72B-instruct和qwen2-7B-instruct。

报错:

2024-06-09 19:36:51,906 - utils.py - 69 - ERROR - Traceback (most recent call last):
  File "C:\Users\11988\PycharmProjects\agent_research\venv\Lib\site-packages\qwen_agent\agents\doc_qa\parallel_doc_qa.py", line 93, in _retrieve_according_to_member_responses
    *_, last = keygen.run([Message(USER, query)])
    ^^^^^^^^
  File "C:\Users\11988\PycharmProjects\agent_research\venv\Lib\site-packages\qwen_agent\agent.py", line 87, in run
    for rsp in self._run(messages=new_messages, **kwargs):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\11988\PycharmProjects\agent_research\venv\Lib\site-packages\qwen_agent\agents\keygen_strategies\gen_keyword.py", line 69, in _run
    return self._call_llm(messages=messages)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
qwen_agent.llm.base.ModelServiceError: 
Error code: 400. Error message: The input messages exceed the maximum context length (5800 tokens) after keeping only the system message and the latest one user message (around 14470 tokens). To configure the context limit, please specifiy "max_input_tokens" in the model generate_cfg. Example: generate_cfg = {..., "max_input_tokens": 14500}
L9qmzn commented 3 weeks ago

我暂时解决了这个问题。我将相关句子按照限定长度分组生成搜索查询词,然后取了查询词的并集作为最终的搜索查询词。

linnnff commented 5 days ago

我暂时解决了这个问题。我将相关句子按照限定长度分组生成搜索查询词,然后取了查询词的并集作为最终的搜索查询词。

请问如何修改代码

L9qmzn commented 5 days ago

我暂时解决了这个问题。我将相关句子按照限定长度分组生成搜索查询词,然后取了查询词的并集作为最终的搜索查询词。

请问如何修改代码

现在手边没有电脑,晚上回复您。

JialinWangPKU commented 5 days ago

你好,我们优化了ParallelDocQA在召回时Keygen的生成流程,可以解决这个问题。 详情可见issue192。 请拉取main分支进行体验。