DeepWiki-Open 是什麼
deepwiki-open 是一個 開源(MIT 許可) 專案,由 AsyncFuncAI 開發。
它是一個 AI 驅動的 Wiki/文件生成系統,專門用於分析 GitHub、GitLab 或 Bitbucket 上的程式碼倉庫,將其轉換成結構化、互動式的 Wiki。
它支援通過嚮導把程式碼結構自動理解(通過 AI)、生成視覺化架構圖(使用 Mermaid)、建立完整文件,並提供 「問答 (Ask)」 功能,使用者可以像聊天一樣向 DeepWiki 提問,AI 基於檢索增強生成(RAG)來回答問題。
它還有 「DeepResearch」 模式:允許多輪深入提問,做較複雜或研究型的問題探索。
支援多種 LLM 提供商/模型:例如 Google Gemini、OpenAI、OpenRouter、Azure、甚至本地 Ollama 模型。
對私有倉庫也支援:可以通過個人訪問令牌 (PAT) 訪問私有 GitHub/GitLab 倉庫。
詳細描述 / 技術原理
1、架構
前端(Next.js):負責 UI、使用者互動 (輸入倉庫 URL, 瀏覽 Wiki, 問答) 。
後端 (FastAPI):處理倉庫克隆、文件生成、向量檢索 (embedding)、聊天介面 (問答) 等。
儲存 /快取:使用本地目錄 ~/.adalflow/ 來儲存克隆的倉庫、向量資料庫 (FAISS)、生成的 Wiki 快取 (JSON) 等。
2、資料處理
克隆倉庫 (支援 GitHub/GitLab/Bitbucket)。
分析程式碼結構:讀取檔案樹、 README、原始碼等 -> 構建語義塊 (document chunking)。
生成 embedding:使用多種嵌入模型 (OpenAI、Google、Ollama) 來把文件塊向量化。
索引檢索 (RAG):用 vector store (可能是 FAISS) + retriever,對使用者提問做上下文檢索。
文件生成:基於檢索到的上下文,利用 LLM 生成 「wiki 頁面」 內容。
視覺化:使用 Mermaid 生成架構圖 /流程圖,幫助理解程式碼結構。
3、問答 (Ask)
DeepWiki 提供一個聊天 (Ask) 介面,使用者可以問關於程式碼庫的問題。系統用檢索 + LLM 答覆。
DeepResearch 模式:支援多輪對話,每輪深入分析 (例如追問某個模組內部邏輯);後端通過 WebSocket 支援流式響應。
會話記憶 (conversation memory) + 上下文合併,以維持對話連貫性。
4、快取機制
Wiki 快取 (已生成的 wiki 頁面結構) 存在 ~/.adalflow/wikicache/。
向量資料庫 (embeddings + 索引) 存放在 ~/.adalflow/databases/。
倉庫克隆儲存在 ~/.adalflow/repos/。
這樣設計可以顯著減少重複處理,提高效能。
5、AI 模型 / 提供商
支援多個 LLM 提供商:Google Gemini, OpenAI, OpenRouter, Azure, 本地 Ollama 等。
嵌入 (embeddings) 模型也支援多種型別 (OpenAI, Google, Ollama),通過配置檔案 api/config/embedder.json 定義。
模型引數 (temperature, top_p, custom model id 等) 可以通過 JSON 配置自定義。
6、安全 / 訪問控制
支援授權 (Auth Mode):可以開啟 DEEPWIKI_AUTH_MODE,配合 DEEPWIKI_AUTH_CODE 限制誰能生成 wiki。
私有倉庫訪問:通過個人訪問令牌 (PAT) 訪問私有 GitHub / GitLab。
日誌配置:可以通過環境變數設定日誌級別 (LOG_LEVEL) 和日誌檔案路徑 (LOG_FILE_PATH)。
7、擴充套件性
配置目錄 (api/config/) 可自定義模型、檢索、檔案過濾、倉庫規則 (repo.json) 等。
Docker Compose 支援標準模式、本地 Ollama 模式 (隱私優先) 等多種部署方式。
有社羣 Issue 提到希望支援將 Wiki 快取存到 S3 而非本地。
優點和適用場景
優點:
自動化:大大減少手工寫文件的工作量。
結構化:生成的 wiki 頁面結構清晰,便於導航。
可讀性強:自動生成視覺化圖表 (Mermaid),幫助理解複雜程式碼結構。
互動性:可以對程式碼庫提問,獲得上下文感知的回答。
靈活性高:支援多模型、多提供商、本地模型、私有倉庫。
自託管:完全開源、支援本地部署,無需將程式碼傳送給第三方服務(如果使用本地 LLM)。
適用場景:
團隊內部技術文件 /知識管理。
開源專案 /庫的自動文件生成。
大型程式碼庫新成員的快速入門 (onboarding)。
進行程式碼審查 /結構理解。
開發者希望構建自己的 「DevWiki」 系統。
風險/注意事項
API 成本:如果使用雲 LLM (例如 OpenAI, Google),生成文件和對話可能會產生較高費用。
資料隱私:如果倉庫是私有的,要確保訪問令牌安全,同時如果呼叫雲模型,要考慮程式碼內容是否傳送到 LLM 提供商。
版本同步:當程式碼庫更新後,需要重新索引 /生成 wiki。
資源消耗:Embedding 向量索引、處理大型倉庫可能消耗較多計算和儲存資源。
快取管理:需要妥善管理 ~/.adalflow/ 目錄,避免快取混亂或磁碟佔用過大。
模型相容性:如果切換嵌入模型 (例如從 OpenAI 換到本地 Ollama),可能需要重建 embeddings。










評論
暫無評論
成為第一個評論的人