探索Amazon Bedrock:构建安全与高效的生成式AI应用

91 阅读3分钟

探索Amazon Bedrock:构建安全与高效的生成式AI应用

引言

在当今的AI发展浪潮中,生成式AI正在迅速改变我们的日常生活和商业运作方式。Amazon Bedrock作为一项全新的服务,提供了与领先AI公司合作的高性能基础模型(FMs),让开发者可以通过单一API构建生成式AI应用。本篇文章旨在介绍Amazon Bedrock的基本用法,并提供具体的代码示例,帮助开发者轻松上手并应对潜在的挑战。

主要内容

什么是Amazon Bedrock?

Amazon Bedrock是一项完全托管的服务,它为开发者提供了从领先AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Stability AI和Amazon)获取高性能基础模型的选择。这些模型可帮助开发者构建拥有安全性、隐私和责任感的生成式AI应用。

如何使用Amazon Bedrock?

使用Amazon Bedrock,用户可以轻松地试验和评估顶级基础模型,将其私密定制化以及通过技术如微调和检索增强生成(RAG)来实现个性化,并创建能够使用企业系统和数据源执行任务的代理。由于Amazon Bedrock是无服务器的,用户无需管理基础设施,并可以使用已有的AWS服务将生成式AI功能安全地集成和部署到应用程序中。

安装与配置

首先,确保已安装langchain_aws库:

%pip install --upgrade --quiet langchain_aws

然后,您可以通过以下Python代码连接Amazon Bedrock:

from langchain_aws import BedrockLLM

llm = BedrockLLM(
    credentials_profile_name="bedrock-admin", 
    model_id="amazon.titan-text-express-v1"
)

自定义模型与API代理使用

您还可以使用自定义模型进行开发,为了提高访问的稳定性,建议使用API代理服务:

custom_llm = BedrockLLM(
    credentials_profile_name="bedrock-admin",
    provider="cohere",
    model_id="<Custom model ARN>",  # 指定自定义模型的ARN
    model_kwargs={"temperature": 1},
    streaming=True,
)

response = custom_llm.invoke(input="What is the recipe of mayonnaise?")
print(response)  # 使用API代理服务提高访问稳定性

代码示例

以下是一个完整的代码示例,展示如何设置带有特定防护措施的Bedrock语言模型:

from typing import Any
from langchain_core.callbacks import AsyncCallbackHandler

class BedrockAsyncCallbackHandler(AsyncCallbackHandler):
    async def on_llm_error(self, error: BaseException, **kwargs: Any) -> Any:
        reason = kwargs.get("reason")
        if reason == "GUARDRAIL_INTERVENED":
            print(f"Guardrails: {kwargs}")

llm = BedrockLLM(
    credentials_profile_name="bedrock-admin",
    model_id="<Model_ID>",
    model_kwargs={},
    guardrails={"id": "<Guardrail_ID>", "version": "<Version>", "trace": True},
    callbacks=[BedrockAsyncCallbackHandler()],
)

常见问题和解决方案

  • 网络访问问题:由于某些地区的网络限制,建议使用API代理服务以避免访问不稳定的问题。
  • 模型调用错误:确保提供正确的模型ARN和配置参数,如credentials_profile_namemodel_id

总结和进一步学习资源

Amazon Bedrock为开发者提供了一个灵活的平台来创建高效、安全的生成式AI应用。通过本文的介绍和示例,您应该能够开始使用该平台并处理常见挑战。欲获取更多信息,可以查看以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---