mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-21 15:12:26 +02:00
504 lines
105 KiB
Plaintext
504 lines
105 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8bcd1a3d-7c50-4f58-be4e-1ed654aa33be",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Visualization\n",
|
|
"\n",
|
|
"This notebook walks through how to visualize the graphs you create. For this example we will use a prebuilt graph, but this works with ANY graphs."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e130cf70-a30e-47d7-8fd5-464f1a92e374",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Set up the chat model and tools\n",
|
|
"\n",
|
|
"Here we will define the chat model and tools that we want to use.\n",
|
|
"Importantly, this model MUST support OpenAI function calling."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "efb7e3c0-c63f-40f6-93ce-19681d650fc2",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:30.217991Z",
|
|
"start_time": "2024-04-19T11:25:28.531482Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from langchain_openai import ChatOpenAI\n",
|
|
"from langchain_community.tools.tavily_search import TavilySearchResults\n",
|
|
"from langgraph.prebuilt import chat_agent_executor"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "a7025f33-3160-41cf-868b-17ebc916fb1d",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:32.431922Z",
|
|
"start_time": "2024-04-19T11:25:32.168821Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Optional to not need .env\n",
|
|
"# import os\n",
|
|
"# os.environ['TAVILY_API_KEY'] = 'foo'\n",
|
|
"# os.environ['OPENAI_API_KEY'] = 'foo'\n",
|
|
"\n",
|
|
"tools = [TavilySearchResults(max_results=1)]\n",
|
|
"model = ChatOpenAI()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "43064805-2ac9-4b5a-850c-a68dd7282350",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.586216Z",
|
|
"start_time": "2024-04-18T12:18:30.469100Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Create executor\n",
|
|
"\n",
|
|
"We can now use the high level interface to create the executor"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "32b4ae66-f667-4a8b-a602-503fd0effcd9",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:36.231169Z",
|
|
"start_time": "2024-04-19T11:25:36.098462Z"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"app = chat_agent_executor.create_tool_calling_executor(model, tools)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f4fc9378-b141-4b65-b86c-3afba77f7161",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.605220Z",
|
|
"start_time": "2024-04-18T12:18:30.587191Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Ascii\n",
|
|
"\n",
|
|
"We can easily visualize this graph in ascii"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "ca9b980d-1f0a-4286-9157-a870e3d55134",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:37.303260Z",
|
|
"start_time": "2024-04-19T11:25:37.273032Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" +-----------+ \n",
|
|
" | __start__ | \n",
|
|
" +-----------+ \n",
|
|
" * \n",
|
|
" * \n",
|
|
" * \n",
|
|
" +-------+ \n",
|
|
" | agent | \n",
|
|
" +-------+ \n",
|
|
" * .. \n",
|
|
" ** .. \n",
|
|
" * . \n",
|
|
"+--------+ +---------+ \n",
|
|
"| action | | __end__ | \n",
|
|
"+--------+ +---------+ \n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"app.get_graph().print_ascii()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "edcd9ad2",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.629307Z",
|
|
"start_time": "2024-04-18T12:18:30.609323Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Mermaid\n",
|
|
"\n",
|
|
"We can also convert a graph class into Mermaid syntax."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "66007b2d",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:38.733126Z",
|
|
"start_time": "2024-04-19T11:25:38.726838Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"%%{init: {'flowchart': {'curve': 'linear'}}}%%\n",
|
|
"graph TD;\n",
|
|
"\t__start__[__start__]:::startclass;\n",
|
|
"\t__end__[__end__]:::endclass;\n",
|
|
"\tagent([agent]):::otherclass;\n",
|
|
"\taction([action]):::otherclass;\n",
|
|
"\t__start__ --> agent;\n",
|
|
"\taction --> agent;\n",
|
|
"\tagent -. continue .-> action;\n",
|
|
"\tagent -. end .-> __end__;\n",
|
|
"\tclassDef startclass fill:#ffdfba;\n",
|
|
"\tclassDef endclass fill:#baffc9;\n",
|
|
"\tclassDef otherclass fill:#fad7de;\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(app.get_graph().draw_mermaid())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "324d40ed-b665-4416-88f1-5df161546cd9",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.629548Z",
|
|
"start_time": "2024-04-18T12:18:30.615432Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"## PNG\n",
|
|
"\n",
|
|
"If prefered, we could render the Graph into a `.png`. Here we could use three options:\n",
|
|
"\n",
|
|
"- Using graphviz (which requires `pip install graphviz`)\n",
|
|
"- Using Mermaid + Pyppeteer (requires `pip install pyppeteer`)\n",
|
|
"- Using Mermaid.ink API (does not require additional packages)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "6b7dc713",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:40.358604Z",
|
|
"start_time": "2024-04-19T11:25:40.351636Z"
|
|
},
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from IPython.display import display, HTML\n",
|
|
"import base64\n",
|
|
"\n",
|
|
"\n",
|
|
"def display_image(image_bytes: bytes, width=300):\n",
|
|
" decoded_img_bytes = base64.b64encode(image_bytes).decode(\"utf-8\")\n",
|
|
" html = f'<img src=\"data:image/png;base64,{decoded_img_bytes}\" style=\"width: {width}px;\" />'\n",
|
|
" display(HTML(html))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d821b2f6",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.629629Z",
|
|
"start_time": "2024-04-18T12:18:30.620092Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Using Graphviz"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "d4234400-75cd-4b13-aeff-828f7fb68ab1",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:42.057704Z",
|
|
"start_time": "2024-04-19T11:25:42.019017Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Requirement already satisfied: install in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (1.3.5)\n",
|
|
"Collecting pygraphviz\n",
|
|
" Using cached pygraphviz-1.12-cp311-cp311-macosx_13_0_arm64.whl\n",
|
|
"Installing collected packages: pygraphviz\n",
|
|
"Successfully installed pygraphviz-1.12\n",
|
|
"Note: you may need to restart the kernel to use updated packages.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%capture --no-stderr\n",
|
|
"%pip install pygraphviz"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "ee026342-f560-4ce0-ab43-1718bd19a366",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:42.631675Z",
|
|
"start_time": "2024-04-19T11:25:42.452377Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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\" style=\"width: 300px;\" />"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display_image(app.get_graph().draw_png())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b9e767fc",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:18:30.873950Z",
|
|
"start_time": "2024-04-18T12:18:30.871750Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Using Mermaid + Pyppeteer"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "d403e1e7",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:44.798703Z",
|
|
"start_time": "2024-04-19T11:25:44.793438Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Requirement already satisfied: install in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (1.3.5)\n",
|
|
"Collecting pyppeteer\n",
|
|
" Downloading pyppeteer-2.0.0-py3-none-any.whl.metadata (7.1 kB)\n",
|
|
"Collecting appdirs<2.0.0,>=1.4.3 (from pyppeteer)\n",
|
|
" Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)\n",
|
|
"Requirement already satisfied: certifi>=2023 in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (from pyppeteer) (2024.2.2)\n",
|
|
"Requirement already satisfied: importlib-metadata>=1.4 in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (from pyppeteer) (6.11.0)\n",
|
|
"Collecting pyee<12.0.0,>=11.0.0 (from pyppeteer)\n",
|
|
" Downloading pyee-11.1.0-py3-none-any.whl.metadata (2.8 kB)\n",
|
|
"Requirement already satisfied: tqdm<5.0.0,>=4.42.1 in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (from pyppeteer) (4.66.2)\n",
|
|
"Collecting urllib3<2.0.0,>=1.25.8 (from pyppeteer)\n",
|
|
" Using cached urllib3-1.26.18-py2.py3-none-any.whl.metadata (48 kB)\n",
|
|
"Collecting websockets<11.0,>=10.0 (from pyppeteer)\n",
|
|
" Downloading websockets-10.4-cp311-cp311-macosx_11_0_arm64.whl.metadata (6.4 kB)\n",
|
|
"Requirement already satisfied: zipp>=0.5 in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (from importlib-metadata>=1.4->pyppeteer) (3.17.0)\n",
|
|
"Requirement already satisfied: typing-extensions in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (from pyee<12.0.0,>=11.0.0->pyppeteer) (4.10.0)\n",
|
|
"Downloading pyppeteer-2.0.0-py3-none-any.whl (82 kB)\n",
|
|
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m82.9/82.9 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
|
|
"\u001b[?25hDownloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)\n",
|
|
"Downloading pyee-11.1.0-py3-none-any.whl (15 kB)\n",
|
|
"Using cached urllib3-1.26.18-py2.py3-none-any.whl (143 kB)\n",
|
|
"Downloading websockets-10.4-cp311-cp311-macosx_11_0_arm64.whl (97 kB)\n",
|
|
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m97.9/97.9 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
|
|
"\u001b[?25hInstalling collected packages: appdirs, websockets, urllib3, pyee, pyppeteer\n",
|
|
" Attempting uninstall: websockets\n",
|
|
" Found existing installation: websockets 12.0\n",
|
|
" Uninstalling websockets-12.0:\n",
|
|
" Successfully uninstalled websockets-12.0\n",
|
|
" Attempting uninstall: urllib3\n",
|
|
" Found existing installation: urllib3 2.2.1\n",
|
|
" Uninstalling urllib3-2.2.1:\n",
|
|
" Successfully uninstalled urllib3-2.2.1\n",
|
|
"\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
|
|
"types-requests 2.31.0.20240311 requires urllib3>=2, but you have urllib3 1.26.18 which is incompatible.\u001b[0m\u001b[31m\n",
|
|
"\u001b[0mSuccessfully installed appdirs-1.4.4 pyee-11.1.0 pyppeteer-2.0.0 urllib3-1.26.18 websockets-10.4\n",
|
|
"Note: you may need to restart the kernel to use updated packages.\n",
|
|
"Requirement already satisfied: install in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (1.3.5)\n",
|
|
"Requirement already satisfied: nest_asyncio in /Users/wfh/code/lc/langgraph/.venv/lib/python3.11/site-packages (1.6.0)\n",
|
|
"Note: you may need to restart the kernel to use updated packages.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%capture --no-stderr\n",
|
|
"%pip install --quiet pyppeteer\n",
|
|
"%pip install --quiet nest_asyncio"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "058546ee",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:47.412695Z",
|
|
"start_time": "2024-04-19T11:25:45.405158Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[INFO] Starting Chromium download.\n",
|
|
"100%|██████████| 141M/141M [00:09<00:00, 14.2Mb/s] \n",
|
|
"[INFO] Beginning extraction\n",
|
|
"[INFO] Chromium extracted to: /Users/wfh/Library/Application Support/pyppeteer/local-chromium/1181205\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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SDBv3jx4eHgUt1lbW+OTTz7BsmXL4OrqasToiIhM14IFC4of2E5NTcX777+Pb7/9FiqVysiREZkuJtNkkRwdHbFw4UJIpVI0bdoUGzZsYCkoIqIKXLx4EXv27BG079ixA6+//jquXr1qhKiITB+TabJYLVu2xA8//IAtW7bAz8/P2OEQEZkslUqFL7/8Umt/fHw8xowZg6VLl0KtVhswMiLTx2SazIparcZ///tfnVfv6tixYy1HRERk/uRyOYYMGQJra2ut22g0Guzdu5dTPojKYTJNZiMuLg6jRo3C5s2bsXTpUkRGRho7JCIiiyCVSvH2229j69ataNOmjdbtvv76azg4OBgwMiLTx2SazEJ4eDjefPNN3LlzB0DRCDUXXiEi0q+GDRti9erVmDp1Kmxtbcv0DRkyBJ07dzZSZESmy6zXE83JyUF2draxwyADaNmyJbZv3y5oz8zMRGZmphEiqj3u7u6QSqXGDoOI6iiJRII33ngDzz//PL788kucP38eXl5e+PDDD8tsl5ycjIKCAiNFaZ48PDxEl3gn82bWyTQRERHVjvr162P58uXYu3cvfHx8BCPVRFSEyTQRERFpNWDAAGOHQGTSeK+BiIiIiKiamEwTEREREVUTk2kiIiIiompiMk1EREREVE1MpomIiIiIqonJNBERERFRNbE0HumFSqWClZUVrK2tjR0KERGRUSxZsgRnz54t07Zs2TI4OzsbKSIyBCbTVCP379/H2rVrERERAVtbWwwePBjDhw/nCn5ERFTnpKamIiMjo0xbXl6ekaIhQ+E0D6qRNWvWICIiAgCgVCqxadMmXLx40chRERERERkGk+k6TK1WIyIiAuvWravW/unp6Th37pyg/ejRozUNjYiIiMgscJpHHRQTE4MjR47g0KFDxbejRo0aVeXj2NrawtbWFkqlskx7/fr19RInERERkanjyHQdNG3aNGzbtk0wr6uqbGxsMGjQIEF73759a3RcIiIiInPBkWmqkeHDh6NFixY4fPgwvL290bdvX3h7exs7LCIiIiKDYDJNNSKTydC5c2d07tzZ2KEQERERGRyneRARERERVVOdGJkuLCxEQkIC0tPTkZ2djdzcXPj4+KBhw4Y1XmQkPj4eqampSE9Ph0ajgZOTE5ydneHj4wOZTL/f3vj4eKSkpCAtLQ0KhQK+vr7w9PSElZXl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\" style=\"width: 300px;\" />"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import nest_asyncio\n",
|
|
"from langchain_core.runnables.graph import CurveStyle, NodeColors, MermaidDrawMethod\n",
|
|
"\n",
|
|
"nest_asyncio.apply() # Required for Jupyter Notebook to run async functions\n",
|
|
"\n",
|
|
"display_image(\n",
|
|
" app.get_graph().draw_mermaid_png(\n",
|
|
" curve_style=CurveStyle.LINEAR,\n",
|
|
" node_colors=NodeColors(start=\"#ffdfba\", end=\"#baffc9\", other=\"#fad7de\"),\n",
|
|
" wrap_label_n_words=9,\n",
|
|
" output_file_path=None,\n",
|
|
" draw_method=MermaidDrawMethod.PYPPETEER,\n",
|
|
" background_color=\"white\",\n",
|
|
" padding=10,\n",
|
|
" )\n",
|
|
")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2dd71a7c",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-18T12:16:58.610115Z",
|
|
"start_time": "2024-04-18T12:16:57.852988Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"### Using Mermaid.Ink"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "be37d419",
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2024-04-19T11:25:51.865932Z",
|
|
"start_time": "2024-04-19T11:25:51.640462Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,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\" style=\"width: 300px;\" />"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display_image(\n",
|
|
" app.get_graph().draw_mermaid_png(\n",
|
|
" draw_method=MermaidDrawMethod.API,\n",
|
|
" )\n",
|
|
")"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.11.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|