deepwiki-open

Open Source DeepWiki: AI-Powered Wiki Generator for GitHub/Gitlab/Bitbucket Repositories. Join the discord: https://discord.gg/gMwThUMeme

ドキュメント・WikiGitBookの代替Notionの代替MIT
15,239 スター1,702 フォーク
AIによる要約
ひとことで言うと

GitHub、GitLab、BitBucketのリポジトリからAIを使ってWikiドキュメントとアーキテクチャ図を自動生成するオープンソースツールです。

こんな方におすすめ

・企業:大規模なコードベースのドキュメント整備が追いついていない開発チームに最適です。新規メンバーのオンボーディングやコードレビュー時の理解促進に、自動生成されたWikiとダイアグラムが役立ちます。 ・スタートアップ:少人数で素早く開発しながらドキュメント作成に時間を割けないチームに向いています。Docker Composeでワンコマンド起動でき、APIキーを設定するだけですぐに使い始められます。 ・個人事業主・フリーランス:OSSプロジェクトの理解やクライアントのコードベースを素早く把握したい開発者に最適です。リポジトリに対して自然言語で質問できるAsk機能も備えており、Ollama(ローカルAI)を使えば機密コードでも安心です。

有料サービスとの違い

GitBookやSwimmはドキュメントを手動で書く必要があり月額8〜29ドル以上かかりますが、DeepWiki-Openはコードから完全自動でWikiとダイアグラムを生成でき、セルフホストで無料です。RAG(検索拡張生成)ベースのQ&A機能も備えており、コードベースに対して自然言語で質問できる点が独自の強みです。

⚠️ お知らせ: AsyncReview への注力


重要な更新 DeepWiki-Open のメンテナンスは継続していますが、主要なアクティブ開発は AsyncReview に移行しています。このプロジェクトへのご支援ありがとうございます。今年の主要な取り組みとして、新しいリポジトリにぜひご参加ください。



DeepWiki-Open

DeepWiki バナー

DeepWiki は DeepWiki の独自の実装で、GitHub、GitLab、またはBitBucketのあらゆるリポジトリに対して、美しくインタラクティブなウィキを自動作成します!リポジトリ名を入力するだけで、DeepWikiが以下を行います:

  1. コード構造を分析
  2. 包括的なドキュメントを生成
  3. すべての仕組みを説明するビジュアルダイアグラムを作成
  4. すべてをナビゲートしやすいウィキに整理

"Buy Me A Coffee" 暗号通貨でチップ Twitter/X Discord

English | 简体中文 | 繁體中文 | 日本語 | Español | 한국어 | Tiếng Việt | Português Brasileiro | Français | Русский

✨ 機能

  • 即時ドキュメント生成: GitHub、GitLab、BitBucketのあらゆるリポジトリを数秒でウィキに変換
  • プライベートリポジトリ対応: パーソナルアクセストークンでプライベートリポジトリに安全にアクセス
  • スマート分析: AIを活用したコード構造と関係性の理解
  • 美しいダイアグラム: アーキテクチャとデータフローを視覚化する自動Mermaidダイアグラム
  • 簡単なナビゲーション: ウィキを探索するためのシンプルで直感的なインターフェース
  • 質問機能: RAGを活用したAIでリポジトリとチャットし、正確な回答を取得
  • DeepResearch: 複雑なトピックを徹底的に調査するマルチターンリサーチプロセス
  • 複数モデルプロバイダー: Google Gemini、OpenAI、OpenRouter、およびローカルOllamaモデルをサポート
  • 柔軟なエンベディング: 最適なパフォーマンスのためにOpenAI、Google AI、またはローカルOllamaエンベディングを選択可能

🚀 クイックスタート(超簡単!)

オプション1: Docker を使用

# リポジトリをクローン
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open

# APIキーを含む .env ファイルを作成
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# オプション: OpenAI の代わりに Google AI エンベディングを使用(Google モデル使用時に推奨)
echo "DEEPWIKI_EMBEDDER_TYPE=google" >> .env
# オプション: OpenRouter モデルを使用する場合は OpenRouter API キーを追加
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# オプション: ローカルでない場合は Ollama ホストを追加。デフォルトは http://localhost:11434
echo "OLLAMA_HOST=your_ollama_host" >> .env
# オプション: Azure OpenAI モデルを使用する場合は Azure の API キー、エンドポイント、バージョンを追加
echo "AZURE_OPENAI_API_KEY=your_azure_openai_api_key" >> .env
echo "AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint" >> .env
echo "AZURE_OPENAI_VERSION=your_azure_openai_version" >> .env
# Docker Compose で実行
docker-compose up

DeepWiki を Ollama と Docker で使用する詳細な手順は Ollama 手順 をご覧ください。

💡 これらのキーの取得方法:

  • Google API キーは Google AI Studio から取得
  • OpenAI API キーは OpenAI Platform から取得
  • Azure OpenAI の認証情報は Azure Portal から取得 - Azure OpenAI リソースを作成し、APIキー、エンドポイント、APIバージョンを取得

オプション2: 手動セットアップ(推奨)

ステップ1: API キーのセットアップ

プロジェクトルートに以下のキーを含む .env ファイルを作成します:

GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# オプション: Google AI エンベディングを使用(Google モデル使用時に推奨)
DEEPWIKI_EMBEDDER_TYPE=google
# オプション: OpenRouter モデルを使用する場合に追加
OPENROUTER_API_KEY=your_openrouter_api_key
# オプション: Azure OpenAI モデルを使用する場合に追加
AZURE_OPENAI_API_KEY=your_azure_openai_api_key
AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint
AZURE_OPENAI_VERSION=your_azure_openai_version
# オプション: ローカルでない場合は Ollama ホストを追加。デフォルト: http://localhost:11434
OLLAMA_HOST=your_ollama_host

ステップ2: バックエンドの起動

# Python 依存関係をインストール
python -m pip install poetry==2.0.1 && poetry install -C api

# API サーバーを起動
python -m api.main

ステップ3: フロントエンドの起動

# JavaScript 依存関係をインストール
npm install
# または
yarn install

# ウェブアプリを起動
npm run dev
# または
yarn dev

ステップ4: DeepWiki を使用!

  1. ブラウザで http://localhost:3000 を開く
  2. GitHub、GitLab、または Bitbucket リポジトリを入力(例: https://github.com/openai/codexhttps://github.com/microsoft/autogenhttps://gitlab.com/gitlab-org/gitlabhttps://bitbucket.org/redradish/atlassian_app_versions
  3. プライベートリポジトリの場合は「+ アクセストークンを追加」をクリックして GitHub または GitLab のパーソナルアクセストークンを入力
  4. 「ウィキを生成」をクリックして魔法を見届けましょう!

🔍 仕組み

DeepWiki は AI を使用して以下を行います:

  1. GitHub、GitLab、または Bitbucket リポジトリをクローンして分析(トークン認証によるプライベートリポジトリを含む)
  2. スマート検索のためのコードエンベディングを作成
  3. コンテキストを意識した AI でドキュメントを生成(Google Gemini、OpenAI、OpenRouter、Azure OpenAI、またはローカル Ollama モデルを使用)
  4. コードの関係性を説明するビジュアルダイアグラムを作成
  5. すべてを構造化されたウィキに整理
  6. 質問機能によるリポジトリとのインテリジェントなQ&Aを実現
  7. DeepResearch による詳細な調査機能を提供
graph TD
    A[ユーザーが GitHub/GitLab/Bitbucket リポジトリを入力] --> AA{プライベートリポジトリ?}
    AA -->|はい| AB[アクセストークンを追加]
    AA -->|いいえ| B[リポジトリをクローン]
    AB --> B
    B --> C[コード構造を分析]
    C --> D[コードエンベディングを作成]

    D --> M{モデルプロバイダーを選択}
    M -->|Google Gemini| E1[Gemini で生成]
    M -->|OpenAI| E2[OpenAI で生成]
    M -->|OpenRouter| E3[OpenRouter で生成]
    M -->|ローカル Ollama| E4[Ollama で生成]
    M -->|Azure| E5[Azure で生成]

    E1 --> E[ドキュメントを生成]
    E2 --> E
    E3 --> E
    E4 --> E
    E5 --> E

    D --> F[ビジュアルダイアグラムを作成]
    E --> G[ウィキとして整理]
    F --> G
    G --> H[インタラクティブ DeepWiki]

    classDef process stroke-width:2px;
    classDef data stroke-width:2px;
    classDef result stroke-width:2px;
    classDef decision stroke-width:2px;

    class A,D data;
    class AA,M decision;
    class B,C,E,F,G,AB,E1,E2,E3,E4,E5 process;
    class H result;

🛠️ プロジェクト構造

deepwiki/
├── api/                  # バックエンド API サーバー
│   ├── main.py           # API エントリーポイント
│   ├── api.py            # FastAPI 実装
│   ├── rag.py            # 検索拡張生成(RAG)
│   ├── data_pipeline.py  # データ処理ユーティリティ
│   ├── pyproject.toml     # Python 依存関係(Poetry)
│   └── poetry.lock        # ロックされた Python 依存関係バージョン
│
├── src/                  # フロントエンド Next.js アプリ
│   ├── app/              # Next.js app ディレクトリ
│   │   └── page.tsx      # メインアプリケーションページ
│   └── components/       # React コンポーネント
│       └── Mermaid.tsx   # Mermaid ダイアグラムレンダラー
│
├── public/               # 静的アセット
├── package.json          # JavaScript 依存関係
└── .env                  # 環境変数(要作成)

🤖 プロバイダーベースのモデル選択システム

DeepWiki は複数の LLM プロバイダーをサポートする柔軟なプロバイダーベースのモデル選択システムを実装しています:

サポートされるプロバイダーとモデル

  • Google: デフォルト gemini-2.5-flashgemini-2.5-flash-litegemini-2.5-pro なども対応
  • OpenAI: デフォルト gpt-5-nanogpt-54o なども対応
  • OpenRouter: Claude、Llama、Mistral など、統一 API 経由で複数のモデルにアクセス可能
  • Azure OpenAI: デフォルト gpt-4oo4-mini なども対応
  • Ollama: llama3 などのローカル実行オープンソースモデルをサポート

環境変数

各プロバイダーには対応する API キー環境変数が必要です:

# API キー
GOOGLE_API_KEY=your_google_api_key        # Google Gemini モデルに必須
OPENAI_API_KEY=your_openai_api_key        # OpenAI モデルに必須
OPENROUTER_API_KEY=your_openrouter_api_key # OpenRouter モデルに必須
AZURE_OPENAI_API_KEY=your_azure_openai_api_key  # Azure OpenAI モデルに必須
AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint  # Azure OpenAI モデルに必須
AZURE_OPENAI_VERSION=your_azure_openai_version  # Azure OpenAI モデルに必須

# OpenAI API ベース URL 設定
OPENAI_BASE_URL=https://custom-api-endpoint.com/v1  # オプション、カスタム OpenAI API エンドポイント用

# Ollama ホスト
OLLAMA_HOST=your_ollama_host # オプション、Ollama がローカルでない場合。デフォルト: http://localhost:11434

# 設定ディレクトリ
DEEPWIKI_CONFIG_DIR=/path/to/custom/config/dir  # オプション、カスタム設定ファイルの場所用

設定ファイル

DeepWiki はシステムの様々な側面を管理するために JSON 設定ファイルを使用します:

  1. generator.json: テキスト生成モデルの設定

    • 利用可能なモデルプロバイダー(Google、OpenAI、OpenRouter、Azure、Ollama)を定義
    • 各プロバイダーのデフォルトおよび利用可能なモデルを指定
    • temperature や top_p などのモデル固有のパラメータを含む
  2. embedder.json: エンベディングモデルとテキスト処理の設定

    • ベクトルストレージ用のエンベディングモデルを定義
    • RAG 用のレトリーバー設定を含む
    • ドキュメントチャンキング用のテキストスプリッター設定を指定
  3. repo.json: リポジトリ処理の設定

    • 特定のファイルやディレクトリを除外するファイルフィルターを含む
    • リポジトリサイズの制限と処理ルールを定義

デフォルトでは、これらのファイルは api/config/ ディレクトリにあります。DEEPWIKI_CONFIG_DIR 環境変数を使用してその場所をカスタマイズできます。

サービスプロバイダー向けカスタムモデル選択

カスタムモデル選択機能は、以下が必要なサービスプロバイダー向けに特別に設計されています:

  • 組織内のユーザーに複数の AI モデル選択肢を提供
  • コード変更なしで急速に進化する LLM 環境に迅速に適応
  • 定義済みリストにない特殊なまたはファインチューニングされたモデルをサポート

サービスプロバイダーは、フロントエンドインターフェースで定義済みオプションから選択するか、カスタムモデル識別子を入力してモデルの提供を実装できます。

エンタープライズプライベートチャネル向けベース URL 設定

OpenAI クライアントの base_url 設定は、主にプライベート API チャネルを持つエンタープライズユーザー向けに設計されています。この機能は:

  • プライベートまたはエンタープライズ固有の API エンドポイントへの接続を可能にする
  • 組織が自社でホストまたはカスタムデプロイした LLM サービスを使用可能にする
  • サードパーティの OpenAI API 互換サービスとの統合をサポート

近日公開: 今後のアップデートでは、ユーザーがリクエストで独自の API キーを提供するモードを DeepWiki がサポートする予定です。これにより、プライベートチャネルを持つエンタープライズ顧客が、DeepWiki デプロイメントと認証情報を共有せずに既存の API 契約を使用できるようになります。

🧩 OpenAI 互換エンベディングモデルの使用(例: Alibaba Qwen)

OpenAI API と互換性のあるエンベディングモデル(Alibaba Qwen など)を使用する場合は、以下の手順に従ってください:

  1. api/config/embedder.json の内容を api/config/embedder_openai_compatible.json の内容で置き換えます。
  2. プロジェクトルートの .env ファイルで関連する環境変数を設定します。例:
    OPENAI_API_KEY=your_api_key
    OPENAI_BASE_URL=your_openai_compatible_endpoint
    
  3. プログラムは自動的に embedder.json のプレースホルダーを環境変数の値で置き換えます。

これにより、コード変更なしで任意の OpenAI 互換エンベディングサービスにシームレスに切り替えることができます。

🧠 Google AI エンベディングの使用

DeepWiki は OpenAI エンベディングの代替として Google AI の最新エンベディングモデルをサポートしています。これにより、テキスト生成に Google Gemini モデルを既に使用している場合に、より良い統合が実現できます。

機能

  • 最新モデル: Google の text-embedding-004 モデルを使用
  • 同じ API キー: 既存の GOOGLE_API_KEY を使用(追加セットアップ不要)
  • より良い統合: Google Gemini テキスト生成モデルとの使用に最適化
  • タスク固有: セマンティック類似性、検索、分類タスクをサポート
  • バッチ処理: 複数テキストの効率的な処理

Google AI エンベディングの有効化方法

オプション1: 環境変数(推奨)

.env ファイルでエンベダータイプを設定します:

# 既存の Google API キー
GOOGLE_API_KEY=your_google_api_key

# Google AI エンベディングを有効化
DEEPWIKI_EMBEDDER_TYPE=google

オプション2: Docker 環境

docker run -p 8001:8001 -p 3000:3000 \
  -e GOOGLE_API_KEY=your_google_api_key \
  -e DEEPWIKI_EMBEDDER_TYPE=google \
  -v ~/.adalflow:/root/.adalflow \
  ghcr.io/asyncfuncai/deepwiki-open:latest

オプション3: Docker Compose

.env ファイルに追加:

GOOGLE_API_KEY=your_google_api_key
DEEPWIKI_EMBEDDER_TYPE=google

次に実行:

docker-compose up

利用可能なエンベダータイプ

タイプ 説明 必要な API キー 注意事項
openai OpenAI エンベディング(デフォルト) OPENAI_API_KEY text-embedding-3-small モデルを使用
google Google AI エンベディング GOOGLE_API_KEY text-embedding-004 モデルを使用
ollama ローカル Ollama エンベディング なし ローカル Ollama インストールが必要

Google AI エンベディングを使用する理由

  • 一貫性: テキスト生成に Google Gemini を使用している場合、Google エンベディングを使用することでセマンティックの一貫性が向上
  • パフォーマンス: Google の最新エンベディングモデルは検索タスクに優れたパフォーマンスを提供
  • コスト: OpenAI と比較して競争力のある価格設定
  • 追加セットアップ不要: テキスト生成モデルと同じ API キーを使用

エンベダーの切り替え

異なるエンベディングプロバイダー間の切り替えは簡単です:

# OpenAI エンベディングを使用(デフォルト)
export DEEPWIKI_EMBEDDER_TYPE=openai

# Google AI エンベディングを使用
export DEEPWIKI_EMBEDDER_TYPE=google

# ローカル Ollama エンベディングを使用
export DEEPWIKI_EMBEDDER_TYPE=ollama

注意: エンベダーを切り替える際、異なるモデルが異なるベクトル空間を生成するため、リポジトリのエンベディングを再生成する必要がある場合があります。

ログ

DeepWiki は診断出力に Python の組み込み logging モジュールを使用しています。環境変数で詳細度とログファイルの出力先を設定できます:

変数 説明 デフォルト
LOG_LEVEL ログレベル(DEBUG、INFO、WARNING、ERROR、CRITICAL) INFO
LOG_FILE_PATH ログファイルのパス。設定するとこのファイルにログが書き込まれます。 api/logs/application.log

デバッグログを有効にしてカスタムファイルにログを出力するには:

export LOG_LEVEL=DEBUG
export LOG_FILE_PATH=./debug.log
python -m api.main

または Docker Compose で:

LOG_LEVEL=DEBUG LOG_FILE_PATH=./debug.log docker-compose up

Docker Compose で実行する場合、コンテナの api/logs ディレクトリはホストの ./api/logs にバインドマウントされ(docker-compose.ymlvolumes セクションを参照)、再起動後もログファイルが永続化されます。

代わりに、.env ファイルにこれらの設定を保存することもできます:

LOG_LEVEL=DEBUG
LOG_FILE_PATH=./debug.log

次に単純に実行:

docker-compose up

ログパスのセキュリティに関する注意: 本番環境では、api/logs ディレクトリとカスタムログファイルパスが適切なファイルシステム権限とアクセス制御で保護されていることを確認してください。アプリケーションは LOG_FILE_PATH がプロジェクトの api/logs ディレクトリ内にあることを強制し、パストラバーサルや不正な書き込みを防止します。

🛠️ 高度なセットアップ

環境変数

変数 説明 必須 注意事項
GOOGLE_API_KEY AI 生成とエンベディング用の Google Gemini API キー いいえ Google Gemini モデルと Google AI エンベディングに必須
OPENAI_API_KEY エンベディングとモデル用の OpenAI API キー 条件付き OpenAI エンベディングまたはモデル使用時に必須
OPENROUTER_API_KEY 代替モデル用の OpenRouter API キー いいえ OpenRouter モデル使用時のみ必須
AWS_ACCESS_KEY_ID Bedrock 用の AWS アクセスキー ID いいえ インスタンス/ロールベース認証を使用しない場合に Bedrock に必須
AWS_SECRET_ACCESS_KEY Bedrock 用の AWS シークレットアクセスキー いいえ インスタンス/ロールベース認証を使用しない場合に Bedrock に必須
AWS_SESSION_TOKEN Bedrock(STS)用の AWS セッショントークン いいえ 一時認証情報使用時に必須
AWS_REGION Bedrock 用の AWS リージョン(デフォルト: us-east-1 いいえ Bedrock クライアントで使用
AWS_ROLE_ARN Bedrock で引き受ける AWS ロール ARN いいえ 設定した場合、Bedrock クライアントが STS AssumeRole を呼び出す
AZURE_OPENAI_API_KEY Azure OpenAI API キー いいえ Azure OpenAI モデル使用時のみ必須
AZURE_OPENAI_ENDPOINT Azure OpenAI エンドポイント いいえ Azure OpenAI モデル使用時のみ必須
AZURE_OPENAI_VERSION Azure OpenAI バージョン いいえ Azure OpenAI モデル使用時のみ必須
OLLAMA_HOST Ollama ホスト(デフォルト: http://localhost:11434) いいえ 外部 Ollama サーバー使用時のみ必須
DEEPWIKI_EMBEDDER_TYPE エンベダータイプ: openaigoogleollamabedrock(デフォルト: openai いいえ 使用するエンベディングプロバイダーを制御
PORT API サーバーのポート(デフォルト: 8001) いいえ API とフロントエンドを同じマシンでホストする場合、SERVER_BASE_URL のポートも変更してください
SERVER_BASE_URL API サーバーのベース URL(デフォルト: http://localhost:8001) いいえ
DEEPWIKI_AUTH_MODE 認可モードを有効にするには true または 1 に設定 いいえ デフォルトは false。有効にした場合、DEEPWIKI_AUTH_CODE が必要
DEEPWIKI_AUTH_CODE DEEPWIKI_AUTH_MODE 有効時のウィキ生成に必要なシークレットコード いいえ DEEPWIKI_AUTH_MODEtrue または 1 の場合のみ使用

API キーの要件:

  • DEEPWIKI_EMBEDDER_TYPE=openai(デフォルト)使用時: OPENAI_API_KEY が必須
  • DEEPWIKI_EMBEDDER_TYPE=google 使用時: GOOGLE_API_KEY が必須
  • DEEPWIKI_EMBEDDER_TYPE=ollama 使用時: API キー不要(ローカル処理)
  • DEEPWIKI_EMBEDDER_TYPE=bedrock 使用時: AWS 認証情報(またはロールベース認証情報)が必須

その他の API キーは、対応するプロバイダーのモデルを設定して使用する場合にのみ必要です。

認可モード

DeepWiki は認可モードで実行するように設定でき、ウィキ生成に有効な認可コードが必要になります。これは生成機能を使用できるユーザーを制御したい場合に便利です。フロントエンドからの開始を制限しキャッシュ削除を保護しますが、API エンドポイントが直接アクセスされた場合のバックエンド生成は完全には防止しません。

認可モードを有効にするには、以下の環境変数を設定します:

  • DEEPWIKI_AUTH_MODE: true または 1 に設定。有効にすると、フロントエンドに認可コードの入力フィールドが表示されます。
  • DEEPWIKI_AUTH_CODE: 希望するシークレットコードに設定。フロントエンドからの開始を制限しキャッシュ削除を保護しますが、API エンドポイントが直接アクセスされた場合のバックエンド生成は完全には防止しません。

DEEPWIKI_AUTH_MODE が設定されていないか、false(または true/1 以外の値)に設定されている場合、認可機能は無効になり、コードは必要ありません。

Docker セットアップ

Docker を使用して DeepWiki を実行できます:

コンテナの実行

# GitHub Container Registry からイメージをプル
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest

# 環境変数を指定してコンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
  -e GOOGLE_API_KEY=your_google_api_key \
  -e OPENAI_API_KEY=your_openai_api_key \
  -e OPENROUTER_API_KEY=your_openrouter_api_key \
  -e OLLAMA_HOST=your_ollama_host \
  -e AZURE_OPENAI_API_KEY=your_azure_openai_api_key \
  -e AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint \
  -e AZURE_OPENAI_VERSION=your_azure_openai_version \
  -v ~/.adalflow:/root/.adalflow \
  ghcr.io/asyncfuncai/deepwiki-open:latest

このコマンドはホストの ~/.adalflow をコンテナの /root/.adalflow にマウントします。このパスは以下の保存に使用されます:

  • クローンされたリポジトリ(~/.adalflow/repos/
  • エンベディングとインデックス(~/.adalflow/databases/
  • キャッシュされた生成済みウィキコンテンツ(~/.adalflow/wikicache/

これにより、コンテナが停止または削除されてもデータが永続化されます。

または、提供されている docker-compose.yml ファイルを使用します:

# まず .env ファイルに API キーを編集
docker-compose up

docker-compose.yml ファイルは、上記の docker run コマンドと同様に、データ永続化のために ~/.adalflow をマウントするよう事前設定されています。)

Docker で .env ファイルを使用

コンテナに .env ファイルをマウントすることもできます:

# API キーを含む .env ファイルを作成
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
echo "AZURE_OPENAI_API_KEY=your_azure_openai_api_key" >> .env
echo "AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint" >> .env
echo "AZURE_OPENAI_VERSION=your_azure_openai_version" >> .env
echo "OLLAMA_HOST=your_ollama_host" >> .env

# .env ファイルをマウントしてコンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
  -v $(pwd)/.env:/app/.env \
  -v ~/.adalflow:/root/.adalflow \
  ghcr.io/asyncfuncai/deepwiki-open:latest

このコマンドもホストの ~/.adalflow をコンテナの /root/.adalflow にマウントします。このパスは以下の保存に使用されます:

  • クローンされたリポジトリ(~/.adalflow/repos/
  • エンベディングとインデックス(~/.adalflow/databases/
  • キャッシュされた生成済みウィキコンテンツ(~/.adalflow/wikicache/

これにより、コンテナが停止または削除されてもデータが永続化されます。

Docker イメージをローカルでビルド

Docker イメージをローカルでビルドする場合:

# リポジトリをクローン
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open

# Docker イメージをビルド
docker build -t deepwiki-open .

# コンテナを実行
docker run -p 8001:8001 -p 3000:3000 \
  -e GOOGLE_API_KEY=your_google_api_key \
  -e OPENAI_API_KEY=your_openai_api_key \
  -e OPENROUTER_API_KEY=your_openrouter_api_key \
  -e AZURE_OPENAI_API_KEY=your_azure_openai_api_key \
  -e AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint \
  -e AZURE_OPENAI_VERSION=your_azure_openai_version \
  -e OLLAMA_HOST=your_ollama_host \
  deepwiki-open

Docker で自己署名証明書を使用

自己署名証明書を使用する環境の場合、Docker ビルドに含めることができます:

  1. 証明書用のディレクトリを作成(デフォルトはプロジェクトルートの certs
  2. .crt または .pem 証明書ファイルをこのディレクトリにコピー
  3. Docker イメージをビルド:
# デフォルトの証明書ディレクトリ(certs)でビルド
docker build .

# またはカスタム証明書ディレクトリでビルド
docker build --build-arg CUSTOM_CERT_DIR=my-custom-certs .

API サーバーの詳細

API サーバーは以下を提供します:

  • リポジトリのクローンとインデックス作成
  • RAG(検索拡張生成)
  • ストリーミングチャット補完

詳細は API README をご覧ください。

🔌 OpenRouter 統合

DeepWiki は OpenRouter をモデルプロバイダーとしてサポートし、単一の API で数百の AI モデルにアクセスできます:

  • 複数のモデル選択肢: OpenAI、Anthropic、Google、Meta、Mistral などのモデルにアクセス
  • 簡単な設定: OpenRouter API キーを追加して使用したいモデルを選択するだけ
  • コスト効率: 予算とパフォーマンスのニーズに合ったモデルを選択
  • 簡単な切り替え: コードを変更せずに異なるモデル間を切り替え

DeepWiki で OpenRouter を使用する方法

  1. API キーの取得: OpenRouter でサインアップして API キーを取得
  2. 環境に追加: .env ファイルに OPENROUTER_API_KEY=your_key を追加
  3. UI で有効化: ホームページで「Use OpenRouter API」オプションをチェック
  4. モデルを選択: GPT-4o、Claude 3.5 Sonnet、Gemini 2.0 などの人気モデルから選択

OpenRouter は以下の場合に特に便利です:

  • 複数のサービスにサインアップせずに異なるモデルを試したい場合
  • お住まいの地域で制限されている可能性のあるモデルにアクセスしたい場合
  • 異なるモデルプロバイダー間でパフォーマンスを比較したい場合
  • ニーズに基づいてコストとパフォーマンスを最適化したい場合

🤖 質問機能と DeepResearch 機能

質問機能

質問機能を使用すると、検索拡張生成(RAG)を使ってリポジトリとチャットできます:

  • コンテキスト対応の回答: リポジトリ内の実際のコードに基づいた正確な回答を取得
  • RAG ベース: システムが関連するコードスニペットを取得し、根拠のある回答を提供
  • リアルタイムストリーミング: よりインタラクティブな体験のために、回答が生成される様子をリアルタイムで確認
  • 会話履歴: システムが質問間のコンテキストを維持し、より一貫性のあるやり取りを実現

DeepResearch 機能

DeepResearch はマルチターンリサーチプロセスでリポジトリ分析を次のレベルに引き上げます:

  • 詳細な調査: 複数のリサーチ反復を通じて複雑なトピックを徹底的に探索
  • 構造化されたプロセス: アップデートと包括的な結論を含む明確なリサーチプランに従う
  • 自動継続: AI が結論に達するまで自動的にリサーチを継続(最大5回の反復)
  • リサーチステージ:
    1. リサーチプラン: アプローチと初期の発見を概説
    2. リサーチアップデート: 前回の反復に基づいて新しい洞察を構築
    3. 最終結論: すべての反復に基づいた包括的な回答を提供

DeepResearch を使用するには、質問を送信する前に質問インターフェースで「Deep Research」スイッチを切り替えるだけです。

スクリーンショット

DeepWiki メインインターフェース DeepWiki のメインインターフェース

プライベートリポジトリ対応 パーソナルアクセストークンでプライベートリポジトリにアクセス

DeepResearch 機能 DeepResearch は複雑なトピックに対してマルチターンの調査を実施

デモ動画

DeepWiki デモ動画

DeepWiki の動作をご覧ください!

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

API キーの問題

  • 「Missing environment variables」: .env ファイルがプロジェクトルートにあり、必要な API キーが含まれていることを確認
  • 「API key not valid」: キー全体が正しくコピーされ、余分なスペースがないことを確認
  • 「OpenRouter API error」: OpenRouter API キーが有効で、十分なクレジットがあることを確認
  • 「Azure OpenAI API error」: Azure OpenAI の認証情報(API キー、エンドポイント、バージョン)が正しく、サービスが適切にデプロイされていることを確認

接続の問題

  • 「Cannot connect to API server」: API サーバーがポート 8001 で実行されていることを確認
  • 「CORS error」: API はすべてのオリジンを許可するよう設定されていますが、問題がある場合はフロントエンドとバックエンドの両方を同じマシンで実行してみてください

生成の問題

  • 「Error generating wiki」: 非常に大きなリポジトリの場合は、まず小さなリポジトリで試してみてください
  • 「Invalid repository format」: 有効な GitHub、GitLab、または Bitbucket の URL 形式を使用していることを確認
  • 「Could not fetch repository structure」: プライベートリポジトリの場合、適切な権限を持つ有効なパーソナルアクセストークンが入力されていることを確認
  • 「Diagram rendering error」: アプリが壊れたダイアグラムを自動的に修正しようとします

一般的な解決策

  1. 両方のサーバーを再起動: 単純な再起動でほとんどの問題が解決することがあります
  2. コンソールログの確認: ブラウザの開発者ツールを開いて JavaScript エラーを確認
  3. API ログの確認: API が実行されているターミナルで Python エラーを確認

🤝 コントリビュート

コントリビュートを歓迎します!以下のことが可能です:

  • バグや機能リクエストのイシューを開く
  • コードを改善するプルリクエストを送信
  • フィードバックやアイデアを共有

📄 ライセンス

このプロジェクトは MIT ライセンスの下で公開されています - 詳細は LICENSE ファイルをご覧ください。

⭐ スター履歴

Star History Chart