{ "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__([

__start__

]):::first\n", "\tnode_1(node_1)\n", "\tnode_2(node_2)\n", "\t__end__([

__end__

]):::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 }