开启左侧

LangGraph 使用指南

[复制链接]
米落枫 发表于 昨天 08:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
安装配置

安装依赖

LangGraph 可以通过 pip 安装:
  1. pip install langgraph
复制代码
如果您想使用最新的功能和改进,可以从源代码安装:
  1. pip install git+https://github.com/langchain-ai/langgraph.git
复制代码
环境配置

LangGraph 与 LangChain 共享许多配置设置。确保您设置了必要的环境变量,例如:
  1. exportOPENAI_API_KEY="your-api-key-here"
复制代码
基本概念

状态

在 LangGraph 中,状态是图执行过程中传递的关键数据结构。状态可以是任何可序列化的 Python 对象,但通常是一个包含以下类型信息的字典或 Pydantic 模型:
    对话历史中间结果工作内存元数据
节点

节点是图中的处理单元,接受状态作为输入并返回修改后的状态:
    函数节点:包装普通 Python 函数LLM 节点:封装与语言模型的交互工具节点:提供与外部系统的集成


边定义了节点之间的连接和执行流:
    直接边:从一个节点到另一个节点的简单流程条件边:基于条件表达式的分支逻辑
创建简单图

以下是创建和使用简单 LangGraph 的示例:
  1. from typing import TypedDict, Annotated, Sequence
  2. from langgraph.graph import StateGraph, END
  3. # 定义状态类型classConversationState(TypedDict):
  4.     messages:list[dict]
  5.     intermediate_steps:list# 创建节点函数defcall_model(state: ConversationState)-> ConversationState:
  6.     messages = state["messages"]# 这里使用模型处理消息
  7.     response ={
  8.    
  9.    "role":"assistant","content":"这是一个示例回复。"}return{
  10.    
  11.    "messages": messages +[response]}defroute_based_on_intent(state: ConversationState)-> Annotated[str,("direct_answer","use_tool")]:
  12.     last_message = state["messages"][-1]["content"]# 简单的路由逻辑if"工具"in last_message or"搜索"in last_message:return"use_tool"else:return"direct_answer"defuse_tool(state: ConversationState)-> ConversationState:# 这里实现工具调用逻辑
  13.     result ="这是工具调用的结果"return{
  14.    
  15.    "intermediate_steps": state.get("intermediate_steps",[])+[result]}# 创建图
  16. builder = StateGraph(ConversationState)# 添加节点
  17. builder.add_node("call_model", call_model)
  18. builder.add_node("route_intent", route_based_on_intent)
  19. builder.add_node("use_tool", use_tool)# 添加边
  20. builder.add_edge("route_intent","call_model", condition=</
复制代码
原文地址:https://blog.csdn.net/weixin_41958877/article/details/147150818
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )