本指南将向你展示如何在本地运行 LangGraph 应用程序。
前提条件
开始之前,请确保你已具备以下条件:
1. 安装 LangGraph CLI
# 需要 Python >= 3.11。
pip install -U "langgraph-cli[inmem]"
2. 创建 LangGraph 应用
使用 new-langgraph-project-python 模板 创建一个新应用。此模板演示了一个单节点应用程序,你可以使用自己的逻辑进行扩展。
langgraph new path/to/your/app --template new-langgraph-project-python
其他模板
如果你使用 langgraph new 而不指定模板,将会看到一个交互式菜单,你可以从中选择可用的模板列表。
3. 安装依赖项
在你的新 LangGraph 应用根目录下,以 edit 模式安装依赖项,以便服务器使用你的本地更改:
cd path/to/your/app
pip install -e .
4. 创建 .env 文件
你会在新 LangGraph 应用的根目录下找到一个 .env.example 文件。在新 LangGraph 应用的根目录下创建一个 .env 文件,并将 .env.example 文件的内容复制到其中,填写必要的 API 密钥:
LANGSMITH_API_KEY=lsv2...
5. 启动智能体服务器
在本地启动 LangGraph API 服务器:
示例输出:
INFO:langgraph_api.cli:
欢迎使用
╦ ┌─┐┌┐┌┌─┐╔═╗┬─┐┌─┐┌─┐┬ ┬
║ ├─┤││││ ┬║ ╦├┬┘├─┤├─┘├─┤
╩═╝┴ ┴┘└┘└─┘╚═╝┴└─┴ ┴┴ ┴ ┴
- 🚀 API: http://127.0.0.1:2024
- 🎨 Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
- 📚 API 文档: http://127.0.0.1:2024/docs
此内存服务器专为开发和测试设计。
生产环境使用,请使用 LangSmith 部署。
langgraph dev 命令以内存模式启动智能体服务器。此模式适用于开发和测试目的。生产环境使用,请部署具有持久存储后端访问权限的智能体服务器。更多信息,请参阅 平台设置概述。
6. 在 Studio 中测试你的应用
Studio 是一个专门的用户界面,你可以连接到 LangGraph API 服务器,以可视化、交互和本地调试你的应用程序。通过访问 langgraph dev 命令输出中提供的 URL,在 Studio 中测试你的图:
> - LangGraph Studio Web UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
对于在自定义主机/端口上运行的智能体服务器,请更新 URL 中的 baseUrl 查询参数。例如,如果你的服务器运行在 http://myhost:3000:
https://smith.langchain.com/studio/?baseUrl=http://myhost:3000
由于 Safari 在连接到 localhost 服务器时存在限制,请使用 --tunnel 标志与你的命令一起创建安全隧道:
7. 测试 API
Python SDK (异步)
Python SDK (同步)
Rest API
- 安装 LangGraph Python SDK:
pip install langgraph-sdk
- 向助手发送消息(无线程运行):
from langgraph_sdk import get_client
import asyncio
client = get_client(url="http://localhost:2024")
async def main():
async for chunk in client.runs.stream(
None, # 无线程运行
"agent", # 助手名称。在 langgraph.json 中定义。
input={
"messages": [{
"role": "human",
"content": "什么是 LangGraph?",
}],
},
):
print(f"接收到类型为 {chunk.event} 的新事件...")
print(chunk.data)
print("\n\n")
asyncio.run(main())
- 安装 LangGraph Python SDK:
pip install langgraph-sdk
- 向助手发送消息(无线程运行):
from langgraph_sdk import get_sync_client
client = get_sync_client(url="http://localhost:2024")
for chunk in client.runs.stream(
None, # 无线程运行
"agent", # 助手名称。在 langgraph.json 中定义。
input={
"messages": [{
"role": "human",
"content": "什么是 LangGraph?",
}],
},
stream_mode="messages-tuple",
):
print(f"接收到类型为 {chunk.event} 的新事件...")
print(chunk.data)
print("\n\n")
curl -s --request POST \
--url "http://localhost:2024/runs/stream" \
--header 'Content-Type: application/json' \
--data "{
\"assistant_id\": \"agent\",
\"input\": {
\"messages\": [
{
\"role\": \"human\",
\"content\": \"什么是 LangGraph?\"
}
]
},
\"stream_mode\": \"messages-tuple\"
}"
后续步骤
现在你已经在本地运行了一个 LangGraph 应用,通过探索部署和高级功能来进一步深入: