Files

139 lines
3.2 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-07-29T11:54:37.402220Z",
"start_time": "2026-07-29T11:54:37.062467Z"
}
},
"source": [
"from typing import TypedDict, Annotated\n",
"from operator import add\n",
"\n",
"from langgraph.graph import StateGraph, START, END\n",
"\n",
"\n",
"# 1. 定义状态\n",
"class OverAllState(TypedDict):\n",
" logs: Annotated[list[str], add]\n",
" id: str\n",
"\n",
"\n",
"# 2. 定义节点\n",
"def node_1(state: OverAllState) -> OverAllState:\n",
" id = state[\"id\"]\n",
" return {\n",
" \"logs\": [\"node_1 运行完了\"],\n",
" \"id\": id + \",node_1\"\n",
" }\n",
"\n",
"\n",
"def node_2(state: OverAllState) -> OverAllState:\n",
" id = state[\"id\"]\n",
" return {\n",
" \"logs\": [\"node_2 运行完了\"],\n",
" \"id\": id + \",node_2\"\n",
" }\n",
"\n",
"\n",
"# 图\n",
"builder = StateGraph(state_schema=OverAllState)\n",
"builder.add_node(node_1)\n",
"builder.add_node(node_2)\n",
"\n",
"builder.add_edge(START, \"node_1\")\n",
"builder.add_edge(\"node_1\", \"node_2\")\n",
"builder.add_edge(\"node_2\", END)\n",
"\n",
"graph = builder.compile()\n",
"\n",
"result = graph.invoke({\"id\": \"gqt_\"})\n",
"print(result)"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'logs': ['node_1 运行完了', 'node_2 运行完了'], 'id': 'gqt_,node_1,node_2'}\n"
]
}
],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-29T11:54:38.247128Z",
"start_time": "2026-07-29T11:54:37.414230Z"
}
},
"cell_type": "code",
"source": [
"graph_mermaid=graph.get_graph().draw_mermaid()\n",
"print(graph_mermaid)"
],
"id": "615a7ac2bdbdfd2f",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"---\n",
"config:\n",
" flowchart:\n",
" curve: linear\n",
"---\n",
"graph TD;\n",
"\t__start__([<p>__start__</p>]):::first\n",
"\tnode_1(node_1)\n",
"\tnode_2(node_2)\n",
"\t__end__([<p>__end__</p>]):::last\n",
"\t__start__ --> node_1;\n",
"\tnode_1 --> node_2;\n",
"\tnode_2 --> __end__;\n",
"\tclassDef default fill:#f2f0ff,line-height:1.2\n",
"\tclassDef first fill-opacity:0\n",
"\tclassDef last fill:#bfb6fc\n",
"\n"
]
}
],
"execution_count": 3
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "fb967b9e12fee1c0"
}
],
"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
}