引言
Amazon Bedrock是一个全面托管的服务,提供来自顶级AI公司的高性能基础模型(FMs),如AI21 Labs、Anthropic、Cohere等。通过Amazon Bedrock,您可以轻松评估、定制这些模型,并将生成式AI能力安全地整合到应用中。本文将介绍如何使用Amazon Bedrock的API,以及如何在开发中应用一些最佳实践。
主要内容
1. 什么是Amazon Bedrock?
Amazon Bedrock提供了一整套工具和模型,帮助开发者创建生成式AI应用。它支持多样化模型选择、私有数据定制和任务执行代理构建。由于其无服务器特性,开发者无需管理基础设施。
2. 如何使用BedrockLLM库
使用BedrockLLM库,您可以轻松调用不同的基础模型。以下是安装和使用示例:
安装库
首先,您需要安装langchain_aws库:
%pip install --upgrade --quiet langchain_aws
调用基础模型
下面是一个简单的模型调用示例:
from langchain_aws import BedrockLLM
# 初始化模型
llm = BedrockLLM(
credentials_profile_name="bedrock-admin",
model_id="amazon.titan-text-express-v1"
)
# 使用API代理服务提高访问稳定性
response = llm.invoke(input="Hello, Bedrock!")
print(response)
3. 定制模型
您可以使用Amazon Bedrock定制模型,例如,通过提供唯一的模型ARN:
custom_llm = BedrockLLM(
credentials_profile_name="bedrock-admin",
provider="cohere",
model_id="<Custom model ARN>",
model_kwargs={"temperature": 1},
streaming=True,
)
# 使用API代理服务提高访问稳定性
response = custom_llm.invoke(input="What is the recipe of mayonnaise?")
print(response)
4. 使用保护栏
保护栏为模型交互添加了一层安全保障。以下代码示例展示了如何设置带有追踪功能的保护栏:
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访问不稳定:由于网络限制,建议使用API代理服务提高访问的稳定性。
-
调试错误:使用回调机制可以监控模型的错误和保护栏的干预。
总结和进一步学习资源
Amazon Bedrock使得生成式AI应用的开发更加便捷。通过其提供的多样化模型和安全特性,开发者能够快速地将AI能力部署到实际产品中。
进一步学习资源:
参考资料
- Amazon Bedrock 产品页面
- Langchain AWS 库
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---