DocsGPT:把 RAG 問答、Agent Builder 與企業搜尋塞進一個 Docker 容器
Private AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.
秒懂
- 它是什麼?
- DocsGPT 是一個以 Flask 與 React 打造的開源 AI 平台,目標是讓企業把文件問答、Agent 工作流和搜尋功能全部部署在自己的基礎設施上。本文根據官方 README 與專案結構,拆解它的架構、安裝流程與實際限制。
- 適合誰用?
- DocsGPT 適合已經有 Docker 環境、想要快速建立內部文件問答與 Agent 原型的中小型團隊,尤其是那些不願意把文件送出公司、但又不想從零組 RAG pipeline 的人。它不適合需要細粒度控制每個搜尋環節的團隊,因為向量資料庫的選擇、embedding 模型替換和 chunking 策略都綁在預設架構裡,README 也沒有揭露這些細節。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
它解決什麼問題,給誰用
DocsGPT 把自己定位成「Private AI for agents, assistants and enterprise search」。這句話的實際意思是:你有一堆內部文件,可能是 PDF、Office 檔案、網頁內容甚至會議錄音,你想要讓員工用自然語言去問這些文件,而且你不想把資料送到 OpenAI 或 Google 的公有雲。DocsGPT 把文件解析、向量搜尋、LLM 呼叫、對話介面、Agent 工具串接全部打包成一個平台,部署在你自己的伺服器上。它的目標使用者是企業內部工具團隊,不是一般消費者。你不需要自己寫 Flask 後端,也不需要自己接 LangChain 或 LlamaIndex,DocsGPT 已經把這些環節整合好,你只要把文件丟進去,然後在 UI 上建立 Agent。
架構拆解:Flask 後端、React 前端與擴充套件
從專案結構可以看出,DocsGPT 分成三個主要部分。後端是 `docsgpt`,一個 Flask 應用程式,Python 套件名稱就叫 `docsgpt`。前端是 `Frontend`,用 Vite 和 React 建置。第三個是 `Extensions`,裡面放的是整合與 widget,例如 Chatwoot 和 React widget。這個結構告訴你一件事:DocsGPT 不是一個單體應用,它把 UI、API 和外部整合分開,讓你可以只接 API 而不開網頁介面。README 提到的架構圖沒有在我們手上的材料中顯示,所以實際的資料流細節無法確認,但從功能描述可以推測,文件會先經過解析,然後被轉成向量,接著查詢時會先做語意搜尋,再把結果丟給 LLM 生成回答。這些都是 RAG 的標準流程,但 DocsGPT 的差異在於它把這個流程包成一個可操作的平台,而不是程式庫。
安裝與啟動:setup.sh 與 Docker Compose 的實際路徑
官方 Quickstart 的第一步是複製倉庫,然後執行 `./setup.sh`(macOS 和 Linux)或 `PowerShell -ExecutionPolicy Bypass -File .\setup.ps1`(Windows)。這個腳本會引導你選擇五種模式:使用公開 API、本地執行、連接本地推理引擎、使用雲端 API 提供者、或本地建置 Docker image。腳本會自動設定 `.env` 檔案,並根據你的選擇下載必要的依賴。啟動之後,網頁介面在 `http://localhost:5173/`。要停止 DocsGPT,你必須在 DocsGPT 目錄下執行 `docker compose -f deployment/docker-compose.yaml down`。值得注意的是,README 明確要求你先安裝 Docker,所以這不是一個純 Python 的 pip install 專案,而是以容器為中心的部署。對於不想用 Docker 的團隊,這會是第一個門檻。
功能盤點:從語音輸入到 Agent Builder 的實際範圍
DocsGPT 的功能清單很長,但可以歸納成幾類。文件格式支援涵蓋 PDF、DOCX、CSV、XLSX、EPUB、MD、RST、HTML、MDX、JSON、PPTX,還有圖片和音訊檔(MP3、WAV、M4A、OGG、WebM)。語音工作流是特色之一,你可以錄音輸入到聊天室,後端會轉錄音訊,然後把會議紀錄或語音筆記變成可搜尋的知識。網路整合方面,它可以從 URL、sitemap、Reddit、GitHub 和網頁爬蟲攝取內容。Agent Builder 是 2026 年 2 月完成的功能,包含條件節點,這表示你可以建立有分支的 Agent 工作流,而不是單純的問答。研究模式在 2026 年 3 月完成,deep research 工具會自動搜尋多個來源並彙整答案。這些功能不是空談,因為 roadmap 上每個項目都有完成月份,而且從 2026 年 2 月到 6 月,幾乎每個月都有新功能落地,顯示開發節奏很快。
真正的限制:當 DocsGPT 不是正確工具的情況
DocsGPT 的 README 宣稱提供「hallucination-free responses」,但這是一個需要打折的承諾。任何 LLM 應用都無法保證完全沒有幻覺,DocsGPT 能做到的是提供來源引用,讓使用者可以驗證答案。這不是 DocsGPT 獨有的問題,而是整個 RAG 領域的已知限制。另一個限制是部署的複雜度。README 說「Deploy anywhere」,但實際安裝依賴 Docker Compose,而且 setup.sh 有五種模式,每一種都需要不同的設定。對於只想試試看的人,這不是一個 `pip install docsgpt` 就能解決的專案。更實際的問題是,DocsGPT 的定位是平台,不是程式庫,這表示如果你想自訂搜尋邏輯或替換某個元件,你必須修改整個 Flask 應用程式,而不是呼叫一個函式。最後,音訊和圖片處理需要額外的模型與運算資源,如果你的伺服器沒有 GPU,本地推理模式可能會很慢,但 README 沒有提供任何效能數據。
替代方案:LangChain 與自建 RAG 的差異
如果你不想採用 DocsGPT,最直接的替代方案是使用 LangChain 或 LlamaIndex 自己搭建 RAG pipeline。差別在於:LangChain 是程式庫,你寫 Python 程式碼來控制每一個環節,包括文件切分、向量資料庫選擇、prompt 模板和 LLM 呼叫。DocsGPT 是應用程式,你透過 UI 和 API 操作,不能直接改程式碼。舉例來說,在 LangChain 裡,你可以選擇用 Chroma 或 Pinecone 作為向量資料庫,但在 DocsGPT 的 README 中,完全沒有提到向量資料庫的選擇,它可能已經預設好一個。這表示如果你有特殊的檢索需求,例如混合搜尋或自訂 re-ranking,DocsGPT 可能無法滿足,你必須回到 LangChain 這類工具。另一個替代方案是直接使用 OpenAI 的 Assistant API,但這會把文件送到 OpenAI 伺服器,與 DocsGPT 的私有部署訴求背道而馳。所以選擇的關鍵在於:你願意花多少時間寫程式,換取多少控制權。
維護成本與授權:MIT 背後的現實
DocsGPT 使用 MIT 授權,這是最寬鬆的開源授權之一,代表你可以自由使用、修改、甚至商用,不需要公開你的修改版本。但寬鬆授權也意味著上游沒有義務維護你的 fork。從 release 歷史來看,專案在 2026 年 6 月到 8 月之間釋出了 0.17.3、0.18.0 和 0.19.0,更新頻率大約每兩個月一次,這顯示社群有持續活動。不過,維護成本取決於你如何部署。如果你使用 Docker Compose,升級時需要拉取新的 image,然後執行 migration,因為 roadmap 提到 2026 年 4 月完成了 Postgres migration,這表示資料庫結構會變,升級時必須注意。另一個成本是模型供應:DocsGPT 支援 BYOM(Bring Your Own Model),但這代表你要自己管理 API key 或本地模型的資源。如果你是小型團隊,沒有專職的 DevOps 人員,這些維護工作會落在開發者身上。
採用前該驗證的三件事
第一,確認你的文件格式是否在支援清單內。DocsGPT 支援 PDF、Office 檔案和音訊,但如果你有特殊的檔案類型,例如 CAD 檔或專利資料庫,你需要自己寫 parser,這超出平台範圍。第二,測試本地推理模式是否真的可行。README 提到支援 Ollama 和 llama_cpp,但沒有說需要多少 RAM 或 VRAM。如果你的團隊只有 CPU 機器,你必須先跑一次 setup.sh 並用真實文件測試延遲,否則你會在部署後才發現回應速度慢到無法使用。第三,檢查 API 連線能力。DocsGPT 強調「API connectivity for agents」,但 README 沒有列出 API endpoint 的文件。你應該先查看官方文件(docs.docsgpt.cloud)確認 API 是否提供你需要的工具呼叫功能,例如讓 Agent 去操作外部系統。這三件事都驗證過之後,你才能判斷 DocsGPT 是否真的符合你的需求,而不是只看功能清單。
編輯結論
DocsGPT 適合已經有 Docker 環境、想要快速建立內部文件問答與 Agent 原型的中小型團隊,尤其是那些不願意把文件送出公司、但又不想從零組 RAG pipeline 的人。它不適合需要細粒度控制每個搜尋環節的團隊,因為向量資料庫的選擇、embedding 模型替換和 chunking 策略都綁在預設架構裡,README 也沒有揭露這些細節。也不適合完全沒有 Docker 經驗的單位,因為 setup.sh 只是引導,真正的執行還是依賴 docker compose。採用前你應該先確認:你偏好的 LLM 是否在支援清單內(OpenAI、Google、Anthropic、Ollama、llama_cpp),你的文件格式是否落在 PDF、DOCX、CSV、XLSX、EPUB、MD、RST、HTML、MDX、JSON、PPTX 與音訊檔這些範圍,以及你是否接受把使用者資料遷移到 Postgres(2026 年 4 月之後的版本已把 user data 移到 Postgres)。最後,DocsGPT 的授權是 MIT,這意味著你可以把它嵌進商業產品,但如果你改了程式碼,你沒有義務回饋上游,這對某些企業是優點,對想長期依賴社群維護的團隊則是風險。
社群筆記