使用自定义RetrieverQueryEngine时出现tenacity.RetryError求助
问题描述
我使用以下代码实现带重排功能的自定义检索查询引擎:
rerank = SentenceTransformerRerank( model="cross-encoder/ms-marco-MiniLM-L-2-v2", top_n=3 ) response_synthesizer = get_response_synthesizer(streaming=True) try: vector_retriever = self._vector_index.as_retriever( similarity_top_k=10) keyword_retriever = self._keyword_index.as_retriever() custom_retriever = CustomRetriever( vector_retriever, keyword_retriever) custom_query_engine = RetrieverQueryEngine( retriever=custom_retriever, response_synthesizer=response_synthesizer, node_postprocessors=[rerank]) response = custom_query_engine.query(query) answer = generatorize_response(response.response_gen)
运行代码时抛出错误:
tenacity.RetryError: RetryError[<Future at 0x7c4b17a48610 state=finished raised APIRemovedInV1>]
已确认密钥及相关配置均正确,请求技术帮助。
解决方案
这个错误核心是API版本兼容问题,APIRemovedInV1表明你调用的方法在当前依赖版本中已被移除,结合代码场景可按以下步骤排查修复:
- 规范LLM初始化:若使用OpenAI系模型,需改用V1 API对应的
ChatOpenAI类,指定兼容的模型(如gpt-3.5-turbo),示例:from llama_index.llms.openai import ChatOpenAI llm = ChatOpenAI(model="gpt-3.5-turbo", streaming=True) - 显式绑定LLM到响应合成器:修改
get_response_synthesizer调用,传入初始化好的LLM实例,避免依赖默认的旧版API配置:response_synthesizer = get_response_synthesizer(llm=llm, streaming=True) - 更新核心依赖:执行命令升级相关库,解决版本兼容问题:
pip install --upgrade llama-index tenacity openai sentence-transformers - 验证重排模型加载:确认
cross-encoder/ms-marco-MiniLM-L-2-v2模型能正常加载,若网络受限,可手动下载模型到本地后指定路径加载,避免因模型下载失败触发重试错误。
内容的提问来源于stack exchange,提问作者Vishwas
相关产品推荐
相关产品推荐

