deepwiki-open

GitHub
15.6k 1.8k 中等 1 次阅读 今天MITAgent语言模型开发框架图像
AI 解读 由 AI 自动生成,仅供参考

DeepWiki-Open 是一款专为 GitHub、GitLab 和 Bitbucket 代码仓库打造的开源 AI 文档生成器。它能自动分析任意仓库的代码结构,在几秒钟内生成美观、交互性强的技术维基,彻底解决开源项目或私有代码库中常见的文档缺失、更新滞后以及新人上手难的问题。

这款工具非常适合开发者、技术团队负责人以及开源贡献者使用。无论是想要快速梳理遗留代码逻辑,还是希望为新项目自动生成标准化文档,DeepWiki-Open 都能提供极大便利。其核心亮点在于强大的智能分析能力:不仅能生成详尽的文字说明,还能自动绘制 Mermaid 架构图和数据流图,让复杂的代码关系一目了然。此外,它集成了基于 RAG(检索增强生成)技术的对话功能,允许用户直接“与代码库聊天”,通过多轮深度研究获取精准答案。

在技术灵活性方面,DeepWiki-Open 支持多种主流大模型提供商(如 Google Gemini、OpenAI、Azure OpenAI)及本地部署的 Ollama 模型,并允许用户自由选择嵌入模型以优化性能与成本。它还特别支持通过个人访问令牌安全地读取私有仓库,确保企业级数据的安全。只需简单配置 API 密钥或通过 Docker 一键启动,即可将枯燥的代码仓库转化为易于导航的知识库。

使用场景

某初创团队刚接手一个由前离职员工留下的复杂 GitHub 私有仓库,需要在三天内理清架构并启动新功能开发,但面对数万行缺乏文档的代码束手无策。

没有 deepwiki-open 时

  • 开发人员需逐行阅读源码才能拼凑出模块间的调用关系,耗时数天且极易遗漏关键逻辑。
  • 由于缺乏可视化图表,新人难以理解数据流向和系统架构,导致在代码评审中频繁提出基础性问题。
  • 遇到特定功能实现细节时,只能靠全局搜索关键词盲目猜测,无法获得上下文准确的解释。
  • 团队内部知识传递依赖口口相传或零散的笔记,一旦核心人员缺席,项目进度立即停滞。
  • 编写正式文档被视为“额外负担”,大家宁愿花时间在调试上也不愿整理说明,导致技术债务堆积。

使用 deepwiki-open 后

  • 输入仓库地址并配置 Token 后,deepwiki-open 自动分析代码结构,秒级生成包含完整模块说明的交互式维基。
  • 工具自动绘制 Mermaid 架构图和数据流图,让团队成员一眼看清系统全貌,新人上手时间从一周缩短至半天。
  • 利用 RAG 驱动的"Ask Feature",开发者直接用自然语言提问(如“用户认证流程在哪?”),即可获取基于代码上下文的精准答案。
  • 生成的维基支持多轮深度研究(DeepResearch),能自动梳理复杂业务逻辑,形成可传承的结构化知识库。
  • 支持本地 Ollama 模型部署,确保私有代码数据不出内网,既满足了安全合规要求,又实现了文档的持续自动化更新。

deepwiki-open 将原本需要数周的人工逆向工程工作压缩为分钟级的自动化流程,让团队能立即从“读代码”转向“写代码”。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需
  • 若使用本地 Ollama 模型,需根据所选模型大小配置相应 GPU 显存
  • 若使用云端 API(Google/OpenAI/Azure)则无 GPU 要求
内存

未说明(取决于是否运行本地大模型及代码库大小)

依赖
notes1. 该项目采用前后端分离架构:后端使用 Python (Poetry) 和 FastAPI,前端使用 Node.js (npm/yarn) 和 Next.js。 2. 主要依赖外部 API 服务(Google Gemini, OpenAI, Azure OpenAI, OpenRouter),需配置对应的 API Key。 3. 支持完全本地化部署,需自行安装并运行 Ollama 服务来提供本地大模型和 Embedding 能力。 4. 推荐使用 Docker Compose 一键部署,或手动分别启动后端 (api) 和前端 (src) 服务。 5. 需要 Git 环境以克隆目标仓库进行分析。
python3.8+ (通过 Poetry 管理,具体版本未在文中明确锁定,但 Poetry 2.0.1 通常支持 Python 3.8+)
Poetry==2.0.1
FastAPI
Next.js
React
Ollama (可选)
deepwiki-open hero image

快速开始

⚠️ 公告:重心轉移至 AsyncReview


重要更新 DeepWiki-Open 的維護仍在進行中,但主要的積極開發工作將遷移到 AsyncReview。感謝大家對本項目的支持;請加入新的倉庫,共同參與今年的主要開發工作。



DeepWiki-Open

DeepWiki 標誌

DeepWiki 是我對 DeepWiki 的一次實現嘗試,能夠自動為任何 GitHub、GitLab 或 BitBucket 倉庫創建美觀且互動性強的維基頁面!只需輸入一個倉庫名稱,DeepWiki 就會:

  1. 分析代碼結構
  2. 生成全面的文檔
  3. 組織視覺化圖表來解釋系統運作方式
  4. 將所有內容整理成易於導航的維基頁面

加密貨幣打賞 Twitter/X Discord

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

✨ 特色功能

  • 即時文檔生成:幾秒內即可將任何 GitHub、GitLab 或 BitBucket 倉庫轉換為維基頁面
  • 私有倉庫支援:通過個人存取令牌安全地訪問私有倉庫
  • 智能分析:利用 AI 技術理解代碼結構與相互關係
  • 精美圖表:自動生成 Mermaid 圖表,直觀展示架構與資料流
  • 簡單導航:設計簡潔直觀的介面,方便探索維基內容
  • Ask Feature:使用 RAG 驅動的 AI 與你的倉庫對話,獲取準確回覆
  • DeepResearch:多輪研究流程,深入探討複雜主題
  • 多模型提供商支援:兼容 Google Gemini、OpenAI、OpenRouter 以及本地 Ollama 模型
  • 靈活嵌入技術:可選擇 OpenAI、Google AI 或本地 Ollama 嵌入,以獲得最佳性能

🚀 快速開始(超簡單!)

方法一:使用 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
# 選擇:若使用 Google 模型,建議採用 Google AI 嵌入
echo "DEEPWIKI_EMBEDDER_TYPE=google" >> .env
# 選擇:若要使用 OpenRouter 模型,添加其 API 密鑰
echo "OPENROUTER_API_KEY=your_openrouter_api_key" >> .env
# 選擇:若 Ollama 伺服器不在本地,需指定地址。預設為 http://localhost:11434
echo "OLLAMA_HOST=your_ollama_host" >> .env
# 選擇:若要使用 Azure OpenAI 模型,添加其 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

有關如何結合 Ollama 和 Docker 使用 DeepWiki 的詳細說明,請參閱 Ollama 使用說明

💡 這些密鑰從哪裡獲取?

  • Google API 密鑰可在 Google AI Studio 獲得
  • OpenAI API 密鑰可在 OpenAI 平台 獲得
  • Azure OpenAI 的認證資訊則可從 Azure 门户取得——建立 Azure OpenAI 資源後,即可獲得 API 密鑰、端點和 API 版本

方法二:手動安裝(推薦)

Schritt 1: Setzen Sie Ihre API-Schlüssel ein

Erstellen Sie eine .env-Datei im Stammverzeichnis des Projekts mit folgenden Schlüsseln:

GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# Optional: Verwenden Sie Google AI Embeddings (empfohlen, wenn Sie Google-Modelle verwenden)
DEEPWIKI_EMBEDDER_TYPE=google
# Optional: Fügen Sie dies hinzu, wenn Sie OpenRouter-Modelle verwenden möchten
OPENROUTER_API_KEY=your_openrouter_api_key
# Optional: Fügen Sie dies hinzu, wenn Sie Azure OpenAI-Modelle verwenden möchten
AZURE_OPENAI_API_KEY=your_azure_openai_api_key
AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint
AZURE_OPENAI_VERSION=your_azure_openai_version
# Optional: Fügen Sie den Ollama-Host hinzu, falls er nicht lokal ist. Standard: http://localhost:11434
OLLAMA_HOST=your_ollama_host

Schritt 2: Starten Sie das Backend

# Installieren Sie die Python-Abhängigkeiten
python -m pip install poetry==2.0.1 && poetry install -C api

# Starten Sie den API-Server
python -m api.main

Schritt 3: Starten Sie das Frontend

# Installieren Sie die JavaScript-Abhängigkeiten
npm install
# oder
yarn install

# Starten Sie die Webanwendung
npm run dev
# oder
yarn dev

Schritt 4: Nutzen Sie DeepWiki!

  1. Öffnen Sie http://localhost:3000 in Ihrem Browser
  2. Geben Sie einen GitHub-, GitLab- oder Bitbucket-Repository-Link ein (z. B. https://github.com/openai/codex, https://github.com/microsoft/autogen, https://gitlab.com/gitlab-org/gitlab oder https://bitbucket.org/redradish/atlassian_app_versions)
  3. Für private Repositories klicken Sie auf "+ Add access tokens" und geben Sie Ihren persönlichen GitHub- oder GitLab-Zugriffstoken ein
  4. Klicken Sie auf "Generate Wiki" und beobachten Sie, wie die Magie geschieht!

🔍 工作原理

DeepWiki 使用 AI 完成以下任务:

  1. 克隆并分析 GitHub、GitLab 或 Bitbucket 仓库(包括使用令牌认证的私有仓库)
  2. 为代码创建嵌入向量,以便进行智能检索
  3. 利用上下文感知的 AI 生成文档(支持 Google Gemini、OpenAI、OpenRouter、Azure OpenAI 或本地 Ollama 模型)
  4. 创建可视化图表以解释代码之间的关系
  5. 将所有内容组织成结构化的维基
  6. 通过“Ask”功能实现与仓库的智能问答
  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 -->|Local 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            # 检索增强生成模块
│   ├── data_pipeline.py  # 数据处理工具
│   ├── pyproject.toml     # Python 依赖管理(Poetry)
│   └── poetry.lock        # 锁定的 Python 依赖版本
│
├── src/                  # 前端 Next.js 应用
│   ├── app/              # Next.js 应用目录
│   │   └── page.tsx      # 主应用页面
│   └── components/       # React 组件
│       └── Mermaid.tsx   # Mermaid 图表渲染器
│
├── public/               # 静态资源
├── package.json          # JavaScript 依赖
└── .env                  # 环境变量文件(需创建)

🤖 基于提供商的模型选择系统

DeepWiki 现已实现灵活的基于提供商的模型选择系统,支持多种 LLM 提供商:

支持的提供商及模型

  • Google: 默认 gemini-2.5-flash,也支持 gemini-2.5-flash-litegemini-2.5-pro 等。
  • OpenAI: 默认 gpt-5-nano,也支持 gpt-54o 等。
  • OpenRouter: 通过统一 API 访问多种模型,包括 Claude、Llama、Mistral 等。
  • Azure OpenAI: 默认 gpt-4o,也支持 o4-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)
    • 指定每个提供商的默认和可用模型
    • 包含温度、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 的服务集成

即将推出:在未来的更新中,DeepWiki 将支持一种模式,即用户需要在请求中提供自己的 API 密钥。这将允许拥有私有通道的企业客户在不与 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 现在支持 Google AI 的最新嵌入模型,作为 OpenAI 嵌入的替代方案。这为您在已经使用 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.yml 中的 volumes 部分),从而确保日志文件在重启后仍然存在。

您也可以将这些设置保存到 .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 的 AWS 会话令牌(STS) 使用临时凭证时需要
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 设置为 true1 以启用授权模式。 默认为 false。如果启用,需要 DEEPWIKI_AUTH_CODE
DEEPWIKI_AUTH_CODE DEEPWIKI_AUTH_MODE 启用时,生成维基所需的密钥。 仅在 DEEPWIKI_AUTH_MODEtrue1 时使用。

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:将其设置为 true1。启用后,前端将显示一个输入框用于输入授权码。
  • 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 文件已预先配置好挂载 ~/.adalflow 以实现数据持久化,与上述 docker run 命令类似。)

使用 .env 文件与 Docker

您也可以将 .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 密钥并选择您想要使用的模型
  • 成本效益:根据您的预算和性能需求选择合适的模型
  • 轻松切换:无需更改代码即可在不同模型之间切换

如何将 OpenRouter 与 DeepWiki 结合使用

  1. 获取 API 密钥:在 OpenRouter 上注册并获取您的 API 密钥
  2. 添加到环境变量:将 OPENROUTER_API_KEY=your_key 添加到您的 .env 文件中
  3. 在 UI 中启用:在主页上勾选“使用 OpenRouter API”选项
  4. 选择模型:从 GPT-4o、Claude 3.5 Sonnet、Gemini 2.0 等热门模型中进行选择

OpenRouter 特别适用于以下情况:

  • 无需注册多个服务即可尝试不同模型
  • 访问可能在您所在地区受限的模型
  • 比较不同模型提供商之间的性能
  • 根据您的需求优化成本与性能的平衡

🤖 Ask 和 DeepResearch 功能

Ask 功能

Ask 功能允许您使用检索增强生成(RAG)与您的仓库进行对话:

  • 上下文感知的回答:根据仓库中的实际代码获得准确的答案
  • RAG 驱动:系统会检索相关的代码片段以提供有依据的回答
  • 实时流式传输:您可以实时查看生成的回答,获得更互动的体验
  • 对话历史:系统会保持问题之间的上下文,以便进行更连贯的交互

DeepResearch 功能

DeepResearch 功能通过多轮研究过程将仓库分析提升到一个新的水平:

  • 深入调查:通过多次研究迭代彻底探索复杂主题
  • 结构化流程:遵循清晰的研究计划,提供更新和全面的结论
  • 自动继续:AI 会自动继续研究,直到得出结论为止(最多 5 次迭代)
  • 研究阶段
    1. 研究计划:概述方法和初步发现
    2. 研究更新:基于之前的迭代提供新的见解
    3. 最终结论:根据所有迭代提供全面的答案

要使用 DeepResearch,只需在提交问题之前,在 Ask 界面中切换“Deep Research”开关即可。

截图

DeepWiki 主界面 DeepWiki 的主界面

私有仓库支持 使用个人访问令牌访问私有仓库

DeepResearch 功能 DeepResearch 对于复杂主题进行多轮调查

演示视频

DeepWiki 演示视频

观看 DeepWiki 的实际操作!

❓ 故障排除

API 密钥问题

  • “缺少环境变量”:请确保您的 .env 文件位于项目根目录,并包含所需的 API 密钥
  • “API 密钥无效”:请检查您是否正确复制了完整的密钥,且没有多余的空格
  • “OpenRouter API 错误”:请验证您的 OpenRouter API 密钥是否有效,且有足够的额度
  • “Azure OpenAI API 错误”:请确认您的 Azure OpenAI 凭证(API 密钥、端点和版本)是否正确,并且服务已正确部署

连接问题

  • “无法连接到 API 服务器”:请确保 API 服务器正在 8001 端口上运行
  • “CORS 错误”:API 已配置为允许所有来源,但如果您遇到问题,可以尝试在同一台机器上同时运行前端和后端

生成问题

  • “生成维基时出错”:对于非常大的仓库,建议先尝试较小的仓库
  • “仓库格式无效”:请确保您使用的是有效的 GitHub、GitLab 或 Bitbucket URL 格式
  • “无法获取仓库结构”:对于私有仓库,确保您输入了具有适当权限的有效个人访问令牌
  • “图表渲染错误”:应用程序会自动尝试修复损坏的图表

常见解决方案

  1. 重启两个服务器:有时简单的重启就能解决大多数问题
  2. 检查控制台日志:打开浏览器开发者工具查看是否有 JavaScript 错误
  3. 检查 API 日志:查看运行 API 的终端,寻找 Python 错误

🤝 贡献

欢迎贡献!您可以:

  • 打开问题以报告 bug 或提出功能请求
  • 提交拉取请求以改进代码
  • 分享您的反馈和想法

📄 许可证

本项目采用 MIT 许可证授权——详情请参阅 LICENSE 文件。

⭐ 星标历史

星标历史图

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

155.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|4天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|5天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架