Files
langgraph-learning/chapter04/01_interrupt.ipynb
T

188 lines
12 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-08-08T03:28:49.888065Z",
"start_time": "2026-08-08T03:28:49.662363Z"
}
},
"source": [
"from langgraph.types import interrupt,Command\n",
"from langgraph.graph import StateGraph,START,END\n",
"from langgraph.checkpoint.memory import InMemorySaver\n",
"from typing import TypedDict\n",
"\n",
"\n",
"class OverallState(TypedDict):\n",
" username: str\n",
"\n",
"def node_a(state:OverallState):\n",
" username=interrupt(\"请输入名称\")\n",
" return {\n",
" \"username\":username\n",
" }\n",
"\n",
"builder=StateGraph(state_schema=OverallState)\n",
"builder.add_node(\"node_a\",node_a)\n",
"builder.add_edge(START,\"node_a\")\n",
"builder.add_edge(\"node_a\",END)"
],
"outputs": [
{
"data": {
"text/plain": [
"<langgraph.graph.state.StateGraph at 0x10a1316a0>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-08-08T03:28:49.903527Z",
"start_time": "2026-08-08T03:28:49.892763Z"
}
},
"cell_type": "code",
"source": [
"checkpointer = InMemorySaver()\n",
"graph = builder.compile(checkpointer=checkpointer)"
],
"id": "c01ae74fba33b881",
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-08-08T03:28:50.532477Z",
"start_time": "2026-08-08T03:28:49.909136Z"
}
},
"cell_type": "code",
"source": [
"from IPython.display import display\n",
"display(graph)"
],
"id": "2dbf4ded88cc37f5",
"outputs": [
{
"data": {
"text/plain": [
"<langgraph.graph.state.CompiledStateGraph object at 0x10a69c590>"
],
"image/png": "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"
},
"metadata": {},
"output_type": "display_data"
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-08-08T03:28:50.571341Z",
"start_time": "2026-08-08T03:28:50.552213Z"
}
},
"cell_type": "code",
"source": [
"config = {\"configurable\":{\"thread_id\":\"123\"}}\n",
"interrupt_res = graph.invoke({},config=config)\n",
"print(interrupt_res)"
],
"id": "12eb3e02772cb32c",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'__interrupt__': [Interrupt(value='请输入名称', id='78fc392614f7abbc556297e16024b932')]}\n"
]
}
],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-08-08T03:29:03.007686Z",
"start_time": "2026-08-08T03:28:50.581140Z"
}
},
"cell_type": "code",
"source": [
"inputt = interrupt_res['__interrupt__'][0].value\n",
"print(inputt)\n",
"username = input(inputt)"
],
"id": "bf48e979b66c6a55",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"请输入名称\n"
]
}
],
"execution_count": 5
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-08-08T03:29:03.046382Z",
"start_time": "2026-08-08T03:29:03.013899Z"
}
},
"cell_type": "code",
"source": [
"resume_res = graph.invoke(Command(resume=username),config=config)\n",
"print(resume_res)"
],
"id": "bc4bd5ded638a924",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'username': '{\"username\":\"gqt\"}'}\n"
]
}
],
"execution_count": 6
}
],
"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
}