DeepWiki-Open とは
deepwiki-open は、AsyncFuncAI によって開発された オープンソース(MIT ライセンス) プロジェクトです。
これは、GitHub、GitLab、または Bitbucket 上のコードリポジトリを分析し、構造化された対話型 Wiki に変換するための AI 駆動の Wiki/ドキュメント生成システムです。
ウィザードを通じてコード構造を自動理解(AI を介して)、視覚化アーキテクチャ図を生成(Mermaid を使用)、完全なドキュメントを作成し、「質問(Ask)」機能を提供します。ユーザーはチャットのように DeepWiki に質問でき、AI は検索拡張生成(RAG)に基づいて回答します。
また、「DeepResearch」モードもあります:複数ラウンドの深い質問を可能にし、より複雑な調査型の問題探索を行います。
複数の LLM プロバイダー/モデルをサポート:例えば Google Gemini、OpenAI、OpenRouter、Azure、さらにはローカルの Ollama モデルなど。
プライベートリポジトリもサポート:個人アクセストークン(PAT)を使用してプライベートの GitHub/GitLab リポジトリにアクセスできます。
詳細な説明 / 技術原理
1、アーキテクチャ
フロントエンド(Next.js):UI、ユーザーインタラクション(リポジトリ URL 入力、Wiki 閲覧、Q&A)を担当。
バックエンド(FastAPI):リポジトリクローン、ドキュメント生成、ベクトル検索(埋め込み)、チャットインターフェース(Q&A)などを処理。
ストレージ/キャッシュ:ローカルディレクトリ ~/.adalflow/ を使用して、クローンしたリポジトリ、ベクトルデータベース(FAISS)、生成された Wiki キャッシュ(JSON)などを保存します。
2、データ処理
リポジトリのクローン(GitHub/GitLab/Bitbucket をサポート)。
コード構造の分析:ファイルツリー、README、ソースコードなどを読み取り -> セマンティックチャンクを構築(ドキュメントチャンキング)。
埋め込み(embedding)の生成:複数の埋め込みモデル(OpenAI、Google、Ollama)を使用してドキュメントチャンクをベクトル化します。
インデックス検索(RAG):ベクトルストア(おそらく FAISS)+ リトリーバーを使用し、ユーザーの質問に対してコンテキスト検索を行います。
ドキュメント生成:検索されたコンテキストに基づき、LLM を利用して「Wiki ページ」の内容を生成します。
可視化:Mermaid を使用してアーキテクチャ図/フローチャートを生成し、コード構造の理解を支援します。
3、質問応答(Ask)
DeepWiki はチャット(Ask)インターフェースを提供し、ユーザーはコードベースに関する質問ができます。システムは検索 + LLM で回答します。
DeepResearch モード:複数ラウンドの対話をサポートし、各ラウンドで深く分析します(例:特定のモジュールの内部ロジックを追及)。バックエンドは WebSocket を通じてストリーミング応答をサポートします。
会話メモリ(conversation memory)+ コンテキスト統合により、対話の一貫性を維持します。
4、キャッシュメカニズム
Wiki キャッシュ(生成済みの Wiki ページ構造)は ~/.adalflow/wikicache/ に保存されます。
ベクトルデータベース(埋め込み + インデックス)は ~/.adalflow/databases/ に保存されます。
リポジトリクローンは ~/.adalflow/repos/ に保存されます。
この設計により、重複処理を大幅に削減し、パフォーマンスを向上させます。
5、AI モデル / プロバイダー
複数の LLM プロバイダーをサポート:Google Gemini, OpenAI, OpenRouter, Azure, ローカル Ollama など。
埋め込み(embeddings)モデルも複数のタイプをサポート(OpenAI, Google, Ollama)。設定ファイル api/config/embedder.json で定義されます。
モデルパラメータ(temperature, top_p, custom model id など)は JSON 設定でカスタマイズ可能です。
6、セキュリティ / アクセス制御
認証(Auth Mode)をサポート:DEEPWIKI_AUTH_MODE を有効にし、DEEPWIKI_AUTH_CODE と組み合わせて誰が Wiki を生成できるかを制限できます。
プライベートリポジトリへのアクセス:個人アクセストークン(PAT)を使用してプライベート GitHub / GitLab にアクセスします。
ログ設定:環境変数でログレベル(LOG_LEVEL)とログファイルパス(LOG_FILE_PATH)を設定できます。
7、拡張性
設定ディレクトリ(api/config/)でモデル、検索、ファイルフィルタリング、リポジトリルール(repo.json)などをカスタマイズできます。
Docker Compose は、標準モード、ローカル Ollama モード(プライバシー優先)など、複数のデプロイメント方法をサポートします。
コミュニティの Issue では、Wiki キャッシュをローカルではなく S3 に保存することを望む声があります。
長所と適用シナリオ
長所:
自動化:手動でのドキュメント作成作業を大幅に削減します。
構造化:生成される Wiki ページは構造が明確で、ナビゲーションが容易です。
可読性が高い:視覚化図表(Mermaid)を自動生成し、複雑なコード構造の理解を支援します。
対話性:コードベースについて質問し、コンテキストを考慮した回答を得ることができます。
柔軟性が高い:複数モデル、複数プロバイダー、ローカルモデル、プライベートリポジトリをサポートします。
セルフホスティング:完全なオープンソースで、ローカルデプロイメントをサポートし、サードパーティサービスにコードを送信する必要はありません(ローカル LLM を使用する場合)。
適用シナリオ:
チーム内の技術ドキュメント/ナレッジ管理。
オープンソースプロジェクト/ライブラリの自動ドキュメント生成。
大規模コードベースへの新メンバーの迅速なオンボーディング。
コードレビュー/構造理解の実施。
開発者が独自の「DevWiki」システムを構築したい場合。
リスク/注意事項
API コスト:クラウド LLM(例:OpenAI, Google)を使用する場合、ドキュメント生成や対話で高額な費用が発生する可能性があります。
データプライバシー:リポジトリがプライベートの場合、アクセストークンの安全性を確保する必要があります。また、クラウドモデルを呼び出す場合は、コード内容が LLM プロバイダーに送信されるかどうかを考慮する必要があります。
バージョン同期:コードベースが更新された後、インデックス/Wiki を再生成する必要があります。
リソース消費:埋め込みベクトルインデックス、大規模リポジトリの処理は、多くの計算リソースとストレージリソースを消費する可能性があります。
キャッシュ管理:~/.adalflow/ ディレクトリを適切に管理し、キャッシュの混乱やディスク使用量の過大化を避ける必要があります。
モデル互換性:埋め込みモデルを切り替えた場合(例:OpenAI からローカル Ollama へ)、埋め込みを再構築する必要があるかもしれません。










コメント
コメントはまだありません
最初のコメントを書きましょう