news 2026/1/12 19:41:40

883-LangChain框架Use-Cases - 向远程图服务器发送请求案例分析报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
883-LangChain框架Use-Cases - 向远程图服务器发送请求案例分析报告

向远程图服务器发送请求 - 使用RemoteGraph与LangGraph交互

1. 案例目标

  • 介绍LangGraph的基本概念和与LangServe的区别
  • 演示如何使用RemoteGraph连接到远程LangGraph服务器
  • 展示如何通过RemoteGraph进行同步和异步调用
  • 实现流式输出功能,实时获取远程图执行结果
  • 演示线程级持久性(Thread-level persistence)的使用方法
  • 展示如何将RemoteGraph作为子图集成到父图中

2. 技术栈与核心依赖

LangGraphLangChainLangSmithOpenAIPython

  • LangGraph:用于构建有状态、多参与者应用程序的库,支持循环和协作
  • LangChain:用于构建AI应用的核心框架
  • LangSmith:用于追踪、监控和评估LangChain应用的工具
  • OpenAI:提供GPT模型用于自然语言处理
  • Python:编程语言基础,支持异步编程特性

3. 环境配置

  • 安装必要的Python包:langsmith, langchain, langchain_core等
  • 配置OpenAI API密钥和LangChain追踪设置
  • 安装LangGraph CLI工具:pip install langgraph-cli[inmem]
  • 启动LangGraph开发服务器:langgraph dev

pip install langsmith langchain langchain_core langchain-anthropic langchain_community langchain_text_splitters langchain_openai langgraph

# 设置环境变量
set_env({
"OPENAI_API_KEY": "",
"LANGCHAIN_API_KEY": "",
"LANGCHAIN_TRACING_V2": "true",
"LANGCHAIN_ENDPOINT": "https://api.smith.langchain.com",
"LANGCHAIN_PROJECT": "RemoteGraph",
})

4. 案例实现

  • LangGraph与LangServe的区别:
    • LangGraph现在被推荐作为LangChain应用的服务化方案
    • LangGraph支持流式输出、双文本处理、突发处理等高级功能
    • LangGraph具有检查点功能和人在回路支持
  • RemoteGraph基础使用:
    • 创建RemoteGraph实例连接到远程服务器
    • 使用invoke和ainvoke方法进行同步和异步调用
    • 配置embedding_model、query_model等参数
  • 流式输出实现:
    • 使用astream方法获取远程图执行的实时结果
    • 通过subgraphs=True参数获取子图的执行状态
  • 线程级持久性:
    • 创建同步客户端和线程
    • 配置线程参数(config_thread)
    • 验证对话历史的持久化效果
  • 子图集成:
    • 使用StateGraph创建父图
    • 添加RemoteGraph作为子节点
    • 连接START节点到子图

主要代码实现:

# 创建RemoteGraph实例
remote_graph = RemoteGraph(
"chat", # 图名称
url="http://localhost:2024", # 服务器URL
)

# 同步调用
result = remote_graph.invoke(
{"messages": [{"role": "user", "content": "hi!"}]},
config
)

# 异步流式调用
async for chunk in remote_graph.astream(
{"messages": [{"role": "user", "content": "what's the weather in sf"}]},
config,
subgraphs=True
):
print(chunk)

# 创建父图并添加RemoteGraph作为子图
from langgraph.graph import StateGraph, MessagesState, START

builder = StateGraph(MessagesState)
builder.add_node("child", remote_graph)
builder.add_edge(START, "child")
graph = builder.compile()

5. 案例效果

  • 成功连接到远程LangGraph服务器并执行图操作
  • 实现了同步和异步调用方式,满足不同场景需求
  • 通过流式输出功能,实时获取远程图执行过程和结果
  • 验证了线程级持久性功能,能够保持对话上下文
  • 成功将RemoteGraph作为子图集成到父图中,实现复杂图结构
  • 展示了LangGraph相对于LangServe的优势和特性

6. 案例实现思路

  • 客户端-服务器架构:RemoteGraph作为客户端连接到远程LangGraph服务器
  • 统一接口设计:RemoteGraph提供与本地Graph相同的API接口,透明处理远程调用
  • 异步通信模型:支持同步和异步调用,适应不同应用场景
  • 流式数据处理:通过生成器模式实现实时数据传输
  • 状态持久化:通过线程ID实现对话上下文的持久化存储
  • 图组合模式:支持将远程图作为子图集成到更大的图结构中

7. 扩展建议

  • 添加认证和授权机制,增强远程图访问的安全性
  • 实现负载均衡和故障转移,提高系统可用性
  • 添加缓存机制,减少重复请求的网络开销
  • 实现更复杂的子图组合模式,支持多级嵌套
  • 添加性能监控和指标收集,便于系统优化
  • 实现批量操作接口,提高处理效率
  • 添加更多配置选项,如超时设置、重试策略等
  • 支持更多通信协议,如WebSocket、gRPC等

8. 总结

该案例展示了如何使用RemoteGraph与远程LangGraph服务器进行交互,从基础连接到高级功能如流式输出和线程级持久性。案例详细介绍了LangGraph相对于LangServe的优势,并通过实际代码演示了RemoteGraph的各种用法。通过线程级持久性,系统能够保持对话上下文,提供更连贯的用户体验。此外,案例还展示了如何将RemoteGraph作为子图集成到更大的图结构中,实现复杂的应用逻辑。这个案例为构建分布式AI应用提供了完整的参考实现,展示了现代图计算框架与远程服务结合的最佳实践。

技术要点总结

向远程图服务器发送请求案例展示了分布式AI应用架构的强大能力。通过RemoteGraph,开发者可以透明地访问远程LangGraph服务,无需关心底层通信细节。该案例的关键技术点包括异步通信、流式处理、状态持久化和图组合等,这些技术点为构建大规模分布式AI系统奠定了基础。此外,该案例还展示了如何将复杂的AI逻辑分布在不同的服务中,实现更好的系统解耦和可扩展性。LangGraph作为LangChain生态的新成员,为AI应用的服务化部署提供了更强大、更灵活的解决方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/12 2:29:26

机器学习测试神器TensorFlow Model Analysis实战

当软件测试遇见机器学习在传统的软件测试领域中,我们习惯于验证确定性的业务逻辑——给定特定输入,预期输出应当严格符合设计规范。然而,当测试工程师开始面对机器学习系统时,这一范式发生了根本性改变。机器学习模型本质上是统计…

作者头像 李华
网站建设 2026/1/11 19:23:52

2025 主流 GEO 优化服务商 TOP4,助力 ToB 精准选型

在本地化营销精准化快速普及的当下,百度地图营销、抖音本地生活、美团企业服务等平台已成为企业获取区域流量与品牌曝光的新入口。而 GEO 优化(GEO,Geographic Optimization)作为适配这些平台的关键手段,其效果直接取决…

作者头像 李华
网站建设 2026/1/8 6:18:03

从中国出发,向世界展示!AI开发者亚马逊云科技狂欢专属攻略!

开发者轻松玩转re:Invent 2025攻略来啦!现场直击线上互动,双线狂欢不停歇!开发者们,准备好了吗?2025年亚马逊云科技re:Invent大会即将在拉斯维加斯燃情开启!无论你是亲临现场还是远程参与,这场全…

作者头像 李华
网站建设 2026/1/7 14:58:55

WPF SynchronizationContext的使用

SynchronizationContext 是 .NET 中一个非常重要的抽象类,用于在特定线程上下文中调度(执行)代码。它在多线程、异步编程、UI 应用(如 WPF、WinForms)、ASP.NET 等场景中扮演着“线程调度协调者”的角色。 一、为什么需…

作者头像 李华