langchain 关键错误:'' : output_key未找到[在_get_input_output返回inputs[prompt_input_key], outputs[output_key]]

w8biq8rn  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(48)

从错误信息来看,问题出在langchain/memory/chat_memory.py文件的第51行。当尝试获取outputs[output_key]时,出现了KeyError: ''。这意味着outputs字典中没有找到对应的键值。

为了解决这个问题,你可以尝试以下方法:

  1. 检查outputs字典是否正确生成。确保在调用prep_outputs方法时,传入了正确的参数。

  2. 在调用get_LLM_response函数之前,打印outputs字典的内容,以确保其包含了正确的键值对。例如:

def get_LLM_response(prompt, context, vector_store):
    # ... 其他代码 ...
    response = retrieval_chain.invoke({"question": query, "context": documents, "input": ""})
    print("Outputs before calling get_LLM_response:", outputs)
    # ... 其他代码 ...
  1. 如果outputs字典中的键值对是动态生成的,那么在调用get_LLM_response函数之前,确保已经正确地设置了这些键值对。

  2. 如果上述方法都无法解决问题,建议查阅LangChain的官方文档或在GitHub上提交一个issue,以获取更多关于此错误的详细信息。

daupos2t

daupos2t1#

你没有使用与内存密钥相对应的正确输入密钥。请参阅以下内容:

question_generator_template = PromptTemplate(
        input_variables=[ # your input variables are not correct.
    "chat_history",
    "question", 
],
    template= (  
    """
Combine the chat history and follow up question into a standalone question.
Chat History: {chat_history}
Follow up question: {question}
""")
)

question_generator_chain = LLMChain(
    llm=llm,
    prompt=question_generator_template,
)

# Create retrieval chain
retrieval_chain = ConversationalRetrievalChain(
    combine_docs_chain=document_chain,
    question_generator=question_generator_chain,
    retriever=retriever,
    memory=ConversationBufferMemory(memory_key="chat_history", input_key="question") # should use question as input key
)

相关问题