DeepWiki:GitHub 源碼閱讀神器
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/<user>/<repo>
據 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 的很好補充。生成多維度的系統架構圖、提供交互式對話這些都可以幫你快速建立起一個項目的框架感,因此它也絕對稱得上 “源碼閱讀神器”。
References
[1]
DeepWiki:https://deepwiki.com
[2]
Devin:https://devin.ai
[3]
Cognition Labs:https://cognition.ai
[4]
LangChain:https://github.com/langchain-ai
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/K5Fw2os5V5Bk-00pgSo4cQ