You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用自定义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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:52:13