AI创想
标题:
LangGraph 使用指南
[打印本页]
作者:
米落枫
时间:
昨天 08:05
标题:
LangGraph 使用指南
作者:CSDN博客
安装配置
安装依赖
LangGraph 可以通过 pip 安装:
pip install langgraph
复制代码
如果您想使用最新的功能和改进,可以从源代码安装:
pip install git+https://github.com/langchain-ai/langgraph.git
复制代码
环境配置
LangGraph 与 LangChain 共享许多配置设置。确保您设置了必要的环境变量,例如:
exportOPENAI_API_KEY="your-api-key-here"
复制代码
基本概念
状态
在 LangGraph 中,状态是图执行过程中传递的关键数据结构。状态可以是任何可序列化的 Python 对象,但通常是一个包含以下类型信息的字典或 Pydantic 模型:
对话历史中间结果工作内存元数据
节点
节点是图中的处理单元,接受状态作为输入并返回修改后的状态:
函数节点:包装普通 Python 函数LLM 节点:封装与语言模型的交互工具节点:提供与外部系统的集成
边
边定义了节点之间的连接和执行流:
直接边:从一个节点到另一个节点的简单流程条件边:基于条件表达式的分支逻辑
创建简单图
以下是创建和使用简单 LangGraph 的示例:
from typing import TypedDict, Annotated, Sequence
from langgraph.graph import StateGraph, END
# 定义状态类型classConversationState(TypedDict):
messages:list[dict]
intermediate_steps:list# 创建节点函数defcall_model(state: ConversationState)-> ConversationState:
messages = state["messages"]# 这里使用模型处理消息
response ={
"role":"assistant","content":"这是一个示例回复。"}return{
"messages": messages +[response]}defroute_based_on_intent(state: ConversationState)-> Annotated[str,("direct_answer","use_tool")]:
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:# 这里实现工具调用逻辑
result ="这是工具调用的结果"return{
"intermediate_steps": state.get("intermediate_steps",[])+[result]}# 创建图
builder = StateGraph(ConversationState)# 添加节点
builder.add_node("call_model", call_model)
builder.add_node("route_intent", route_based_on_intent)
builder.add_node("use_tool", use_tool)# 添加边
builder.add_edge("route_intent","call_model", condition=</
复制代码
原文地址:https://blog.csdn.net/weixin_41958877/article/details/147150818
欢迎光临 AI创想 (https://www.llms-ai.com/)
Powered by Discuz! X3.4