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

使用ConversationalRetrievalChain触发KeyError: 'generated_text'问题求助

解决ConversationalRetrievalChain调用时的'generated_text' KeyError问题
  • 检查HuggingFacePipeline配置
    该错误核心是LangChain调用HuggingFacePipeline时,返回响应结构不符合预期。初始化Gemma-2B-it的pipeline时,需明确指定任务类型为text-generation,并设置return_full_text=False(仅返回生成文本,避免结构混乱)。示例代码:

    from langchain.llms import HuggingFacePipeline
    from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
    
    model_name = "google/gemma-2b-it"
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name)
    
    pipe = pipeline(
        "text-generation",
        model=model,
        tokenizer=tokenizer,
        max_new_tokens=512,
        return_full_text=False,
        temperature=0.7
    )
    
    llm = HuggingFacePipeline(pipeline=pipe)
    
  • 适配Gemma模型的Prompt模板
    模型对输入格式敏感,需使用Gemma专属的对话指令格式,避免因Prompt格式错误导致返回结构异常。示例模板:

    from langchain.prompts import PromptTemplate
    
    prompt_template = """<start_of_turn>user
    {question}
    <end_of_turn>
    <start_of_turn>model"""
    
    PROMPT = PromptTemplate(
        template=prompt_template, input_variables=["question"]
    )
    
    qa = ConversationalRetrievalChain.from_llm(
        llm=llm,
        retriever=retriever,
        combine_docs_chain_kwargs={"prompt": PROMPT}
    )
    
  • 锁定依赖库版本
    依赖库版本更新可能导致结构兼容问题,回退至之前正常运行的版本组合:

    pip install langchain==0.1.10 transformers==4.38.2 huggingface-hub==0.22.2
    
  • 验证Pipeline返回结构
    单独测试pipeline输出,确认是否包含generated_text字段:

    test_response = pipe("Hello, how are you?")
    print(test_response)
    # 正常返回应为列表格式:[{'generated_text': '...'}],若结构异常则调整pipeline参数
    

内容的提问来源于stack exchange,提问作者CitrusBoy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:27:08