Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Git files
.git
.gitignore
.gitattributes

# Python cache
__pycache__
*.pyc
*.pyo
*.pyd
.Python
*.so
*.egg
*.egg-info
dist
build
.eggs
.pytest_cache
.mypy_cache
.coverage
htmlcov

# Virtual environments
venv
env
ENV
.venv

# IDE
.vscode
.idea
*.swp
*.swo
*~

# OS files
.DS_Store
Thumbs.db

# Logs
*.log
logs

# Environment files (should be handled separately)
.env.local
.env.*.local

# Documentation
*.md
!README.md

# Test files
test_*.py
*_test.py
tests/

# Temporary files
tmp
temp
*.tmp
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,10 @@ cython_debug/
.ruff_cache/

# PyPI configuration file
.pypirc
.pypirc

# Local development (non-Docker)
.pids/
logs/
API/.venv/
NetworkXMCP/.venv/
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12.11
194 changes: 194 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
# AI Agents Development Guide

このドキュメントは、生成AIを用いた開発を円滑に進めるためのガイドラインです。

## 開発環境について

### Docker の使用

このプロジェクトでは、開発環境の構築と実行に **Docker** を使用しています。

- バックエンド(API)とフロントエンドはそれぞれDockerコンテナーとして実行されます
- `docker-compose.yml` ファイルでサービスが定義されています
- 環境の一貫性を保つため、Docker環境での開発を推奨します

### Docker Compose コマンドの記法

**重要**: Docker Composeのコマンドは、**スペースを開けて** `docker compose` と記述してください。

#### ✅ 正しい記法

```bash
docker compose up
docker compose down
docker compose build
docker compose ps
docker compose logs
```

#### ❌ 誤った記法(使用しないでください)

```bash
docker-compose up # ハイフン付きは古い記法です
```

**理由**: Docker Compose V2では、`docker compose`(スペース区切り)が標準のコマンド形式です。`docker-compose`(ハイフン)は古いバージョンの記法であり、環境によっては動作しない可能性があります。

## プロジェクト構成

### 主要なコンポーネント

1. **API** (`/API`)
- FastAPIベースのバックエンドサーバー
- ネットワーク解析、認証、LLM統合などの機能を提供
- Python 3.12+ を使用

2. **frontend** (`/frontend`)
- React + Viteベースのフロントエンドアプリケーション
- ネットワーク可視化UI

3. **NetworkXMCP** (`/NetworkXMCP`)
- NetworkXを使用したグラフ解析MCPサーバー
- レイアウト計算、中心性指標などの機能を提供

## 開発時の基本コマンド

### サービスの起動

```bash
# すべてのサービスを起動
docker compose up

# バックグラウンドで起動
docker compose up -d

# 特定のサービスのみ起動
docker compose up api
docker compose up frontend
```

### サービスの停止

```bash
# すべてのサービスを停止
docker compose down

# ボリュームも削除して停止
docker compose down -v
```

### ログの確認

```bash
# すべてのサービスのログを表示
docker compose logs

# 特定のサービスのログを表示
docker compose logs api

# リアルタイムでログを追跡
docker compose logs -f
```

### コンテナーの再ビルド

```bash
# すべてのサービスを再ビルド
docker compose build

# キャッシュを使わずに再ビルド
docker compose build --no-cache
```

### サービスの状態確認

```bash
# 実行中のコンテナを確認
docker compose ps
```

## 開発ワークフロー

1. **初回セットアップ**

```bash
# イメージをビルド
docker compose build

# サービスを起動
docker compose up -d
```

2. **コード変更後**

```bash
# サービスを再起動(ホットリロードが有効な場合は不要)
docker compose restart api

# または、再ビルドが必要な場合
docker compose up -d --build
```

3. **クリーンアップ**

```bash
# コンテナとネットワークを削除
docker compose down

# ボリュームも含めて完全にクリーンアップ
docker compose down -v
```

## テストの実行

```bash
# APIのテストを実行
docker compose exec api pytest

# NetworkXMCPのテストを実行
cd NetworkXMCP
python -m pytest
```

## トラブルシューティング

### ポートがすでに使用されている場合

```bash
# 実行中のコンテナーを確認
docker compose ps

# 停止してから再起動
docker compose down
docker compose up
```

### データベースの初期化が必要な場合

```bash
# ボリュームを削除して再起動
docker compose down -v
docker compose up
```

### ログでエラーを確認

```bash
# すべてのログを確認
docker compose logs

# エラーが発生しているサービスのログを詳細に確認
docker compose logs -f api
```

## 注意事項

- コード変更を行う際は、適切なDockerサービスが起動していることを確認してください
- データベースのマイグレーションが必要な場合は、`docker compose down -v` でボリュームを削除してから再起動してください
- 本番環境にデプロイする際は、環境変数やシークレットの管理に注意してください

## 追加リソース

- [Docker Compose ドキュメント](https://docs.docker.com/compose/)
- [プロジェクトREADME](./README.md)
- [LLM Provider ガイド](./LLM_PROVIDER_GUIDE.md)
44 changes: 37 additions & 7 deletions API/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,39 @@
__pycache__
*.pyc
*.pyo
*.pyd
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.env
env/
venv/
ENV/
.venv
pip-log.txt
*.log

# Testing
.pytest_cache/
.coverage
htmlcov/

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Git
.git/
.gitignore

# Documentation
*.md
docs/

# Test files
test_*.py
*_test.py
test_*.http
2 changes: 1 addition & 1 deletion API/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ COPY ./pyproject.toml .
RUN uv sync --no-cache

# アプリケーションの実行
CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
Binary file modified API/__pycache__/main.cpython-312.pyc
Binary file not shown.
9 changes: 6 additions & 3 deletions API/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,14 @@ dependencies = [
"sqlalchemy>=2.0.0",
"psycopg2-binary>=2.9.9",
"alembic>=1.13.1",
"numpy>=2.2.5",
"scipy>=1.12.0",
"httpx>=0.27.0",
"anyio==3.6.2",
"starlette>=0.31.1",
"pydantic>=2.0.0",
"requests>=2.31.0",
"python-multipart>=0.0.6",
]

# 削除した依存関係(未使用のため):
# - numpy>=2.2.5 - NetworkXの依存関係として自動インストールされる
# - scipy>=1.12.0 (約32MB) - APIサーバーでは未使用
# - requests>=2.31.0 - httpxで代替可能(現在未使用)
Loading