DeepWiki-Open:GitHub/GitLabリポジトリ向けAI搭載型Wiki自動生成ツール
DeepWikiは、GitHubやGitLabリポジトリから、美しくインタラクティブなWikiを自動生成するツールです。リポジトリ名を指定するだけで、コード構造の分析、包括的なドキュメントの生成、仕組みを説明する図の作成、そしてそれらを使いやすいWikiに整理します。
DeepWikiの主要機能
- 即時ドキュメント生成: GitHubまたはGitLabのリポジトリを数秒でWikiに変換します。
- スマートな分析: AIによるコード構造と関係性の理解により、的確な情報を抽出します。
- 美しい図の自動生成: Mermaid記法による図を自動生成し、アーキテクチャやデータフローを視覚化します。
- 簡単なナビゲーション: シンプルで直感的なインターフェースでWikiを探索できます。
簡単なクイックスタート
DeepWikiの始め方は簡単です。Dockerを使う方法と、手動でセットアップする方法の2つがあります。
Dockerを使った起動(推奨)
Dockerを使用すると、環境構築が非常に簡単になります。
-
リポジトリをクローンします。
-
APIキーを含む
.env
ファイルを作成します。 -
Docker Composeで起動します。
APIキーの取得場所
- Google APIキーは、Google AI Studioから取得できます。
- OpenAI APIキーは、OpenAI Platformから取得できます。
手動セットアップ
手動でセットアップする場合は、以下の手順に従ってください。
-
APIキーの設定
プロジェクトルートに
.env
ファイルを作成し、APIキーを設定します。GOOGLE_API_KEY=your_google_api_key OPENAI_API_KEY=your_openai_api_key
-
バックエンドの起動
Pythonの依存関係をインストールし、APIサーバーを起動します。
-
フロントエンドの起動
JavaScriptの依存関係をインストールし、Webアプリケーションを起動します。
-
DeepWikiを使ってみましょう!
ブラウザで
http://localhost:3000
を開き、GitHubまたはGitLabのリポジトリ(例:facebook/react, vercel/next.js, https://gitlab.com/gitlab-org/gitlab)を入力し、「Generate Wiki」をクリックすると、AIがWikiを自動生成します。ぜひ、DeepWikiのWiki自動生成の魔法を体験してください。
DeepWikiの動作原理
DeepWikiは、AIを使用して以下の処理を行います。
- GitHubまたはGitLabリポジトリをクローンして分析します。
- コードの埋め込みを作成して、スマートな検索を可能にします。
- コンテキストを考慮したAIでドキュメントを生成します。
- コードの関係性を説明する図を生成します。
- これらすべてを構造化されたWikiに整理します。
DeepWikiプロジェクトの構成
DeepWikiのプロジェクト構成は以下の通りです。
deepwiki/
├── api/ # バックエンドAPIサーバー
│ ├── main.py # APIのエントリーポイント
│ ├── api.py # FastAPIの実装
│ ├── rag.py # Retrieval Augmented Generation
│ ├── data_pipeline.py # データ処理ユーティリティ
│ └── requirements.txt # Pythonの依存関係
│
├── src/ # フロントエンドNext.jsアプリケーション
│ ├── app/ # Next.jsアプリケーションディレクトリ
│ │ └── page.tsx # メインアプリケーションページ
│ └── components/ # Reactコンポーネント
│ └── Mermaid.tsx # Mermaid図のレンダラー
│
├── public/ # 静的アセット
├── package.json # JavaScriptの依存関係
└── .env # 環境変数(これを作成します)
DeepWikiの高度な設定
環境変数
DeepWikiの動作には、以下の環境変数が必要です。
GOOGLE_API_KEY
:Google APIキーOPENAI_API_KEY
:OpenAI APIキー
Dockerの設定
Dockerを使ってDeepWikiを実行することもできます。
-
GitHub Container Registryからイメージをプルします。
-
コンテナを実行します。
または、提供されている
docker-compose.yml
ファイルを使用することもできます。まず、.env
ファイルを編集してAPIキーを入力してください。
APIサーバーの詳細
APIサーバーは、以下の機能を提供します。
- リポジトリのクローンとインデックス作成
- RAG(Retrieval Augmented Generation)
- ストリーミングチャットの完了
詳細については、APIのREADMEを参照してください。
トラブルシューティング
APIキーの問題
- "Missing environment variables"(環境変数がありません):
.env
ファイルがプロジェクトルートにあり、両方のAPIキーが含まれていることを確認してください。 - "API key not valid"(APIキーが無効です):余分なスペースがないことを確認し、完全なキーを正しくコピーしたことを確認してください。
接続の問題
- "Cannot connect to API server"(APIサーバーに接続できません):APIサーバーがポート8001で実行されていることを確認してください。
- "CORS error"(CORSエラー):APIはすべてのオリジンを許可するように構成されていますが、問題が発生する場合は、フロントエンドとバックエンドを同じマシンで実行してみてください。
生成の問題
- "Error generating wiki"(Wikiの生成エラー):非常に大きなリポジトリの場合は、まず小さいリポジトリを試してください。
- "Invalid repository format"(無効なリポジトリ形式):有効なGitHubまたはGitLabのURL形式を使用していることを確認してください。
- "Diagram rendering error"(図のレンダリングエラー):アプリは自動的に壊れた図を修正しようとします。
一般的な解決策
- 両方のサーバーを再起動します。再起動だけでほとんどの問題が解決することがあります。
- コンソールログを確認します。ブラウザの開発者ツールを開いて、JavaScriptエラーを確認します。
- APIログを確認します。APIが実行されているターミナルでPythonエラーを探します。
DeepWikiへの貢献
貢献を歓迎します! ぜひ、以下のことを行ってください。
- バグや機能リクエストに関するIssueを開いてください。
- コードを改善するためのプルリクエストを送信してください。
- フィードバックやアイデアを共有してください。
DeepWikiは、MITライセンスに基づいて公開されています。詳細については、LICENSEファイルをご覧ください。