前言
现在 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 的页面了(不知道为什么颜色搞得这么黄,看得难受)。
仓库分析
DeepWiki-Open 既支持 GitHub、GitLab 等在线仓库(包括使用 token 访问私有仓库),也支持本地路径。如果在 Docker 环境下用本地路径,记得先在 docker-compose.yml
里做好挂载。
在上方输入地址或路径后,点击按钮。
配置好相关选项后,点击 生成Wiki
即可。如果页面出现报错,建议查看 api/logs/application.log
,从而定位和解决问题。
最后耐心等待,就可以得到你的项目 Wiki 了!(一次会烧掉多少token就不好说了...)右下角可以继续问模型关于这个项目的问题。
结语
目前我也刚开始使用,文档的具体质量还有待进一步体验。但对于团队来说,有这样一份自动生成的文档,对新成员上手项目应该还是挺有帮助的。