AWS Langchain 教程 - 对 AWS Bedrock 模型的访问请求失败,且不允许操作

问题描述 投票:0回答:1

按照此 github 存储库的部署指南后,我看到错误:https://github.com/aws-samples/generative-ai-amazon-bedrock-langchain-agent-example/blob/main/documentation/部署指南.md#部署

错误很明显,让我知道调用者无权访问指定的模型

基岩服务引发错误:调用 InvokeModel 操作时发生错误 (AccessDeniedException):您无权访问具有指定模型 ID 的模型。

Error raised by bedrock service: An error occurred (AccessDeniedException) when calling the InvokeModel operation: You don't have access to the model with the specified model ID.

我们在代码中可以看到指定的模型id为“anthopic.claude-v2”: 指定人类克劳德 v2 的 lambda 函数

但是,当我在 AWS 控制台中请求访问此模型或任何其他模型时,我收到“不允许操作”错误:

1 个模型的访问请求失败 • Llama 2 Chat 13B - 不允许操作

Access request for 1 models failed
• Llama 2 Chat 13B - Operation not allowed

为了解决此问题,我向可能涉及的每个角色和用户添加了必要的 AWS 托管策略(AmazonBedrockFullAccess 和 AWSMarketplaceFullAccess)。 我还继续创建了一个 IAM 身份中心管理实例,其中包含一个管理用户组,该组明确指定上述策略以及默认管理策略。 使用该组中新创建的帐户尚未解决问题。

A user in the admin group that should have the correct permissions to request access to a model

明确附加所需策略的服务角色

我希望在管理组中新创建的用户帐户明确附加所需的策略,可以请求访问基岩模型,但事实并非如此。 如果我在这里遗漏了什么,请告诉我!

amazon-web-services aws-lambda amazon-iam langchain amazon-bedrock
1个回答
0
投票

我注意到一些奇怪的事情。

  1. 您的 Lambda 函数代码与我在 GitHub 存储库中看到的不同(请参阅下面的发挥包含模型规范)。 GitHub 存储库发生了许多变化,包括迁移到 Claude v2.1(model_id
    anthropic.claude-v2:1
    )。 建议操作更新您的代码库。
def invoke_agent(prompt, session_id):
    """
    Invokes Amazon Bedrock-powered LangChain agent with 'prompt' input.
    """
    chat = Chat({'Human': prompt}, session_id)
    llm = Bedrock(client=bedrock_client, model_id="anthropic.claude-v2:1", region_name=os.environ['AWS_REGION']) # anthropic.claude-instant-v1 / anthropic.claude-3-sonnet-20240229-v1:0
    llm.model_kwargs = {'max_tokens_to_sample': 350}
    lex_agent = FSIAgent(llm, chat.memory)
    
    message = lex_agent.run(input=prompt)

    # summarize response and save in memory
    formatted_prompt = "\n\nHuman: " + "Summarize the following within 50 words: " + message + " \n\nAssistant:"
    conversation = ConversationChain(llm=llm)
    ai_response_recap = conversation.predict(input=formatted_prompt)
    chat.set_memory({'Assistant': ai_response_recap}, session_id)

    return message
  1. 目前,您只能通过控制台管理模型访问权限。 您的基础模型屏幕截图表明您尚未访问基础模型。您需要请求访问权限并接受许可协议,但一旦提供对模型的访问权限,帐户中的所有用户都可以使用该模型。请参阅管理对 Amazon Bedrock 基础模型的访问。在我的沙坑环境中,我订阅了所有可用的模型。只需几分钟,您只需支付使用费用而不是访问费用(无论如何在撰写本文时)。另请注意,在 us-east-1 Llama 2 Chat 13B 中不可用。

  2. 我相信您知道这一点,但您已经过度配置了您的访问权限。我自己去过那里很多次,试图找出问题。不要忘记减少您的策略,根据我的经验,关于管理对 Amazon Bedrock 基础模型的访问的指南很有效。

© www.soinside.com 2019 - 2024. All rights reserved.