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

Bedrock服务InvokeModel调用报错及Retriever无响应问题求助

问题分析与解决方案

错误根源

ValueError:Bedrock服务抛出错误:调用InvokeModel操作时发生(ValidationException)错误:输入请求格式错误:#: 未找到必填键[messages],请重新格式化输入后重试。

这个错误的核心原因是你使用的Bedrock模型(如Anthropic Claude 3系列)要求输入必须遵循聊天消息格式(包含messages键),但当前代码的自定义prompt是纯文本模板,没有封装成模型要求的结构。此外,代码中存在冗余操作:RetrievalQA会自动通过retriever获取上下文并填充到prompt,手动调用retriever.get_relevant_documents再传入qa会导致格式冲突。

修正步骤与代码示例

1. 切换为聊天模型适配的Prompt格式

使用ChatPromptTemplate替代PromptTemplate,按照模型要求的角色消息结构定义prompt:

2. 删除冗余的上下文获取操作

RetrievalQA会自动处理上下文的检索与填充,无需手动获取后传入。

3. 确保LLM实例为聊天模型类型

使用ChatBedrock而非Bedrock类初始化模型,它会自动处理messages格式的请求封装。

修正后的完整代码

from langchain.chat_models import ChatBedrock
from langchain.prompts import ChatPromptTemplate
from langchain.chains import RetrievalQA

def get_response(llm, vectorstore, question):
    # 定义适配聊天模型的prompt模板
    prompt_template = ChatPromptTemplate.from_messages([
        ("system", "请使用给定的上下文简洁回答问题。如果不知道答案,请直接说不知道,不要编造内容。"),
        ("human", "上下文:\n<context>\n{context}\n</context>\n问题:{question}")
    ])
    
    # 初始化向量存储检索器
    retriever = vectorstore.as_retriever(
        search_type="similarity", search_kwargs={"k": 5}
    )
    
    # 创建RetrievalQA链
    qa = RetrievalQA.from_chain_type(
        llm=llm,
        chain_type="stuff",
        retriever=retriever,
        return_source_documents=True,
        chain_type_kwargs={"prompt": prompt_template}
    )
    
    # 直接传入问题,RetrievalQA自动处理上下文
    response = qa({"query": question})
    
    return response['result']

# 初始化ChatBedrock示例(根据你的模型调整model_id)
llm = ChatBedrock(
    model_id="anthropic.claude-3-sonnet-20240229-v1:0",
    credentials_profile_name="your-aws-profile",
    model_kwargs={"temperature": 0.1}
)

额外注意事项

  • 确认LangChain版本≥0.1.0,避免版本兼容问题;
  • 如果使用Claude 2.x模型,虽然支持纯文本prompt,但Bedrock API的最新规范推荐使用messages格式,因此使用ChatBedrock更稳妥;
  • 检查AWS权限配置,确保Bedrock模型的InvokeModel权限正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:25:08