安爸-超级家庭

火爆全网的DeepWiki开源版来了!

安爸 发布于

项目介绍

OpenDeepWiki 是参考DeepWiki 作为灵感,基于 .NET 9 和 Semantic Kernel 开发的开源项目。它旨在帮助开发者更好地理解和使用代码库,提供代码分析、文档生成、知识图谱等功能。

  • • 分析代码结构
  • • 理解仓库核心概念
  • • 生成代码文档
  • • 自动生成代码README.md

MCP支持

OpenDeepWiki支持MCP(ModelContextProtocol)

  • • 支持单仓库提供MCPServer,针对单个仓库进行分析

使用方式:下面是cursor的使用方式:

{   "mcpServers": {     "OpenDeepWiki":{        "url": "http://您的OpenDeepWiki服务IP:端口/sse?owner=AIDotNet&name=OpenDeepWiki"     }   } }

  • • owner: 是仓库组织或拥有者的名称
  • • name: 是仓库的名称

添加好仓库以后进行测试提问(请注意,再次之前这个仓库需要先保证已经处理完成):OpenDeepWiki是什么?
效果如图:

通过这种方式,您可以将OpenDeepWiki作为MCPServer使用,提供给其他的AI模型进行调用,方便对一个开源项目进行分析和理解。

功能

  • 快速生成: 只需要几分钟即可将所有的Github,Gitlab,Gitee,Gitea等代码仓库转换为知识库
  • 多语言支持: 支持所有编程语言的代码分析和文档生成
  • 代码结构: 自动生存Mermaid图表理解代码结构
  • 自定义模型: 支持自定义模型和自定义API,可以根据需要进行扩展
  • AI智能分析: 基于AI的代码分析和代码关系的理解
  • 轻松SEO: 生成SEO友好的文档和知识库,使用Next.js构建,让搜索引擎更容易索引
  • 对话式交互: 支持与AI进行对话式交互,获取代码的详细信息和使用方法,深入理解代码

🚀 快速开始

  1. 1. 克隆代码库

git clone https://github.com/AIDotNet/OpenDeepWiki.git cd OpenDeepWiki

  1. 2. 打开docker-compose.yml文件,修改以下环境变量:

OpenAI:

services:   koalawiki:     environment:       -KOALAWIKI_REPOSITORIES=/repositories       -TASK_MAX_SIZE_PER_USER=5# 每个用户AI处理文档生成的最大并行数量       -CHAT_MODEL=DeepSeek-V3# 必须要支持function的模型       -ANALYSIS_MODEL=# 分析模型,用于生成仓库目录结构       -CHAT_API_KEY=# 您的APIkey       -LANGUAGE=# 设置生成语言默认为"中文"       -ENDPOINT=https://api.token-ai.cn/v1       -DB_TYPE=sqlite       -MODEL_PROVIDER=OpenAI# 模型提供商,默认为OpenAI 支持AzureOpenAI和Anthropic       -DB_CONNECTION_STRING=DataSource=/data/KoalaWiki.db       -EnableSmartFilter=true # 是否启用智能过滤,这可能影响AI得到仓库的文件目录

AzureOpenAI

services:   koalawiki:     environment:       -KOALAWIKI_REPOSITORIES=/repositories       -TASK_MAX_SIZE_PER_USER=5# 每个用户AI处理文档生成的最大并行数量       -CHAT_MODEL=DeepSeek-V3# 必须要支持function的模型       -ANALYSIS_MODEL=# 分析模型,用于生成仓库目录结构       -CHAT_API_KEY=# 您的APIkey       -LANGUAGE=# 设置生成语言默认为"中文"       -ENDPOINT=https://您的Azure地址.openai.azure.com/       -DB_TYPE=sqlite       -MODEL_PROVIDER=AzureOpenAI# 模型提供商,默认为OpenAI 支持AzureOpenAI和Anthropic       -DB_CONNECTION_STRING=DataSource=/data/KoalaWiki.db       -EnableSmartFilter=true # 是否启用智能过滤,这可能影响AI得到仓库的文件目录

Anthropic

services:   koalawiki:     environment:       -KOALAWIKI_REPOSITORIES=/repositories       -TASK_MAX_SIZE_PER_USER=5# 每个用户AI处理文档生成的最大并行数量       -CHAT_MODEL=DeepSeek-V3# 必须要支持function的模型       -ANALYSIS_MODEL=# 分析模型,用于生成仓库目录结构       -CHAT_API_KEY=您的APIkey       -LANGUAGE=# 设置生成语言默认为"中文"       -ENDPOINT=https://api.anthropic.com/       -DB_TYPE=sqlite       -MODEL_PROVIDER=Anthropic# 模型提供商,默认为OpenAI 支持AzureOpenAI和Anthropic       -DB_CONNECTION_STRING=DataSource=/data/KoalaWiki.db       -EnableSmartFilter=true # 是否启用智能过滤,这可能影响AI得到仓库的文件目录

💡 如何获取APIKey:

  • • 获取 Google API key Google AI Studio
  • • 获取 OpenAI API key OpenAI Platform
  • • 获取 CoresHub CoresHub 点击这里免费领取5000万token
  • • 获取 TokenAI TokenAI
  1. 3. 启动服务

您可以使用提供的Makefile命令轻松管理应用程序:

`# 构建所有Docker镜像
make build

以后台模式启动所有服务

make up

或以开发模式启动(可查看日志)

make dev`

然后访问 http://localhost:8090 即可访问知识库。

更多命令可查看:

make help

Windows用户(无make命令)

如果您使用Windows系统且没有安装make,可以直接使用以下Docker Compose命令:

`# 构建所有Docker镜像
docker-compose build

后台启动所有服务

docker-compose up -d

开发模式启动(可查看日志)

docker-compose up

停止所有服务

docker-compose down

查看日志

docker-compose logs -f`

针对特定架构或服务的构建命令:

`# 只构建后端
docker-compose build koalawiki

只构建前端

docker-compose build koalawiki-web

使用架构参数构建

docker-compose build --build-arg ARCH=arm64
docker-compose build --build-arg ARCH=amd64`

🔍工作原理

OpenDeepWiki使用AI实现:

  • • 克隆代码仓库到本地
  • • 根据仓库README.md进行分析
  • • 分析代码结构,并且根据需要读取代码文件,然后产生需要生成的目录json数据
  • • 根据目录分多个任务进行处理,每一个任务都是一个文档
  • • 根据任务开始读取代码文件,分析代码文件,生成代码文档,并且生存Mermaid图表表示代码结构依赖关系
  • • 生成最终的知识库文档
  • • 通过对话式的方式对仓库进行分析,回复用户的问题

克隆代码仓库

分析README.md

分析代码结构

生成目录json数据

分多个任务进行处理

读取代码文件

分析代码文件

生成代码文档

生存Mermaid图表

生成知识库文档

对话式交互

高级配置

环境变量

  • • KOALAWIKI_REPOSITORIES 仓库存放路径
  • • TASK_MAX_SIZE_PER_USER 每个用户AI处理文档生成的最大并行数量
  • • CHAT_MODEL 必须要支持function的模型
  • • ENDPOINT API的Endpoint
  • • ANALYSIS_MODEL 分析模型,用于生成仓库目录结构
  • • CHAT_API_KEY 您的APIkey
  • • LANGUAGE 改变生成的文档的语言
  • • DB_TYPE 数据库类型,默认为sqlite
  • • DB_CONNECTION_STRING 数据库连接字符串
  • • MODEL_PROVIDER 模型提供商,默认为OpenAI 支持AzureOpenAI和Anthropic
  • • EnableSmartFilter 是否启用智能过滤,这可能影响AI得到仓库的文件目录

针对不同架构的构建

Makefile提供了针对不同CPU架构构建的命令:

`# 构建ARM架构的所有镜像
make build-arm

构建AMD架构的所有镜像

make build-amd

只构建ARM架构的后端服务

make build-backend-arm

只构建AMD架构的前端服务

make build-frontend-amd`

扫码加入技术交流群,备注「开发语言-城市-昵称

(文:GitHubStore)

火爆全网的DeepWiki开源版来了!最先出现在每时AI


扫描二维码,在手机上阅读