
























在大模型应用开发中,我们经常需要让模型具备自主决策能力—— 判断用户问题是否需要调用工具、是否需要补充信息,而 LangGraph 正是实现这类结构化大模型工作流的核心框架。
今天给大家分享一个极简入门级实战案例:基于 LangGraph 搭建第一个大模型智能决策工作流,无需复杂配置,快速实现「大模型 + 流程编排」的基础能力,非常适合 LangGraph 新手上手。
这个极简案例完美贴合 LangGraph 入门需求,核心特点一目了然:
这个基础决策工作流,是所有大模型工具调用、多步骤任务的基石:
整个案例的实现逻辑非常清晰,分为四大核心步骤,完全贴合 LangGraph 的设计理念:
对接本地 / 远程大模型接口,完成基础配置(API 密钥、请求地址、模型参数),为决策能力提供底层支持,确保模型能稳定响应指令。
给大模型设定明确的决策规则:
这是 LangGraph 的核心:
这是你踏入大模型智能体开发的第一步:
这个案例是 LangGraph 与大模型结合的最佳入门示例,没有复杂的概念和冗余的代码,只保留核心逻辑:用 LangGraph 编排流程,让大模型做决策。
对于刚接触大模型应用开发的朋友,先跑通这个基础工作流,再逐步添加工具调用、分支判断、循环执行等功能,就能快速搭建出专业的大模型智能应用。
后续我会继续分享 LangGraph 进阶实战:工具调用、多节点分支工作流、长流程任务编排等内容,带你一步步玩转大模型工作流开发~
代码实现:
from langgraph.graph import StateGraph, START, END
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
import os
# ==================== 1. 初始化 LLM ====================
DEEPSEEK_API_KEY = "123" # 替换为实际的 API Key
llm = ChatOpenAI(
api_key=DEEPSEEK_API_KEY,
base_url="http://192.168.0.100:8087/v1",
model="qwen3.5-35b-gptq",
temperature=0.3,
max_tokens=1024,
)
output_parser = StrOutputParser()
# ==================== 2. 定义决策链路 ====================
decision_prompt = ChatPromptTemplate.from_template("""
你需要判断回答用户问题是否需要调用搜索工具:
1. 如果需要,直接返回搜索关键词(仅返回关键词,无其他内容)
2. 如果不需要,直接返回最终答案(仅返回答案,无其他内容)
用户问题:{input}
""")
chain1 = decision_prompt | llm | output_parser
# ==================== 3. 定义状态和节点函数(适配 langgraph 0.0.29) ====================
# 定义图的状态结构(简单字典,包含 input 和 output)
def initial_state():
return {"input": "", "output": ""}
# 决策节点函数(langgraph 0.0.29 要求节点函数接收 state 参数并返回新 state)
def decision_node(state):
# 提取用户输入并调用决策链
user_input = state["input"]
result = chain1.invoke({"input": user_input})
# 更新状态
state["output"] = result
return state
# ==================== 4. 构建 StateGraph(langgraph 0.0.29 兼容) ====================
# 创建 StateGraph,指定状态类型为 dict
graph = StateGraph(dict)
# 添加节点和边
graph.add_node("decision", decision_node) # 添加决策节点
graph.add_edge(START, "decision") # 起始点 → 决策节点
graph.add_edge("decision", END) # 决策节点 → 结束点
# 编译图
runnable = graph.compile()
print(runnable.get_graph().draw_ascii())
# ==================== 6. 测试运行 ====================
if __name__ == "__main__":
# 调用图(传入初始状态,包含用户输入)
input_state = {
"input": "今天北京天气怎么样?",
"output": ""
}
result = runnable.invoke(input_state)
# 输出结果
print("\n===== 运行结果 =====")
print(f"用户输入:{result['input']}")
print(f"LLM 输出:{result['output']}")
结果输出:
+-----------+
| __start__ |
+-----------+
*
*
*
+----------+
| decision |
+----------+
*
*
*
+---------+
| __end__ |
+---------+
===== 运行结果 =====
用户输入:今天北京天气怎么样?
LLM 输出:
北京今天天气
更多学习资料尽在 老虎网盘资源
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。