引言
随着生成式AI的崛起,越来越多的开发者和企业开始寻求高效、安全的AI解决方案。Amazon Bedrock是一个全托管服务,旨在通过整合领先AI公司的高性能基础模型(FMs),为开发者提供便捷的平台。本文旨在介绍Amazon Bedrock的基本功能和使用方式,帮助您更好地构建生成式AI应用。
主要内容
什么是Amazon Bedrock?
Amazon Bedrock是一个集成多家顶级AI模型的平台,通过单一API提供多种功能,支持从实验到生产级应用的整个过程。由于它是无服务器的,您无需管理基础设施,可以利用AWS的服务将生成式AI功能安全地嵌入到您的应用中。
如何使用Amazon Bedrock的语言模型?
使用Amazon Bedrock,您可以通过简单的API调用访问各种预训练模型和自定义模型。下面是一个基本的用例,展示如何使用langchain_aws库调用一个基础的语言模型。
设置和调用模型
首先,确保您已经安装了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"
)
自定义模型调用
假如您需要使用来自Cohere的自定义模型:
# 使用API代理服务提高访问稳定性
custom_llm = BedrockLLM(
credentials_profile_name="bedrock-admin",
provider="cohere",
model_id="<Custom model ARN>", # ARN like 'arn:aws:bedrock:...' obtained via provisioning the custom model
model_kwargs={"temperature": 1},
streaming=True,
)
# 调用模型
custom_llm.invoke(input="What is the recipe of mayonnaise?")
Guardrails设置
为了保证使用的安全性和符合特定策略,Amazon Bedrock提供了Guardrails功能,当前处于预览阶段。您可以配置输入和输出的评估,以及在模型响应过程中应用额外的保护。
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代理服务。
- 模型配置错误:确保模型的ARN和配置参数正确无误。
总结和进一步学习资源
Amazon Bedrock提供了一种无缝整合生成式AI的解决方案,适合想要快速构建和部署AI应用的开发者。更多信息请参阅官方文档和相关学习指南。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---