以编程方式使用文档

本页面涵盖所有 LangChain 与 Amazon Web Services (AWS) platform.

聊天模型

Bedrock 聊天

>Amazon Bedrock 是一项完全托管的服务,提供多种选择 > 来自领先 AI 公司的高性能基础模型 (FMs) AI21 Labs, Anthropic, Cohere, > Meta, Stability AI、等 Amazon 通过单一 API,以及构建所需的各种功能 > 构建生成式 AI 应用,确保安全性、隐私性和负责任的 AI。使用 Amazon Bedrock, > 您可以轻松试验和评估顶级 FMs 以满足您的用例需求,并使用 > 您的数据和微调等技术私下定制它们 Retrieval Augmented Generation (RAG) > 并构建利用您的企业系统和数据源执行任务的代理。由于 Amazon Bedrock is > 是无服务器的,您无需管理任何基础设施,并且可以安全地集成和部署 > 生成式 AI 功能到您已经熟悉的 AWS 服务构建的应用中。

查看 使用示例.

from langchain_aws import ChatBedrock

### Bedrock 对话 AWS Bedrock 维护一个 Converse API 为 Bedrock 模型提供统一的对话界面。此 API 尚 不支持自定义模型。您可以查看所有 支持的模型列表.

查看 使用示例.

from langchain_aws import ChatBedrockConverse

LLMs

Bedrock

查看 使用示例.

from langchain_aws import BedrockLLM

SageMaker 端点

>Amazon SageMaker 是一个可以构建、训练和部署 > 机器学习 (ML) 模型的系统,配备完全托管的基础设施、工具和工作流。

我们使用 SageMaker 来托管我们的模型并将其公开为 SageMaker Endpoint.

查看 使用示例.

from langchain_aws import SagemakerEndpoint

嵌入模型

Bedrock

查看 使用示例.

from langchain_aws import BedrockEmbeddings

文档加载器

Amazon DocumentDB 向量搜索

>Amazon DocumentDB(与 MongoDB 兼容) 让在云中设置、操作和扩展 MongoDB 兼容数据库变得容易。 > 使用 Amazon DocumentDB,您可以运行相同的应用程序代码,并使用与 MongoDB 相同的驱动程序和工具。 > Amazon DocumentDB 的向量搜索将基于 JSON 的文档数据库的灵活性和丰富的查询功能与向量搜索的强大功能相结合。

安装和设置

参见 详细配置说明.

我们需要安装 pymongo python 包。

    pip install pymongo
    
    uv add pymongo
    

在 AWS 上部署 DocumentDB

Amazon DocumentDB(与 MongoDB 兼容) 是一项快速、可靠且完全托管的数据库服务。Amazon DocumentDB 让您可以轻松地在云中设置、操作和扩展与 MongoDB 兼容的数据库。

AWS 提供计算、数据库、存储、分析和其他功能的云服务。如需了解所有 AWS 服务的概述,请参阅 使用 Amazon Web Services 进行云计算.

请参阅 使用示例.

from langchain.vectorstores.documentdb import DocumentDBVectorSearch

Amazon MemoryDB

Amazon MemoryDB 是一项耐用的内存数据库服务,可提供超快的性能。MemoryDB 与 Redis OSS 兼容,Redis OSS 是一个流行的开源数据存储。 使您能够使用他们已经熟悉的相同灵活且友好的 Redis OSS API 和命令快速构建应用程序。

InMemoryVectorStore 类提供了一个向量存储,用于连接 Amazon MemoryDB。

from langchain_aws.vectorstores.inmemorydb import InMemoryVectorStore

vds = InMemoryVectorStore.from_documents(
            chunks,
            embeddings,
            redis_url="rediss://cluster_endpoint:6379/ssl=True ssl_cert_reqs=none",
            vector_schema=vector_schema,
            index_name=INDEX_NAME,
        )

请参阅 使用示例.

Valkey

Valkey is an open source, high-performance key/value datastore that supports workloads such as caching, message queues, and can act as a primary database. Use ValkeyVectorStore to connect with Amazon ElastiCache for Valkey or Amazon MemoryDB for Valkey.

from langchain_aws.vectorstores import ValkeyVectorStore

请参阅 使用示例.

检索器

Amazon Bedrock(知识库)

> Amazon Bedrock 知识库 is an > Amazon Web Services (AWS)服务,可让您通过使用您的 > 私有数据来定制基础模型响应,从而快速构建 RAG 应用程序。

我们需要安装 langchain-aws library.

    pip install langchain-aws
    
    uv add langchain-aws
    

请参阅 使用示例.

from langchain_aws import AmazonKnowledgeBasesRetriever

工具

AWS Lambda

>Amazon AWS Lambda 是由 > Amazon Web Services (AWS提供的无服务器计算服务。它帮助开发者构建和运行应用程序和服务,而无需 > 配置或管理服务器。这种无服务器架构让您可以专注于编写和 > 部署代码,而 AWS 自动处理扩展、打补丁和管理运行应用程序所需的 > 基础设施。

我们需要安装 boto3 python 库。

    pip install boto3
    
    uv add boto3
    

请参阅 使用示例.

Amazon Bedrock AgentCore Browser

>Amazon Bedrock AgentCore Browser > 使代理能够通过托管的 Chrome 浏览器与网页进行交互,用于导航、内容提取和网络自动化。

    pip install langchain-aws bedrock-agentcore playwright beautifulsoup4
    
    uv add langchain-aws bedrock-agentcore playwright beautifulsoup4
    

参见 使用示例.

from langchain_aws.tools import create_browser_toolkit

# Create toolkit
toolkit, browser_tools = create_browser_toolkit(region="us-west-2")

# Use with an agent
agent = create_react_agent(model=llm, tools=browser_tools)
result = await agent.ainvoke(
    {"messages": [{"role": "user", "content": "Go to example.com and get the heading"}]},
    config={"configurable": {"thread_id": "session-1"}}
)

# Cleanup when done
await toolkit.cleanup()

Amazon Bedrock AgentCore 代码解释器

>Amazon Bedrock AgentCore 代码解释器 > 使代理能够在安全、托管的沙箱环境中执行 Python、JavaScript 和 TypeScript 代码,用于计算、数据分析和可视化。

    pip install langchain-aws bedrock-agentcore
    
    uv add langchain-aws bedrock-agentcore
    

参见 使用示例.

from langchain_aws.tools import create_code_interpreter_toolkit

# Create toolkit (async)
toolkit, code_tools = await create_code_interpreter_toolkit(region="us-west-2")

# Use with an agent
agent = create_react_agent(model=llm, tools=code_tools)
result = await agent.ainvoke(
    {"messages": [{"role": "user", "content": "Calculate factorial of 10"}]},
    config={"configurable": {"thread_id": "session-1"}}
)

# Cleanup when done
await toolkit.cleanup()

沙箱

AgentCoreSandbox

用于 deepagents 的 Amazon Bedrock AgentCore 代码解释器沙箱后端。

Get started

Amazon Neptune

>Amazon Neptune > 是一个高性能图形分析和无服务器数据库,提供卓越的可扩展性和可用性。

对于下面的 Cypher 和 SPARQL 集成,我们需要安装 langchain-aws library.

    pip install langchain-aws
    
    uv add langchain-aws
    

带 Cypher 的 Amazon Neptune

参见 使用示例.

from langchain_aws.graphs import NeptuneGraph
from langchain_aws.graphs import NeptuneAnalyticsGraph
from langchain_aws.chains import create_neptune_opencypher_qa_chain

带 SPARQL 的 Amazon Neptune

from langchain_aws.graphs import NeptuneRdfGraph
from langchain_aws.chains import create_neptune_sparql_qa_chain

记忆

Amazon Bedrock AgentCore 记忆

>Amazon Bedrock AgentCore 记忆 提供 > 用于 LangGraph 代理的托管持久化,支持跨会话的对话历史和状态管理,具有自动扩展和高可用性。

    pip install langgraph-checkpoint-aws
    
    uv add langgraph-checkpoint-aws
    
from langgraph_checkpoint_aws import AgentCoreMemorySaver

# Create checkpointer
checkpointer = AgentCoreMemorySaver(
    memory_id="your-memory-id",
    region_name="us-west-2"
)

# Use with LangGraph
graph = workflow.compile(checkpointer=checkpointer)

# Invoke with thread_id and actor_id for conversation persistence
config = {
    "configurable": {
        "thread_id": "user-123",
        "actor_id": "my-agent"  # Required for AgentCore
    }
}
result = graph.invoke({"messages": []}, config)

主要功能: - 托管基础设施,无需数据库设置 - 自动扩展和高可用性 - 通过以下方式支持多代理 actor_id 隔离 - 静态和传输中加密

Amazon Bedrock AgentCore 记忆存储

>Amazon Bedrock AgentCore 记忆存储 提供 > 用于 LangGraph 代理的长期记忆和语义搜索功能,支持跨会话存储和检索用户偏好、事实和提取的记忆。

from langgraph_checkpoint_aws import AgentCoreMemoryStore

# Initialize store for long-term memories
store = AgentCoreMemoryStore(memory_id="your-memory-id", region_name="us-west-2")

# Use in a pre-model hook to save and retrieve memories
def pre_model_hook(state, config, *, store):
    actor_id = config["configurable"]["actor_id"]
    thread_id = config["configurable"]["thread_id"]
    namespace = (actor_id, thread_id)

    # Save a message
    store.put(namespace, str(uuid.uuid4()), {"message": msg})

    # Search for relevant memories
    results = store.search(("preferences", actor_id), query="user preferences", limit=5)
    return {"model_input_messages": state["messages"]}

Amazon Comprehend 审核链

>Amazon Comprehend 是一种自然语言处理 (NLP) 服务,可 > 使用机器学习从文本中挖掘有价值的洞察和联系。

我们需要安装 boto3nltk libraries.

    pip install boto3 nltk
    
    uv add boto3 nltk
    

参见 使用示例.

from langchain_experimental.comprehend_moderation import AmazonComprehendModerationChain

运行时

Amazon Bedrock AgentCore 运行时

>Amazon Bedrock AgentCore 运行时 提供 > 用于 LangGraph 代理的托管无服务器执行,具有内置可观测性、自动扩展以及与其他 AgentCore 服务的无缝集成。

    pip install bedrock-agentcore
    
    uv add bedrock-agentcore
    
from bedrock_agentcore.runtime import BedrockAgentCoreApp

app = BedrockAgentCoreApp()

@app.entrypoint
def agent_invocation(payload, context):
    result = graph.invoke({"messages": [{"role": "user", "content": payload["prompt"]}]})
    return {"result": result["messages"][-1].content}

app.run()

使用 AgentCore CLI 部署:

# Configure your agent
agentcore configure

# Deploy to AgentCore Runtime
agentcore launch -e your_agent.py