fastapi_django_main_live / generate_system_docs.py
GitHub Action
🚀 Auto-deploy from GitHub Actions
55cbdc2
"""
システムドキュメント生成ツール
============================
開発したシステムの画面キャプチャとドキュメントを自動生成
"""
import os
import datetime
from pathlib import Path
import subprocess
import requests
from PIL import Image
import io
def create_documentation_structure():
"""ドキュメント用のディレクトリ構造を作成"""
docs_dir = Path("/workspaces/fastapi_django_main_live/docs")
images_dir = docs_dir / "images"
screenshots_dir = images_dir / "screenshots"
# ディレクトリ作成
for dir_path in [docs_dir, images_dir, screenshots_dir]:
dir_path.mkdir(exist_ok=True)
print(f"📁 Created directory: {dir_path}")
return {
"docs": docs_dir,
"images": images_dir,
"screenshots": screenshots_dir
}
def capture_system_info():
"""システム情報を取得"""
# GitHub Issues取得
try:
result = subprocess.run(['gh', 'issue', 'list', '--state', 'open', '--json', 'number,title,labels,updatedAt'],
capture_output=True, text=True, cwd='/workspaces/fastapi_django_main_live')
open_issues = result.stdout if result.returncode == 0 else "[]"
except Exception as e:
open_issues = f"Error: {e}"
# システム情報
system_info = {
"timestamp": datetime.datetime.now().isoformat(),
"main_url": "https://ideal-halibut-4q5qp79g2jp9-7860.app.github.dev/",
"local_dashboard": "http://localhost:7865",
"github_repo": "https://github.com/miyataken999/fastapi_django_main_live",
"open_issues": open_issues,
"features_implemented": [
"🤖 ContBK統合ダッシュボード",
"🐙 GitHub Issue自動作成機能",
"💬 会話履歴記録システム",
"🤖 RPA自動化システム",
"🎨 UI自動生成システム",
"📄 ドキュメント生成AI"
]
}
return system_info
def generate_system_showcase_doc(dirs, system_info):
"""システムショーケースドキュメントを生成"""
showcase_content = f"""# 🚀 ContBK統合システム - 開発成果ショーケース
*生成日時: {datetime.datetime.now().strftime('%Y年%m月%d日 %H:%M:%S')}*
## 🎯 システム概要
このドキュメントは、GitHub CopilotとAIアシスタントによって協働開発された**ContBK統合システム**の成果物を紹介します。
### 🌐 稼働中システム
- **メインサイト**: [{system_info['main_url']}]({system_info['main_url']})
- **統合ダッシュボード**: [{system_info['local_dashboard']}]({system_info['local_dashboard']})
- **GitHubリポジトリ**: [{system_info['github_repo']}]({system_info['github_repo']})
## 🛠️ 実装完了機能
### ✅ 主要機能一覧
"""
for feature in system_info['features_implemented']:
showcase_content += f"- {feature}\n"
showcase_content += f"""
## 📊 開発状況
### 🔄 オープンイシュー
{system_info['open_issues']}
## 📸 システムスクリーンショット
### 🏠 メインダッシュボード
![メインダッシュボード](./images/screenshots/main_dashboard.png)
*ContBK統合システムのメインインターフェース。カテゴリ別に整理された機能一覧。*
### 🤖 AI・自動化カテゴリ
![AI自動化](./images/screenshots/ai_automation.png)
*AI チャット、AI インタープリター、RPA自動化システムを統合。*
### 🐙 GitHub Issue作成機能
![GitHub Issue作成](./images/screenshots/github_issue_creator.png)
*会話履歴から自動的にGitHub Issueを作成する革新的な機能。*
### 📄 ドキュメント・開発カテゴリ
![ドキュメント開発](./images/screenshots/document_dev.png)
*ドキュメント生成、プログラム生成AI、プロンプト管理機能。*
### 🎨 フロントエンド・UI カテゴリ
![フロントエンドUI](./images/screenshots/frontend_ui.png)
*フロントエンド生成、画像からUI生成の高度な機能群。*
## 🔧 技術的特徴
### 🚀 革新的アーキテクチャ
- **自動発見システム**: `controllers/`と`contbk/`を自動スキャン
- **プラグイン式設計**: 新機能の追加が容易
- **統合ダッシュボード**: 全機能を一元管理
- **会話駆動開発**: 自然言語でシステム拡張
### 💾 データ管理
- **SQLite統合**: 会話履歴、RPA履歴、プロンプト管理
- **自動記録**: システム操作の完全トレーサビリティ
- **バックアップ**: データの安全性確保
### 🔗 外部連携
- **GitHub CLI統合**: Issue作成・管理の自動化
- **Gradio WebUI**: 美しく直感的なインターフェース
- **AI API統合**: 複数のAIサービスとの連携
## 📈 開発プロセス
### 🤖 AI協働開発
1. **要求分析**: 自然言語での機能要求
2. **設計**: AIによる最適なアーキテクチャ提案
3. **実装**: リアルタイムコード生成と統合
4. **テスト**: 自動テストとデバッグ
5. **ドキュメント**: 自動ドキュメント生成
### 🔄 継続的改善
- **フィードバック**: ユーザー操作からの学習
- **自動最適化**: パフォーマンス監視と改善
- **機能拡張**: 新たなニーズへの即座の対応
## 🎉 成果と影響
### ✨ 開発速度の革命
- **従来**: 数週間 → **現在**: 数分〜数時間
- **コード品質**: AI支援による高品質コード
- **保守性**: モジュラー設計による高い保守性
### 🌟 ユーザー体験
- **直感的操作**: 自然言語での機能利用
- **統合環境**: 全ての機能が一箇所に集約
- **カスタマイズ**: ユーザーニーズに応じた柔軟な拡張
## 🔮 今後の展望
### 🚀 予定機能
- **マルチモーダルAI**: 画像・音声・動画処理の統合
- **リアルタイム協働**: 複数ユーザーでの同時開発
- **自動デプロイ**: CI/CDパイプラインの完全自動化
- **AI学習**: システム利用パターンからの自動学習
### 🌐 拡張可能性
- **プラットフォーム**: クラウド・オンプレミス対応
- **API化**: 外部システムとの連携強化
- **多言語対応**: グローバル展開への準備
---
*このシステムは、人間とAIの協働による新しい開発パラダイムの実証実験として位置づけられています。*
**開発チーム**: GitHub Copilot + AI Assistant + 人間開発者
**開発期間**: {datetime.datetime.now().strftime('%Y年%m月')}
**技術スタック**: Python, FastAPI, Django, Gradio, SQLite, GitHub CLI
"""
return showcase_content
def generate_updated_readme(dirs, system_info):
"""更新されたREADME.mdを生成"""
readme_addition = f"""
## 📸 システムスクリーンショット・ギャラリー
### 🎯 ContBK統合ダッシュボード
![統合ダッシュボード](./docs/images/screenshots/dashboard_overview.png)
**機能概要**:
- 🏠 概要タブで全体像把握
- 🤖 AI・自動化カテゴリ
- 📄 ドキュメント・開発カテゴリ
- 🎨 フロントエンド・UIカテゴリ
- 📊 データ・ファイルカテゴリ
- 🌐 その他ツール
- 🐙 開発・Issue管理カテゴリ
### 🐙 GitHub Issue自動作成機能
![GitHub Issue作成](./docs/images/screenshots/github_issue_creator.png)
**革新的機能**:
- 💬 会話履歴からIssue自動生成
- 🏷️ ラベル自動付与
- 📝 Markdown形式の美しいIssue
- 🔄 セッション情報の自動記録
### 🤖 RPA自動化システム
![RPA自動化](./docs/images/screenshots/rpa_automation.png)
**高度な自動化**:
- 🌐 Webブラウザ自動操作
- 📸 スクリーンショット取得
- 🎯 要素の自動認識
- 💾 操作履歴の完全記録
## 🚀 ライブデモ
### 🌐 本番環境
**メインサイト**: [https://ideal-halibut-4q5qp79g2jp9-7860.app.github.dev/](https://ideal-halibut-4q5qp79g2jp9-7860.app.github.dev/)
実際に稼働中のシステムをご体験いただけます!
### 📋 現在のオープンイシュー
{system_info['open_issues']}
## 📊 開発統計
### ✅ 実装完了機能 ({len(system_info['features_implemented'])}個)
"""
for i, feature in enumerate(system_info['features_implemented'], 1):
readme_addition += f"{i}. {feature}\n"
readme_addition += f"""
### 🏗️ システムアーキテクチャ
```
fastapi_django_main_live/
├── 🎯 controllers/ # 統合ダッシュボード・Issue作成
├── 🤖 contbk/ # AI・RPA・UI生成機能群
├── 💾 データベース/ # 会話・RPA・プロンプト履歴
├── 🌐 mysite/ # FastAPI・Django統合
└── 📚 docs/ # ドキュメント・スクリーンショット
```
### 📈 開発成果
- **開発期間**: {datetime.datetime.now().strftime('%Y年%m月')}
- **コミット数**: 継続的更新中
- **機能数**: {len(system_info['features_implemented'])}個以上
- **技術統合**: AI + Web + 自動化
---
## 🔗 詳細ドキュメント
- 📘 **[システムショーケース](./docs/system_showcase.md)** - 開発成果の詳細
- 🤖 **[AI視点分析](./docs/AI.md)** - AIによるシステム評価
- 🛠️ **[技術仕様書](./docs/)** - 開発者向け詳細情報
---
*最終更新: {datetime.datetime.now().strftime('%Y年%m月%d日 %H:%M:%S')}*
"""
return readme_addition
def main():
"""メイン実行関数"""
print("🚀 システムドキュメント生成を開始...")
# ディレクトリ構造作成
dirs = create_documentation_structure()
print("✅ ディレクトリ構造作成完了")
# システム情報取得
system_info = capture_system_info()
print("✅ システム情報取得完了")
# システムショーケースドキュメント生成
showcase_content = generate_system_showcase_doc(dirs, system_info)
showcase_path = dirs["docs"] / "system_showcase.md"
with open(showcase_path, 'w', encoding='utf-8') as f:
f.write(showcase_content)
print(f"✅ システムショーケース生成: {showcase_path}")
# README更新内容生成
readme_addition = generate_updated_readme(dirs, system_info)
readme_addition_path = dirs["docs"] / "readme_addition.md"
with open(readme_addition_path, 'w', encoding='utf-8') as f:
f.write(readme_addition)
print(f"✅ README追加内容生成: {readme_addition_path}")
print("🎉 ドキュメント生成完了!")
print("\n📋 次のステップ:")
print("1. システムのスクリーンショット取得")
print("2. README.mdに追加内容をマージ")
print("3. GitHub Issueの状況確認・更新")
return dirs, system_info
if __name__ == "__main__":
main()