社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

DeepWiki:GitHub 源码阅读神器

浮之静 • 3 天前 • 15 次点击  

DeepWiki[1] :基于 GitHub Repo 源代码生成最新版可对话式文档,由 Devin[2] 驱动。

  • 开源项目免费使用,无需注册。
  • 私有项目中使用需在 http://devin.ai 注册账号。
  • 直接访问 https://deepwiki.com,或将 GitHub 链接中的 github 替换为 deepwiki。

如果只看以上介绍,会云里雾里的。下面我们先来聊聊相关背景,你就知道 DeepWiki 价值所在了。

背景

Devin AI 是由 Cognition Labs[3] 开发的自主人工智能助手工具,标榜为 “AI 软件开发者”。曾号称全球首个全自动 AI 程序员,因执行成本高导致订阅价格也极高($500/月),后来就淡出人们视野了。目前更主流的开发形式是 IDE + MCP(如 Cursor、VSCode、Windsurf 等),半自动化的工具链调用让控制更精准,结果也变得更加可靠。

Devin 这次带来的 DeepWiki 确实是阅读 GitHub 项目的好帮手,在正式开始介绍 DeepWiki 前,我们先来了解一下目前阅读开源项目的痛点:

  • GitHub 主流开源项目介绍以英文 README.md 为主,支持多语言介绍的并不多,对于非母语的人来说,存在一定阅读障碍。
  • 很多仓库可能连比较像样的 README 介绍都没,更别提专门的文档网站或 Blog 了。于开发者而言是灾难性的,需要自行查看源代码或在 issues 中搜寻一些描述。
  • 如果仓库文件超多,上百个文件,或大几十万行代码,想要通过阅读源码来建立项目宏观认知会变得特别难。
  • 阅读一个仓库的源代码或许不难,但面对 GitHub 这种世界级的开发者聚集地,每天都会诞生大量开源项目,纯靠人力阅读总结会被累死(面对海量代码,人会变得麻木)。
  • 在项目文档中不会有功能与源码之间的映射关系说明,但这又是借鉴参考项目时的一个重点需求。
  • ...

在源码阅读方面,其实 GitHub 本身就做了许多改进,如树状目录,函数依赖图谱等。

随着 GitHub Copilot 的升级,也被集成进 GitHub,通过交互式对话来进一步辅助源码阅读。点击具体代码行号或顶部固定按钮唤醒 AI 对话,可提问项目相关的任何问题。

但以上这些 GitHub 提供的能力远远不够,并不能帮助我们快速建立项目宏观层面的认知(系统架构图、依赖图等)。

DeepWiki 简介

关于 DeepWiki 的详细信息是由以下推文揭露的,我对其进行了梳理。

Cognition Labs 打造了 DeepWiki,一个免费、可对话的 GitHub 仓库百科全书,致力于让每一个开发者都能轻松访问最新、结构化的项目文档。DeepWiki 由 Devin 技术驱动,专为开源项目免费开放,无需注册即可使用。只需将任何 GitHub 仓库链接中的 github 替换为  deepwiki,即可直接访问对应的 DeepWiki 页面。如:https://deepwiki.com//

据 Cognition Labs 成员介绍,DeepWiki 在构建过程中,让大语言模型(LLM)全面扫描了完整的代码库。到目前为止,它已经索引了超过 30,000 个热门 GitHub 仓库,处理了超过 40 亿行代码,处理总量超过 1000 亿 tokens,仅索引过程的计算开销就超过了 30 万美元。索引一个仓库的平均成本大约为 12 美元,但团队还是决定让所有开源项目免费使用,无需任何注册门槛。

从系统设计来看,模型在局部理解代码(如函数、模块)方面表现非常出色,但真正的挑战在于理解整个代码库的全局结构。DeepWiki 针对这一难题,采用了分层方法:先将代码库划分为一套套高层次系统(high-level systems),再为每一个系统生成对应的 Wiki 页面,帮助用户在整体上把握项目架构。

它还利用了一个非常有趣的信号——提交历史(commit history)。通过分析哪些文件经常被一起修改,可以构建出文件之间的关联图(graph),从而揭示项目内部许多潜在且重要的结构模式。这一方法进一步增强了 DeepWiki 对代码库内部逻辑关系的理解与呈现。

如果找不到你需要的仓库,团队也很乐意帮你索引任何公开 GitHub 仓库。对于私有仓库,只需注册 Devin 账号即可使用相同功能。此外,DeepWiki 支持分享 Wiki 页面和智能解答链接,方便团队成员始终保持信息同步。

案例分享

我简单看了两个项目,发现确实有趣。如基于 VSCode 源码生成的文档,可根据代码行号生成系统架构图(这在 GitHub 仓库里是完全没有的)。

比较精彩的是发现它收录了我的 Noi 项目,该项目我并没有上传核心源码,仅放了插件和部分配置代码。它也能根据 README 和插件代码推测出 Noi 的架构,不但准确而且是多维度的。访问链接:https://deepwiki.com/lencx/Noi

在进一步测试中,DeepWiki 还可以使用中文来对话。它会通过源码检索来进行功能讲解,甚至是某个具体功能实现,但暂时无法检索 issues 或 pr。对话支持 Deep Research。开启后,检索会慢很多,不开时会快速扫描文件给出结果。

结语

目前看来,在源码阅读上,DeepWiki 算是 GitHub Copilot 的很好补充。生成多维度的系统架构图、提供交互式对话这些都可以帮你快速建立起一个项目的框架感,因此它也绝对称得上“源码阅读神器”。

题外话

网上看到一个关于 LangChain[4] 的段子,很有意思。

LangChain 毁了我的婚姻

一开始我是多么天真啊。我不过想捣鼓个小玩意儿而已。“试试 LangChain,”网上劝诱道,“这玩意儿能轻松帮你串联各种模型、数据,搭出复杂 AI 应用。” 我寻思,也行啊。我老婆甚至还鼓励过我:“你不是一直想折腾点 AI 啥的吗?”殊不知,那竟是她最后一次对我展露的鼓励微笑。

我选择从头开始搭,不用模板,不看教程,发誓要亲手串联每个 LLM、每个向量数据库、每个检索器。显然,我对自己下手可狠,也没放过身边那些爱我的人。几小时变成几天,我像个瘾君子一样死守着 Cursor,口中念念有词:“AgentExecutor... 我的宝贝 AgentExecutor…” 老婆好心端来咖啡,我居然像只护崽的猫一样嘶声叫道:“别打扰我神圣的提示工程大业!”

那晚,她问我要不要一起看电影。我豪爽地答道:“当然,看,肯定看!等我修完这个模型幻觉问题先。” 这句话已经是三天前了。她一个人啃完了《指环王》三部曲,而我,却盯着终端里花花绿绿的 debug 输出狂喜不止,感受着一种说不清道不明的顿悟——或许只是疯了吧。

她仍想拯救一下我们的关系。“出去走走吧,”她温柔地说,“聊聊我们俩的未来。”我头也不抬:“不行啊,RAG 系统检索结果不够准,我必须赶紧优化一下提示链。” 她幽幽地问:“你的心还能检索到吗?”

接下来便是无尽的依赖更新灾难。我随手执行了个 pip install -U langchain,然后砰!一切都炸裂了。我花了整整八小时解决版本兼容问题,一边狂翻文档,一边在 GitHub 怒开 issue。她走进房间,看着被几十个浏览器标签和终端窗口环绕的我,声音轻得像是怕吓坏了某种生物:“这就是……现在的你了吗?”

那晚,她终于离开了,说她要“找个不会把聊天模型当成灵魂伴侣的人”。上周她寄来了离婚协议书。我刚要落笔签字,AI 编程助手居然像知音一样与我心灵相通,我还没开口,它便乖巧地把代码补全了。“谁还需要什么人类的情感?” 我心想,看着 Cursor 完美自动补全整个法律文件分析器,“尤其是当你的 AI 比老婆更懂你的时候。”

References

[1]

DeepWiki:https://deepwiki.com

[2]

Devin:https://devin.ai

[3]

Cognition Labs:https://cognition.ai

[4]

LangChain:https://github.com/langchain-ai

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181537
 
15 次点击