火爆全网的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)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往