195 lines
21 KiB
Plaintext
195 lines
21 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"id": "initial_id",
|
|
"metadata": {
|
|
"collapsed": true,
|
|
"ExecuteTime": {
|
|
"end_time": "2026-09-10T02:15:20.405711900Z",
|
|
"start_time": "2026-09-10T02:15:19.715851Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"from time import sleep\n",
|
|
"from typing import TypedDict, Literal\n",
|
|
"\n",
|
|
"from langchain_core.messages import HumanMessage\n",
|
|
"from langgraph.graph import StateGraph,START,END\n",
|
|
"from langgraph.types import interrupt, Command\n",
|
|
"from langgraph.checkpoint.memory import InMemorySaver\n",
|
|
"from langchain_deepseek import ChatDeepSeek\n",
|
|
"\n",
|
|
"from dotenv import load_dotenv\n",
|
|
"load_dotenv(override=True)\n",
|
|
"\n",
|
|
"# model =ChatDeepSeek(\n",
|
|
"# model=\"deepseek-v4-flash\",\n",
|
|
"# extra_body={\n",
|
|
"# \"thinking\":{\n",
|
|
"# \"type\":\"disabled\"\n",
|
|
"# }\n",
|
|
"# }\n",
|
|
"# )\n",
|
|
"\n",
|
|
"#1. 声明状态\n",
|
|
"class OverAllState(TypedDict):\n",
|
|
" topic:str\n",
|
|
" poem:str\n",
|
|
" is_approved:bool\n",
|
|
"\n",
|
|
"#2. 声明节点\n",
|
|
"def approve_node(state:OverAllState) -> Command[Literal[\"llm_node\",\"default_node\"]]:\n",
|
|
" is_approved = interrupt(\"是否同意调用模型?\")\n",
|
|
" goto = \"llm_node\" if is_approved else \"default_node\"\n",
|
|
" return Command(\n",
|
|
" goto=goto,\n",
|
|
" update={\"is_approved\":is_approved}\n",
|
|
" )\n",
|
|
"\n",
|
|
"def llm_node(state:OverAllState) -> OverAllState:\n",
|
|
" return {\n",
|
|
" \"poem\": \"同意请求\"\n",
|
|
" }\n",
|
|
"\n",
|
|
"def default_node(state:OverAllState) -> OverAllState:\n",
|
|
" return {\n",
|
|
" \"poem\":\"请求被拒绝\"\n",
|
|
" }\n",
|
|
"\n",
|
|
"#3. 构建图\n",
|
|
"builder = StateGraph(state_schema=OverAllState)\n",
|
|
"\n",
|
|
"builder.add_node(\"approve_node\",approve_node)\n",
|
|
"builder.add_node(\"llm_node\",llm_node)\n",
|
|
"builder.add_node(\"default_node\",default_node)\n",
|
|
"builder.add_edge(START,\"approve_node\")\n",
|
|
"builder.add_edge(\"llm_node\",END)\n",
|
|
"builder.add_edge(\"default_node\",END)\n",
|
|
"\n",
|
|
"#4. 添加检查点后端\n",
|
|
"checkpointer = InMemorySaver()\n",
|
|
"graph = builder.compile(checkpointer=checkpointer)\n",
|
|
"\n",
|
|
"from IPython.display import display\n",
|
|
"display(graph)\n"
|
|
],
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<langgraph.graph.state.CompiledStateGraph object at 0x0000020FF6F61F90>"
|
|
],
|
|
"image/png": "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"
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data",
|
|
"jetTransient": {
|
|
"display_id": null
|
|
}
|
|
}
|
|
],
|
|
"execution_count": 18
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2026-09-10T02:21:10.236756100Z",
|
|
"start_time": "2026-09-10T02:21:10.200713600Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"#5. 首次执行 -> 触发中断\n",
|
|
"config = {\"configurable\":{\"thread_id\":\"234\"}}\n",
|
|
"interrupt_res = graph.stream({\"topic\":\"菊花\"},config=config, stream_mode=\"checkpoints\")\n",
|
|
"print(interrupt_res)\n",
|
|
"for chuck in interrupt_res:\n",
|
|
" print(chuck)"
|
|
],
|
|
"id": "fc35e2bde8186043",
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<generator object Pregel.stream at 0x0000020FF5572AB0>\n",
|
|
"{'config': {'configurable': {'checkpoint_ns': '', 'thread_id': '234', 'checkpoint_id': '1f1acbe4-97fa-6827-8003-8cff42547490'}}, 'parent_config': {'configurable': {'checkpoint_ns': '', 'thread_id': '234', 'checkpoint_id': '1f1acbe1-57eb-6af7-8002-6dc38cc39917'}}, 'values': {'topic': '菊花'}, 'metadata': {'source': 'input', 'step': 3, 'parents': {}}, 'next': ['__start__'], 'tasks': [{'id': '05b7fe87-1991-13c7-b489-a942480d1bea', 'name': '__start__', 'interrupts': (), 'state': None}]}\n",
|
|
"{'config': {'configurable': {'checkpoint_ns': '', 'thread_id': '234', 'checkpoint_id': '1f1acbe4-97fb-6e5f-8004-f53e8a5a35bf'}}, 'parent_config': {'configurable': {'checkpoint_ns': '', 'thread_id': '234', 'checkpoint_id': '1f1acbe4-97fa-6827-8003-8cff42547490'}}, 'values': {'topic': '菊花'}, 'metadata': {'source': 'loop', 'step': 4, 'parents': {}}, 'next': ['approve_node'], 'tasks': [{'id': '4014bd05-b0e2-d466-2c9d-ba18d940d9d8', 'name': 'approve_node', 'interrupts': (), 'state': None}]}\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 22
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2026-09-10T01:47:17.358458800Z",
|
|
"start_time": "2026-09-10T01:47:17.327312900Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'topic': '菊花', 'poem': '请求被拒绝', 'is_approved': ''}"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"execution_count": 17,
|
|
"source": "graph.invoke(Command(resume=True), config=config)",
|
|
"id": "e008c6e62429caf6"
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2026-09-10T01:46:26.686998Z",
|
|
"start_time": "2026-09-10T01:46:26.657760600Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'topic': '菊花', 'poem': '同意请求', 'is_approved': True}"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"execution_count": 10,
|
|
"source": "graph.invoke(Command(resume=False), config=config)",
|
|
"id": "a59a332ef6996120"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 2
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython2",
|
|
"version": "2.7.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|