前言

现在 AI 编程工具已经很常见了,像 Cursor、Trae、Copilot、Kiro 这些我都陆续试过,体验都还不错。不过能帮忙解读整个代码仓库的,目前来看 DeepWiki 算是比较独特的。刚看到这个功能的时候觉得挺实用。

不过 DeepWiki 只能解析开源项目,私有项目就需要付费或者自己找解决办法了。我最开始试的是国人开发的 OpenDeepWiki,但部署起来遇到了不少问题,最后还是放弃了。后来又找到了 DeepWiki-Open,经过一番折腾终于跑起来了。现在网上相关资料比较少,所以写一下自己的部署流程,供大家参考。

准备文件

这部分应该是最麻烦的,而且要自己摸索。

官方 Readme 提供了两种部署方式:可以用 Docker 一键启动整个服务,也可以分别在本地启动前后端。我这里选择了 Docker 部署。不管用哪种方式,第一步都是先把仓库拉下来。

git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open

接下来,需要在文件夹下创建一个 .env 配置文件,主要填写你使用的大模型和 embedding 模型的 API 地址和 key。我这里用的是 AzureOpenAI 和其他家的 embedding 模型。注意,一定要配置 embedding 模型的地址,而且要填在 OpenAI 的配置项里,否则后面会报错。

# 我这里用的 Azure,请根据官方文档选择成自己用的服务商
AZURE_OPENAI_API_KEY=tomorin
AZURE_OPENAI_ENDPOINT=https://anon.openai.azure.com/
AZURE_OPENAI_VERSION=2025-01-01-preview

# 这里主要配置 embedding 模型。如果你的大模型和 embedding 模型都用的是同一家支持 OpenAI 兼容 API 的服务商,只需要填这一部分,就可以同时用他们的大模型和 embedding 服务了。
OPENAI_API_KEY=tomorin
OPENAI_BASE_URL=https://api.anon.com/v1

保存成 .env 文件。

为了速度,我们可以修改一下 Dockerfile。
npm 我们可以使用镜像:

RUN npm ci --legacy-peer-deps
# 改成
RUN npm ci --legacy-peer-deps --registry=https://registry.npmmirror.com

apt 也可以用镜像(大部分能走):

# Install Node.js and npm
# 下面部分修改成
RUN echo "deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware\n\
deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free non-free-firmware\n\
deb http://mirrors.aliyun.com/debian-security trixie-security main contrib non-free non-free-firmware\n\
deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free non-free-firmware\n\
deb http://mirrors.aliyun.com/debian/ trixie main contrib non-free non-free-firmware\n\
deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free non-free-firmware" \
> /etc/apt/sources.list && \
    apt-get clean && \
    apt-get update && \
    apt-get install -y \
        curl \
        gnupg \
        git \
        ca-certificates && \
    mkdir -p /etc/apt/keyrings && \
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
    apt-get update && \
    apt-get install -y nodejs && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

然后保存。

接下来,需要进入 api/config 文件夹,配置你要用的 embedding 模型。里面有一个官方提供的模板文件 embedder.openai_compatible.json.bak,可以把它重命名为 embedder.json,替换掉原有的配置。通常只需要修改其中的 embedder 部分即可:

{
  "embedder": {
    "client_class": "OpenAIClient",
    "initialize_kwargs": {
      "api_key": "${OPENAI_API_KEY}",
      "base_url": "${OPENAI_BASE_URL}"
    },
    "batch_size": 10,
    "model_kwargs": {
      "model": "bge-m3",
      "dimensions": 1024,
      "encoding_format": "float"
    }
  }
}

model 改成你自己的 embedding 模型 ID。注意,dimensions 是向量的维度,有些 API 不支持这个参数,比如我用的服务就不需要,所以直接删掉了这行。具体怎么配,建议根据你的实际接口来调整。如果不确定,可以启动后查看 api/logs/application.log 里的报错信息,方便排查问题。

然后是一个可选,但我建议做的操作,修改 docker-compose.yml 文件,在 volumes 下增加一个:

- ./api/config:/app/api/config

否则你后续对该文件夹下 json 文件的修改都没有办法同步到容器里,非常坑!

至此文件准备工作完成。

启动服务

然后用 docker compose up 启动容器(最后确认一切正常后,后续可以用 docker compose up -d 让服务在后台运行)。第一次启动会在本地构建镜像,注意确保你的网络可以顺利拉取到 Docker 仓库里的官方镜像。

镜像构建可能需要一些时间。服务启动完成后,直接访问 http://服务器IP:3000,就可以看到 DeepWiki-Open 的页面了(不知道为什么颜色搞得这么黄,看得难受)。

DeepWeek-Open 首页

仓库分析

DeepWiki-Open 既支持 GitHub、GitLab 等在线仓库(包括使用 token 访问私有仓库),也支持本地路径。如果在 Docker 环境下用本地路径,记得先在 docker-compose.yml 里做好挂载。

在上方输入地址或路径后,点击按钮。

新增仓库

配置好相关选项后,点击 生成Wiki 即可。如果页面出现报错,建议查看 api/logs/application.log,从而定位和解决问题。

最后耐心等待,就可以得到你的项目 Wiki 了!(一次会烧掉多少token就不好说了...)右下角可以继续问模型关于这个项目的问题。

OpenCC.NET Wiki

结语

目前我也刚开始使用,文档的具体质量还有待进一步体验。但对于团队来说,有这样一份自动生成的文档,对新成员上手项目应该还是挺有帮助的。

如果觉得我的文章对你有用,请随意赞赏