🧠 GraphForgeとは?
GraphForge は、自然言語で記述された仕様やアイデアを入力として受け取り、LangGraph + ローカルLLM(Qwen3:8B)を用いて、FastAPI + React 構成のWebアプリケーションコードを自動生成するGUIベースの開発支援ツールです。
一発生成ではなく、「状態遷移+構造思考」によるコード生成。
🎯 なぜ作ったか?
近年、LLMによるコード生成は一般化していますが、以下の課題が残っています:
問題点 | GraphForgeの解決策 |
---|---|
自然言語が断片的 | 設計対話による仕様の構造化 |
出力コードに一貫性がない | LangGraphで状態制御しながら生成 |
修正・再生成が困難 | .md再利用・セクション編集でループ可能 |
GUIがない | StreamlitベースのGUI提供 |
⚙️ 技術スタック
- LangGraph(LLM状態管理オーケストレーション)
- Ollama + Qwen3:8B(ローカルLLM実行)
- LangChain(プロンプト制御フレームワーク)
- Streamlit(GUIインターフェース)
🖥 機能一覧
機能 | 説明 |
---|---|
🧠 設計対話モード | LLMと自然言語で仕様を詰める |
📄 .md生成 | 会話履歴をMarkdown形式で出力 |
🚀 コード自動生成 | LangGraphで構造的にコード出力 |
📥 ファイルダウンロード | 生成ファイルをGUI上からDL可能 |
🧪 実行方法提示 | main.py がある場合は即時実行コマンド提示 |
🔁 改修モード(予定) | 既存コードの構造改修(LLM + structure.json) |
🔧 実装上の工夫と今後の拡張性
項目 | 現状の制限 | 改善・拡張余地 |
---|---|---|
セクション編集 |
.sections は編集不可 |
GUI上で各セクション編集対応可能 |
再設計導線 |
.md の貼り直し必要 |
アップロード/履歴読み出し対応可能 |
外部知識の注入 | フリーテキスト混入のみ |
.reference_knowledge フィールド化予定 |
改修実行の流れ | 曖昧指示でも強制改修 | 事前可否判定 → 実行可のフロー導入済 |
📦 出力ファイル構成例
build/
└── graphforge-20250505-xxxxx/
├── app/
│ ├── main.py
│ ├── openapi.json
│ └── routes/
├── frontend/
│ ├── src/App.jsx
│ └── pages/Home.jsx
└── README.md
🧪 セットアップ方法
# 仮想環境作成(Windows)
python -m venv venv
venv\Scripts\activate
# ライブラリインストール
pip install -r requirements.txt
# モデル実行(初回DL含む)
ollama run qwen:8b
# GUI起動
streamlit run main.py
起動後は http://localhost:8501
にアクセス。
🎁 リポジトリ
📦 GitHub: https://github.com/ryosaki1112/GraphForge
ライセンス: MIT License(商用利用に関する追加条項あり)
🚫 商用利用について / Commercial Use Restriction:
-
本ソフトウェアを以下のような商用目的で利用する場合、
事前に開発者から別途商用ライセンスの取得が必要です:- 有償プロダクトへの組み込み
- SaaS 形式での提供
- 業務委託開発での活用
- 研修・教育事業等での収益化を伴う活用
🧩 まとめ
GraphForge は「自然言語→構造→コード」をLangGraphベースで体系化した、構造思考型コード生成基盤です。
単なる出力ではなく、「再利用できる設計」を目指す方におすすめ。
PoC、個人開発、教育用途にも最適です。
アプリ開発に興味あるけど何からしたらいいかわからない方がいたらぜひ!