Skip to content

Commit 5fbfed0

Browse files
committed
gen: #file:docs 以下のすべての markdown ファイルを翻訳してください。英語で記載された hoge.md を日本語翻訳して hoge.ja.md として保存するようにしてください。
1 parent d4da00e commit 5fbfed0

File tree

5 files changed

+365
-0
lines changed

5 files changed

+365
-0
lines changed

docs/deployment.ja.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# デプロイメント手順
2+
3+
## Docker Hub
4+
5+
Docker Hub に Docker イメージを公開するには、[アクセストークンを作成](https://app.docker.com/settings/personal-access-tokens/create)し、リポジトリ設定で以下のシークレットを設定する必要があります。
6+
7+
```shell
8+
gh secret set DOCKERHUB_USERNAME --body $DOCKERHUB_USERNAME
9+
gh secret set DOCKERHUB_TOKEN --body $DOCKERHUB_TOKEN
10+
```
11+
12+
## Azure Static Web Apps
13+
14+
```shell
15+
RESOURCE_GROUP_NAME=your-resource-group-name
16+
SWA_NAME=your-static-web-app-name
17+
18+
# 静的アプリを作成する
19+
az staticwebapp create --name $SWA_NAME --resource-group $RESOURCE_GROUP_NAME
20+
21+
# APIキーを取得する
22+
AZURE_STATIC_WEB_APPS_API_TOKEN=$(az staticwebapp secrets list --name $SWA_NAME --query "properties.apiKey" -o tsv)
23+
24+
# APIキーをGitHubシークレットとして設定する
25+
gh secret set AZURE_STATIC_WEB_APPS_API_TOKEN --body $AZURE_STATIC_WEB_APPS_API_TOKEN
26+
```
27+
28+
詳細については、以下のリンクを参照してください:
29+
30+
- [Azure Static Web App へのデプロイ](https://docs.github.com/en/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
31+
- [静的 Web アプリの作成: `az staticwebapp create`](https://learn.microsoft.com/en-us/cli/azure/staticwebapp?view=azure-cli-latest#az-staticwebapp-create)

docs/development.ja.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 開発手順
2+
3+
## ローカル開発
4+
5+
Makefile を使用してプロジェクトをローカルで実行します。
6+
7+
```shell
8+
# ヘルプを表示
9+
make
10+
11+
# 開発用の依存関係をインストール
12+
make install-deps-dev
13+
14+
# テストを実行
15+
make test
16+
17+
# CIテストを実行
18+
make ci-test
19+
```
20+
21+
## テスト
22+
23+
```shell
24+
# AIエージェントのすべてのテストを実行
25+
bash scripts/test_all.sh
26+
```
27+
28+
## Docker 開発
29+
30+
```shell
31+
# Dockerイメージをビルド
32+
make docker-build
33+
34+
# Dockerコンテナを実行
35+
make docker-run
36+
37+
# DockerコンテナでCIテストを実行
38+
make ci-test-docker
39+
```

docs/faq.ja.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# よくある質問
2+
3+
## Docker Compose で Elasticsearch を起動できない
4+
5+
**現象:**
6+
7+
WSL2 上で `docker compose up elasticsearch` を実行した際に、以下のエラーが発生する
8+
9+
`java.lang.IllegalStateException: failed to obtain node locks, tried [/usr/share/elasticsearch/data]; maybe these locations are not writable or multiple nodes were started on the same data path?`
10+
11+
**原因:**
12+
13+
Elasticsearch がデータディレクトリ(/usr/share/elasticsearch/data)にロックファイルを作成できないことを示しています。
14+
15+
**対処方法:**
16+
17+
ディレクトリの権限を修正するために、以下のコマンドを実行してください。
18+
19+
```shell
20+
sudo chown -R 1000:1000 ./assets/es_data
21+
```

docs/index.ja.md

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
# LangGraph AI エージェント テンプレート
2+
3+
[LangGraph](https://langchain-ai.github.io/langgraph/)を使用して AI エージェントを構築するための包括的なテンプレートプロジェクト。様々なエージェントパターン、ツール統合、実際のユースケースを実演します。
4+
5+
## LangGraph とは?
6+
7+
[LangGraph](https://langchain-ai.github.io/langgraph/)[LangChain](https://python.langchain.com/)の上に構築されたフレームワークで、ステートフルなマルチエージェントワークフローを作成できます。単一のインタラクションを処理する従来のチャットボットとは異なり、LangGraph では以下のような複雑な AI システムを構築できます:
8+
9+
- 複数のターンにわたって会話状態を維持
10+
- ツールと外部 API の使用
11+
- 複雑な推論パターンの実装
12+
- 複数の AI エージェントの協調
13+
- 循環ワークフローと条件ロジックの処理
14+
15+
このテンプレートは、トラブルシューティングシナリオ用の架空のシステム「KABUTO」を使用して、これらの機能を実際の例で示しています。
16+
17+
## プロジェクト概要
18+
19+
このプロジェクトは、シンプルなツール呼び出しエージェントから複雑なマルチエージェントシステムまで、異なる AI エージェントパターンとアーキテクチャを紹介しています。例では、エージェントが複数のデータソースから情報を取得し、構造化された回答を提供する方法を示すために、架空の技術サポートシナリオを使用しています。
20+
21+
### このテンプレートが存在する理由
22+
23+
多くの AI アプリケーションは以下のことが必要です:
24+
25+
1. **外部情報へのアクセス** - LLM は特定のデータにアクセスできません
26+
2. **ツールの使用** - テキスト生成以外のアクションを実行
27+
3. **コンテキストの維持** - 以前のインタラクションを記憶
28+
4. **複雑なワークフローの処理** - タスクを管理可能なステップに分解
29+
30+
このテンプレートは、LangGraph を使用してこれらすべてのパターンの動作例を提供しています。
31+
32+
## 前提条件
33+
34+
- [Python 3.10+](https://www.python.org/downloads/)
35+
- [uv](https://docs.astral.sh/uv/getting-started/installation/) - モダンな Python パッケージマネージャー
36+
- [GNU Make](https://www.gnu.org/software/make/) - 一般的なタスクの実行用
37+
- [Docker](https://www.docker.com/) - ベクターデータベースの実行用(オプション)
38+
39+
## クイックスタート
40+
41+
### 1. 環境設定
42+
43+
```shell
44+
# リポジトリをクローン
45+
git clone https://github.com/ks6088ts-labs/template-langgraph.git
46+
cd template-langgraph
47+
48+
# Python依存関係をインストール
49+
uv sync --all-extras
50+
51+
# 環境設定を作成
52+
cp .env.template .env
53+
# .envを編集してAPIキー(Azure OpenAIなど)を設定
54+
```
55+
56+
### 2. サポートサービスの開始(オプション)
57+
58+
完全な機能のために、ベクターデータベースを開始します:
59+
60+
```shell
61+
# DockerでQdrantとElasticsearchを開始
62+
docker compose up -d
63+
```
64+
65+
### 3. データソースの初期化
66+
67+
**Qdrant ベクターデータベースの設定:**
68+
69+
```shell
70+
uv run python scripts/qdrant_operator.py add-documents \
71+
--collection-name qa_kabuto \
72+
--verbose
73+
```
74+
75+
**Elasticsearch 検索インデックスの設定:**
76+
77+
```shell
78+
uv run python scripts/elasticsearch_operator.py create-index \
79+
--index-name docs_kabuto \
80+
--verbose
81+
```
82+
83+
## プロジェクト構造
84+
85+
### コアコンポーネント
86+
87+
- **`data/`** - 架空の KABUTO システム用のサンプルデータ(PDF、FAQ、トラブルシューティングガイド)
88+
- **`template_langgraph/`** - すべてのエージェント実装を含むメイン Python パッケージ
89+
- **`notebooks/`** - インタラクティブな例と説明付き Jupyter ノートブック
90+
- **`scripts/`** - エージェント実行用コマンドラインツール
91+
92+
### エージェントの例(`template_langgraph/agents/`
93+
94+
このプロジェクトには、それぞれ異なる LangGraph パターンを実演する複数のエージェント実装が含まれています:
95+
96+
#### 1. `kabuto_helpdesk_agent/` - **ここから始めよう!**
97+
98+
LangGraph の事前構築された`create_react_agent`関数を使用したシンプルなエージェント。基本を理解するのに最適な出発点です。
99+
100+
**主要概念:** ReAct パターン、ツール呼び出し、事前構築エージェント
101+
102+
#### 2. `chat_with_tools_agent/` - **コア実装**
103+
104+
ヘルプデスクエージェントと同じロジックの手動実装で、LangGraph ワークフローがゼロから構築される方法を示しています。
105+
106+
**主要概念:** グラフ構築、状態管理、ノード関数、エッジ
107+
108+
#### 3. `issue_formatter_agent/` - **構造化出力**
109+
110+
Pydantic モデルを使用して AI 応答から構造化データを取得する方法を実演しています。
111+
112+
**主要概念:** 構造化出力、データ検証、レスポンス形式設定
113+
114+
#### 4. `task_decomposer_agent/` - **計画と分解**
115+
116+
複雑なタスクを小さく管理可能なステップに分解する方法を示しています。
117+
118+
**主要概念:** タスク計画、マルチステップ推論、条件付きワークフロー
119+
120+
#### 5. `supervisor_agent/` - **マルチエージェント協調**
121+
122+
1 つのエージェントが複数の専門エージェントを協調させるスーパーバイザーパターンを実装しています。
123+
124+
**主要概念:** マルチエージェントシステム、エージェント協調、スーパーバイザーパターン
125+
126+
### サポートモジュール
127+
128+
- **`template_langgraph/llms/`** - LLM API ラッパー(Azure OpenAI など)
129+
- **`template_langgraph/tools/`** - 検索、データ取得用ツール実装
130+
- **`template_langgraph/utilities/`** - ドキュメント読み込みと処理用ヘルパー関数
131+
132+
## 例の実行
133+
134+
### オプション 1: LangGraph Studio(開発用推奨)
135+
136+
[LangGraph Studio](https://langchain-ai.github.io/langgraph/concepts/langgraph_studio/)は、エージェントの開発とデバッグのためのビジュアルインターフェースを提供します:
137+
138+
```shell
139+
uv run langgraph dev
140+
```
141+
142+
これにより、以下が可能な Web インターフェースが開きます:
143+
144+
- エージェントワークフローの可視化
145+
- 実行のステップスルー
146+
- 状態遷移のデバッグ
147+
- 異なる入力のテスト
148+
149+
![langgraph-studio.png](./images/langgraph-studio.png)
150+
151+
### オプション 2: Jupyter ノートブック(学習に最適)
152+
153+
説明と例付きのインタラクティブノートブック:
154+
155+
```shell
156+
uv run jupyter lab
157+
# http://localhost:8888 に移動し、notebooks/*.ipynbを開く
158+
```
159+
160+
![jupyterlab.png](./images/jupyterlab.png)
161+
162+
### オプション 3: コマンドライン(本番環境的)
163+
164+
ターミナルからエージェントを実行:
165+
166+
```shell
167+
uv run python scripts/agent_operator.py run \
168+
--name "chat_with_tools_agent" \
169+
--question "KABUTO startup issue: screen flashes purple and system freezes" \
170+
--verbose
171+
```
172+
173+
エージェントの推論プロセスを示す出力例:
174+
175+
```text
176+
Event: {'chat_with_tools': {'messages': [AIMessage(content='', tool_calls=[
177+
{'name': 'search_elasticsearch', 'args': {'keywords': 'KABUTO startup purple flashing freeze'}},
178+
{'name': 'search_qdrant', 'args': {'keywords': 'KABUTO startup purple flashing freeze'}}
179+
])]}}
180+
181+
Event: {'tools': {'messages': [ToolMessage(content='Found documentation about startup protocol...')]}}
182+
183+
Event: {'chat_with_tools': {'messages': [AIMessage(content='
184+
### 問題分析
185+
KABUTO起動時の紫画面点滅は「忍者プロトコル」初期化エラーを示しています...
186+
187+
### 解決策
188+
1. **周辺機器の切断**: すべての接続デバイスを5秒以上取り外す
189+
2. **外部クロックキャッシュのクリア**: クロック同期問題を解決
190+
3. **KABUTOの再起動**: 必要に応じて「ドラゴンボール」ボタンを5秒以上押す
191+
')]}}
192+
```
193+
194+
## 実演されている主要概念
195+
196+
### 1. **ReAct パターン**(推論 + 行動)
197+
198+
現代の AI エージェントの基盤 - 何をすべきかを推論し、行動を取り、結果について推論する能力。
199+
200+
### 2. **ツール呼び出し**
201+
202+
エージェントが外部関数を使用する方法:
203+
204+
- データベース検索(Elasticsearch、Qdrant)
205+
- API 呼び出し
206+
- ファイル処理
207+
- 計算実行
208+
209+
### 3. **状態管理**
210+
211+
LangGraph が複数のインタラクションステップにわたってコンテキストを維持し、複雑なマルチターン会話を可能にする方法。
212+
213+
### 4. **条件付きワークフロー**
214+
215+
エージェントの決定や外部条件に基づく分岐ロジックを作成するためのグラフ構造の使用。
216+
217+
### 5. **マルチエージェントシステム**
218+
219+
異なる専門知識を必要とする複雑なタスクを処理するための複数の専門エージェントの協調。
220+
221+
## データソースの説明
222+
223+
プロジェクトは実際のシナリオを実演するために「KABUTO」というシステムについての架空のデータを使用しています:
224+
225+
- **`data/docs_kabuto.pdf`** - 技術文書(ユーザーマニュアルをシミュレート)
226+
- **`data/qa_kabuto.csv`** - FAQ データベース(過去のサポートチケットをシミュレート)
227+
- **`data/docs_kabuto.md`** - 追加文書
228+
229+
この架空のデータには目的があります:AI エージェントが LLM の訓練データにない情報で動作できることを証明し、検索拡張生成(RAG)の価値を実演しています。
230+
231+
## 次のステップ
232+
233+
1. **基本から始める**: `kabuto_helpdesk_agent`の例を実行
234+
2. **実装を理解する**: `chat_with_tools_agent`と比較
235+
3. **高度なパターンを探索**: タスク分解器とスーパーバイザーエージェントを試す
236+
4. **独自のものを構築**: このテンプレートをあなたのユースケースの出発点として使用
237+
238+
## 学習リソース
239+
240+
- [LangGraph 文書](https://langchain-ai.github.io/langgraph/)
241+
- [LangChain 文書](https://python.langchain.com/)
242+
243+
## アーキテクチャの例
244+
245+
このテンプレートは複数の実証済みエージェントアーキテクチャを実演しています:
246+
247+
1. **ツール付きシングルエージェント** - 基本的なツール呼び出しパターン
248+
2. **ReAct エージェント** - ループでの推論と行動
249+
3. **構造化出力エージェント** - フォーマットされたデータの返却
250+
4. **計画エージェント** - 複雑なタスクの分解
251+
5. **スーパーバイザーエージェント** - 複数エージェントの協調
252+
253+
各パターンは、いつどのように使用するかを理解するのに役立つ明確な例と文書で実装されています。

docs/references.ja.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# 参考資料
2+
3+
## LangGraph
4+
5+
- [カスタムワークフローの構築](https://langchain-ai.github.io/langgraph/concepts/why-langgraph/)
6+
- [LangGraph の(LLM なし)Human-in-the-loop を試してみた](https://qiita.com/te_yama/items/db38201af60dec76384d)
7+
- [🤖 LangGraph Multi-Agent Supervisor](https://github.com/langchain-ai/langgraph-supervisor-py)
8+
- [Software Design 誌「実践 LLM アプリケーション開発」第 24 回サンプルコード](https://github.com/mahm/softwaredesign-llm-application/tree/main/24)
9+
10+
## サンプルコード
11+
12+
- [「現場で活用するための AI エージェント実践入門」リポジトリ](https://github.com/masamasa59/genai-agent-advanced-book)
13+
14+
## モデル
15+
16+
- [AzureOpenAIEmbeddings](https://python.langchain.com/docs/integrations/text_embedding/azureopenai/)
17+
18+
## ツール
19+
20+
- [CSVLoader](https://python.langchain.com/docs/how_to/document_loader_csv/)
21+
- [Qdrant](https://github.com/qdrant/qdrant)

0 commit comments

Comments
 (0)