Skip to content

Commit e8ff7e4

Browse files
committed
add notebooks
1 parent 4ca825a commit e8ff7e4

File tree

9 files changed

+835
-143
lines changed

9 files changed

+835
-143
lines changed

notebooks/chat_with_tools.ipynb

Lines changed: 0 additions & 135 deletions
This file was deleted.

notebooks/chat_with_tools_agent.ipynb

Lines changed: 175 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"id": "0e39a91d",
7+
"metadata": {},
8+
"outputs": [],
9+
"source": [
10+
"import logging\n",
11+
"\n",
12+
"from dotenv import load_dotenv\n",
13+
"\n",
14+
"from template_langgraph.loggers import get_logger\n",
15+
"\n",
16+
"_ = load_dotenv(\n",
17+
" override=True,\n",
18+
" verbose=True,\n",
19+
")\n",
20+
"\n",
21+
"logger = get_logger(__name__)\n",
22+
"logger.setLevel(logging.DEBUG)"
23+
]
24+
},
25+
{
26+
"cell_type": "code",
27+
"execution_count": 2,
28+
"id": "1e620cca",
29+
"metadata": {},
30+
"outputs": [
31+
{
32+
"name": "stderr",
33+
"output_type": "stream",
34+
"text": [
35+
"2025-08-14 11:37:25,079 [ INFO] Initializing state: input=AgentInputState(prompt='この画像の中身を 3 行で日本語で説明してください', id='e5d93fde-3176-48dd-b361-359a1cc4b8ea', file_paths=['../docs/images/fastapi.png', '../docs/images/streamlit.png']) results=[] (agent.py:73)\n",
36+
"2025-08-14 11:37:25,079 [ INFO] Running subtasks with state: input=AgentInputState(prompt='この画像の中身を 3 行で日本語で説明してください', id='e5d93fde-3176-48dd-b361-359a1cc4b8ea', file_paths=['../docs/images/fastapi.png', '../docs/images/streamlit.png']) results=[] (agent.py:79)\n",
37+
"2025-08-14 11:37:25,079 [ INFO] -------------------- (1383596555.py:27)\n",
38+
"2025-08-14 11:37:25,080 [ INFO] Event: {'initialize': {'input': AgentInputState(prompt='この画像の中身を 3 行で日本語で説明してください', id='e5d93fde-3176-48dd-b361-359a1cc4b8ea', file_paths=['../docs/images/fastapi.png', '../docs/images/streamlit.png']), 'results': []}} (1383596555.py:28)\n",
39+
"2025-08-14 11:37:25,080 [ INFO] Classify file: ../docs/images/streamlit.png (agent.py:92)\n",
40+
"2025-08-14 11:37:25,080 [ INFO] Classify file: ../docs/images/fastapi.png (agent.py:92)\n",
41+
"2025-08-14 11:37:25,080 [ INFO] Loading file: ../docs/images/streamlit.png (agent.py:95)\n",
42+
"2025-08-14 11:37:25,081 [ INFO] Loading file: ../docs/images/fastapi.png (agent.py:95)\n",
43+
"2025-08-14 11:37:25,084 [ INFO] Classifying file: ../docs/images/streamlit.png (agent.py:98)\n",
44+
"2025-08-14 11:37:25,084 [ INFO] Classifying image with LLM: この画像の中身を 3 行で日本語で説明してください (classifiers.py:64)\n",
45+
"2025-08-14 11:37:25,087 [ INFO] Classifying file: ../docs/images/fastapi.png (agent.py:98)\n",
46+
"2025-08-14 11:37:25,087 [ INFO] Classifying image with LLM: この画像の中身を 3 行で日本語で説明してください (classifiers.py:64)\n",
47+
"2025-08-14 11:37:35,738 [ INFO] Classification result: {\n",
48+
" \"title\": \"KABUTOシステム起動時の問題\",\n",
49+
" \"summary\": \"KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。\",\n",
50+
" \"labels\": [\n",
51+
" \"KABUTO\",\n",
52+
" \"システムフリーズ\",\n",
53+
" \"初期化失敗\",\n",
54+
" \"トラブルシューティング\",\n",
55+
" \"周辺機器解除\"\n",
56+
" ],\n",
57+
" \"reliability\": 0.94\n",
58+
"} (agent.py:105)\n",
59+
"2025-08-14 11:37:35,740 [ INFO] -------------------- (1383596555.py:27)\n",
60+
"2025-08-14 11:37:35,740 [ INFO] Event: {'classify_image': {'results': [Results(file_path='../docs/images/fastapi.png', result=Result(title='KABUTOシステム起動時の問題', summary='KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。', labels=['KABUTO', 'システムフリーズ', '初期化失敗', 'トラブルシューティング', '周辺機器解除'], reliability=0.94))]}} (1383596555.py:28)\n",
61+
"2025-08-14 11:37:37,267 [ INFO] Classification result: {\n",
62+
" \"title\": \"ツールエージェント画面\",\n",
63+
" \"summary\": \"この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。\",\n",
64+
" \"labels\": [\n",
65+
" \"AI チャット\",\n",
66+
" \"ツール選択\",\n",
67+
" \"インターフェース\"\n",
68+
" ],\n",
69+
" \"reliability\": 0.9\n",
70+
"} (agent.py:105)\n",
71+
"2025-08-14 11:37:37,268 [ INFO] -------------------- (1383596555.py:27)\n",
72+
"2025-08-14 11:37:37,268 [ INFO] Event: {'classify_image': {'results': [Results(file_path='../docs/images/streamlit.png', result=Result(title='ツールエージェント画面', summary='この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。', labels=['AI チャット', 'ツール選択', 'インターフェース'], reliability=0.9))]}} (1383596555.py:28)\n",
73+
"2025-08-14 11:37:37,270 [ INFO] Sending notifications with state: input=AgentInputState(prompt='この画像の中身を 3 行で日本語で説明してください', id='e5d93fde-3176-48dd-b361-359a1cc4b8ea', file_paths=['../docs/images/fastapi.png', '../docs/images/streamlit.png']) results=[Results(file_path='../docs/images/fastapi.png', result=Result(title='KABUTOシステム起動時の問題', summary='KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。', labels=['KABUTO', 'システムフリーズ', '初期化失敗', 'トラブルシューティング', '周辺機器解除'], reliability=0.94)), Results(file_path='../docs/images/streamlit.png', result=Result(title='ツールエージェント画面', summary='この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。', labels=['AI チャット', 'ツール選択', 'インターフェース'], reliability=0.9))] (agent.py:119)\n",
74+
"2025-08-14 11:37:37,270 [ INFO] Notification sent for request e5d93fde-3176-48dd-b361-359a1cc4b8ea: {0: {'file_path': '../docs/images/fastapi.png', 'result': {'title': 'KABUTOシステム起動時の問題', 'summary': 'KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。', 'labels': ['KABUTO', 'システムフリーズ', '初期化失敗', 'トラブルシューティング', '周辺機器解除'], 'reliability': 0.94}}, 1: {'file_path': '../docs/images/streamlit.png', 'result': {'title': 'ツールエージェント画面', 'summary': 'この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。', 'labels': ['AI チャット', 'ツール選択', 'インターフェース'], 'reliability': 0.9}}} (agent.py:32)\n",
75+
"2025-08-14 11:37:37,271 [ INFO] -------------------- (1383596555.py:27)\n",
76+
"2025-08-14 11:37:37,272 [ INFO] Event: {'notify': {'input': AgentInputState(prompt='この画像の中身を 3 行で日本語で説明してください', id='e5d93fde-3176-48dd-b361-359a1cc4b8ea', file_paths=['../docs/images/fastapi.png', '../docs/images/streamlit.png']), 'results': [Results(file_path='../docs/images/fastapi.png', result=Result(title='KABUTOシステム起動時の問題', summary='KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。', labels=['KABUTO', 'システムフリーズ', '初期化失敗', 'トラブルシューティング', '周辺機器解除'], reliability=0.94)), Results(file_path='../docs/images/streamlit.png', result=Result(title='ツールエージェント画面', summary='この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。', labels=['AI チャット', 'ツール選択', 'インターフェース'], reliability=0.9))]}} (1383596555.py:28)\n"
77+
]
78+
}
79+
],
80+
"source": [
81+
"from uuid import uuid4\n",
82+
"\n",
83+
"from template_langgraph.agents.image_classifier_agent.agent import ImageClassifierAgent\n",
84+
"from template_langgraph.agents.image_classifier_agent.classifiers import (\n",
85+
" LlmClassifier,\n",
86+
")\n",
87+
"from template_langgraph.agents.image_classifier_agent.models import (\n",
88+
" AgentInputState,\n",
89+
" AgentState,\n",
90+
" Results,\n",
91+
")\n",
92+
"\n",
93+
"# Create an instance of the agent\n",
94+
"graph = ImageClassifierAgent(\n",
95+
" classifier=LlmClassifier(),\n",
96+
").create_graph()\n",
97+
"for event in graph.stream(\n",
98+
" input=AgentState(\n",
99+
" input=AgentInputState(\n",
100+
" prompt=\"この画像の中身を 3 行で日本語で説明してください\",\n",
101+
" id=str(uuid4()),\n",
102+
" file_paths=\"../docs/images/fastapi.png,../docs/images/streamlit.png\".split(\",\"),\n",
103+
" ),\n",
104+
" results=[],\n",
105+
" )\n",
106+
"):\n",
107+
" logger.info(\"-\" * 20)\n",
108+
" logger.info(f\"Event: {event}\")"
109+
]
110+
},
111+
{
112+
"cell_type": "code",
113+
"execution_count": 3,
114+
"id": "c6c68866",
115+
"metadata": {},
116+
"outputs": [
117+
{
118+
"name": "stdout",
119+
"output_type": "stream",
120+
"text": [
121+
"{\n",
122+
" \"file_path\": \"../docs/images/fastapi.png\",\n",
123+
" \"result\": {\n",
124+
" \"title\": \"KABUTOシステム起動時の問題\",\n",
125+
" \"summary\": \"KABUTOシステムの起動時にスクリーンが紫色にフラッシュし、システムがフリーズする問題について言及しています。この問題は、内部時計と外部時計の同期が失敗することに関連しており、「シノビプロトコル」初期化失敗が原因とされています。トラブルシューティングの手順として、全ての周辺機器を外してシステムを再起動することが推奨されています。\",\n",
126+
" \"labels\": [\n",
127+
" \"KABUTO\",\n",
128+
" \"システムフリーズ\",\n",
129+
" \"初期化失敗\",\n",
130+
" \"トラブルシューティング\",\n",
131+
" \"周辺機器解除\"\n",
132+
" ],\n",
133+
" \"reliability\": 0.94\n",
134+
" }\n",
135+
"}\n",
136+
"{\n",
137+
" \"file_path\": \"../docs/images/streamlit.png\",\n",
138+
" \"result\": {\n",
139+
" \"title\": \"ツールエージェント画面\",\n",
140+
" \"summary\": \"この画像は利用可能なツールを選択し、AIと対話を行うインターフェースの表示です。\",\n",
141+
" \"labels\": [\n",
142+
" \"AI チャット\",\n",
143+
" \"ツール選択\",\n",
144+
" \"インターフェース\"\n",
145+
" ],\n",
146+
" \"reliability\": 0.9\n",
147+
" }\n",
148+
"}\n"
149+
]
150+
}
151+
],
152+
"source": [
153+
"results: list[Results] = event[\"notify\"][\"results\"]\n",
154+
"for result in results:\n",
155+
" print(f\"{result.model_dump_json(indent=2)}\")"
156+
]
157+
}
158+
],
159+
"metadata": {
160+
"kernelspec": {
161+
"display_name": "Python 3 (ipykernel)",
162+
"language": "python",
163+
"name": "python3"
164+
},
165+
"language_info": {
166+
"codemirror_mode": {
167+
"name": "ipython",
168+
"version": 3
169+
},
170+
"file_extension": ".py",
171+
"mimetype": "text/x-python",
172+
"name": "python",
173+
"nbconvert_exporter": "python",
174+
"pygments_lexer": "ipython3",
175+
"version": "3.12.0"
176+
}
177+
},
178+
"nbformat": 4,
179+
"nbformat_minor": 5
180+
}

notebooks/issue_formatter_agent.ipynb

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,19 @@
3434
"id": "c23a49b7-a3e9-4685-899e-3e7c02278360",
3535
"metadata": {},
3636
"outputs": [
37+
{
38+
"name": "stderr",
39+
"output_type": "stream",
40+
"text": [
41+
"2025-08-14 11:34:02,418 [ INFO] Analyzing issue with state: {'messages': [HumanMessage(content='KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。', additional_kwargs={}, response_metadata={}, id='5da5e35e-b768-48e3-93ee-1ba8a9bf5d62')]} (agent.py:33)\n"
42+
]
43+
},
3744
{
3845
"name": "stdout",
3946
"output_type": "stream",
4047
"text": [
4148
"--------------------\n",
42-
"Event: {'analyze': {'messages': [HumanMessage(content='KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。', additional_kwargs={}, response_metadata={}, id='6acb805e-d012-4a58-89ac-8e5c1bb58eac')], 'issue': Issue(title='KABUTOログイン問題', description='若手社員の山田太郎さんが、Windows 11環境で業務システムKABUTOにログインしようとした際、ログイン画面に「虚無」という文字が表示され、ログインできない問題が発生しました。', labels=[<IssueLabel.BUG: 'bug'>, <IssueLabel.QUESTION: 'question'>], assignee='岡本太郎', milestone=None, system_info=SystemInfo(os='Windows 11', version=None), steps_to_reproduce=['Windows 11を起動する', 'KABUTOのログイン画面を開く'], current_behavior='ログイン画面に「虚無」という文字が表示される', expected_behavior='正常にログインできる')}}\n"
49+
"Event: {'analyze': {'messages': [HumanMessage(content='KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。', additional_kwargs={}, response_metadata={}, id='5da5e35e-b768-48e3-93ee-1ba8a9bf5d62')], 'issue': Issue(title='KABUTO Login Issue - \"虚無\" Error', description=\"Young employee Tarou Yamada faces a login issue with the company's system, KABUTO. Despite entering what he believes to be the correct password, he is met with the lone, enigmatic word '虚無' ('nothingness') on the login screen. We seek to understand the cause and find a resolution. \", labels=[<IssueLabel.BUG: 'bug'>, <IssueLabel.QUESTION: 'question'>], assignee='岡本太郎', milestone=None, system_info=SystemInfo(os='Windows 11', version=None), steps_to_reproduce=['Start Windows 11.', 'Open the KABUTO login page.', 'Enter the password and attempt to log in.'], current_behavior=\"The login screen displays '虚無' after entering the password.\", expected_behavior='Successful login into the KABUTO system without any error message.')}}\n"
4350
]
4451
}
4552
],
@@ -72,8 +79,8 @@
7279
"output_type": "stream",
7380
"text": [
7481
"{\n",
75-
" \"title\": \"KABUTOログイン問題\",\n",
76-
" \"description\": \"若手社員の山田太郎さんが、Windows 11環境で業務システムKABUTOにログインしようとした際、ログイン画面に「虚無」という文字が表示され、ログインできない問題が発生しました。\",\n",
82+
" \"title\": \"KABUTO Login Issue - \\\"虚無\\\" Error\",\n",
83+
" \"description\": \"Young employee Tarou Yamada faces a login issue with the company's system, KABUTO. Despite entering what he believes to be the correct password, he is met with the lone, enigmatic word '虚無' ('nothingness') on the login screen. We seek to understand the cause and find a resolution. \",\n",
7784
" \"labels\": [\n",
7885
" \"bug\",\n",
7986
" \"question\"\n",
@@ -85,11 +92,12 @@
8592
" \"version\": null\n",
8693
" },\n",
8794
" \"steps_to_reproduce\": [\n",
88-
" \"Windows 11を起動する\",\n",
89-
" \"KABUTOのログイン画面を開く\"\n",
95+
" \"Start Windows 11.\",\n",
96+
" \"Open the KABUTO login page.\",\n",
97+
" \"Enter the password and attempt to log in.\"\n",
9098
" ],\n",
91-
" \"current_behavior\": \"ログイン画面に「虚無」という文字が表示される\",\n",
92-
" \"expected_behavior\": \"正常にログインできる\"\n",
99+
" \"current_behavior\": \"The login screen displays '虚無' after entering the password.\",\n",
100+
" \"expected_behavior\": \"Successful login into the KABUTO system without any error message.\"\n",
93101
"}\n"
94102
]
95103
}

0 commit comments

Comments
 (0)