絡(luò)環(huán)境完成 WeKnora 離線部署:從內(nèi)網(wǎng)隔離到首次問答的實(shí)操指南)
如何在無網(wǎng)絡(luò)環(huán)境完成 WeKnora 離線部署從內(nèi)網(wǎng)隔離到首次問答的實(shí)操指南【免費(fèi)下載鏈接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/we/WeKnora文檔不能出內(nèi)網(wǎng)時(shí)WeKnora 離線部署場景裝完你會(huì)拿到一個(gè)能打開的網(wǎng)頁傳 PDF、提問、拿到帶出處引用的答案。這就是 WeKnora 離線部署的玩法——在完全斷網(wǎng)內(nèi)網(wǎng)用 Docker Compose 起一套文檔問答服務(wù)解析、索引、生成都發(fā)生在本地?cái)?shù)據(jù)不出機(jī)器??焖匍_始離線跑通的最小步驟先看硬件底線。同時(shí)要跑 7B 級對話模型和整套容器參考配置是8 核 CPU推薦 16 核、32GB 以上內(nèi)存、200GB 左右的 SSD。軟件三件套Docker Engine 20.10、Docker Compose v2、Git。git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env docker compose up -d四步分別干的事拿代碼、復(fù)制配置模板首次可以直接用默認(rèn)值、拉起全部容器。成功的標(biāo)志docker compose ps里所有服務(wù)都是 Up瀏覽器打開 http://localhost 能看到頁面。?? 離線有個(gè)前置條件鏡像和模型要先運(yùn)進(jìn)內(nèi)網(wǎng)。在有網(wǎng)機(jī)器上先docker compose pull再用docker save $(docker compose config --images) -o weknora.tar導(dǎo)出拷到目標(biāo)機(jī)執(zhí)行docker load -i weknora.tar。Ollama 同理先裝好、ollama pull好模型把~/.ollama/models目錄整體搬過去。鏡像就位后也可用 scripts/start_all.sh 的--no-pull參數(shù)啟動(dòng)它會(huì)順帶把宿主機(jī)的 Ollama 服務(wù)拉起來。組件分工與數(shù)據(jù)流一覽啟動(dòng)后是六個(gè)角色在配合各自職責(zé)如下組件職責(zé)frontendNginxWeb 界面把 API 請求反向代理給后端監(jiān)聽 80 端口appGo 主服務(wù)業(yè)務(wù) API、任務(wù)調(diào)度、調(diào)用模型端口 8080docreaderPython 解析器把 PDF/Word/PPT 等文件解析成結(jié)構(gòu)化文本走 gRPC 與 app 通信postgresParadeDB 鏡像存業(yè)務(wù)數(shù)據(jù)同時(shí)充當(dāng)默認(rèn)向量庫和檢索引擎redis任務(wù)隊(duì)列與緩存Ollama宿主機(jī)本地大模型推理默認(rèn)端口 11434數(shù)據(jù)流向是單向閉環(huán)瀏覽器到 frontendfrontend 轉(zhuǎn)給 appapp 把文件丟給 docreader 解析切塊后調(diào) embedding 模型轉(zhuǎn)向量文本和向量一起寫入 postgres。提問時(shí)先按向量檢索相關(guān)段落再交給 Ollama 生成回答。關(guān)鍵配置解讀默認(rèn)值與改動(dòng)后果配置集中在.env模板 .env.example 里每行都有注釋。真正影響日常使用的只有下面五項(xiàng)STORAGE_TYPE默認(rèn)local原文檔落在 app 容器的本地磁盤卷。改成minio就必須加--profile minio啟動(dòng)否則對象存儲(chǔ)容器不會(huì)起來上傳會(huì)失敗。OLLAMA_BASE_URL / OLLAMA_OPTIONAL默認(rèn)指向宿主機(jī)http://host.docker.internal:11434。推理服務(wù)在單獨(dú)的 GPU 機(jī)器上時(shí)改掉 IP 即可OLLAMA_OPTIONALtrue默認(rèn)時(shí) Ollama 掛了只告警不崩主服務(wù)。DB_DRIVER / RETRIEVE_DRIVER默認(rèn)都是postgres元數(shù)據(jù)和向量同庫零額外配置。要換 qdrant、milvus 得配對應(yīng)的--profile。MAX_FILE_SIZE_MB默認(rèn) 50單文件上傳上限。超限直接拒收要灌大 PDF 就調(diào)大它并重啟。SYSTEM_AES_KEY加密 API Key 等敏感字段的 32 字節(jié)主密鑰默認(rèn)是公開占位值。?? 正式使用前換成自己的值并保管好存過密鑰之后再改舊密鑰無法恢復(fù)。模型部署也歸在這節(jié)。無網(wǎng)環(huán)境下先把模型文件運(yùn)進(jìn)來再在宿主機(jī)執(zhí)行ollama pull bge-m3 # 嵌入模型 ollama pull deepseek-r1:7b # 對話模型成功的標(biāo)志是ollama list能列出這兩個(gè)模型。然后進(jìn) Web 界面系統(tǒng)設(shè)置 → 模型配置選中它們保存并重啟服務(wù)。從上傳文檔到第一次問答啟動(dòng)后全程在瀏覽器里操作路徑是固定的首次訪問完成初始化。注冊賬號時(shí)把 Ollama 上那兩個(gè)模型填進(jìn)去。模型配置寫進(jìn)數(shù)據(jù)庫后續(xù)不用動(dòng) .env。建知識(shí)庫、傳文檔。知識(shí)庫 → 新建知識(shí)庫拖入 PDF。狀態(tài)從 processing 走到 completed 就算解析入庫長時(shí)間卡住就去查 docreader 的日志。提問并核對答案。選中目標(biāo)知識(shí)庫輸入如何配置離線模型這類問題。答案會(huì)帶引用出處點(diǎn)引用能跳回原文段落——離線部署的最低驗(yàn)收標(biāo)準(zhǔn)就是答案可溯源。常見故障避坑指南與提速技巧排查按現(xiàn)象 → 原因 → 處理走這張表現(xiàn)象常見原因處理前端打不開80 端口被占或 app 未通過健康檢查改FRONTEND_PORTdocker compose ps看健康狀態(tài)日志里模型連接失敗Ollama 沒起或OLLAMA_BASE_URL指錯(cuò)宿主機(jī)ollama list驗(yàn)證確認(rèn)端口是 11434文檔卡在 processing掃描件解析慢或文件損壞換小文件驗(yàn)證確認(rèn)格式在支持列表內(nèi)回答慢、超時(shí)CPU 上跑 7B 模型到了上限看下面提速技巧內(nèi)存持續(xù)吃滿被 OOM解析和推理同時(shí)壓上來調(diào)小CONCURRENCY_POOL_SIZE默認(rèn) 5提速技巧對應(yīng)資源調(diào)優(yōu)項(xiàng)換更小或量化的模型llama2:7b比deepseek-r1:7b輕4-bit/8-bit 量化能再省一半內(nèi)存。壓并發(fā)低配機(jī)器把CONCURRENCY_POOL_SIZE調(diào)低減少同時(shí)解析的文檔數(shù)。設(shè)資源上限在 docker-compose.yml 給 app 和 Ollama 加deploy.resources.limits防止單服務(wù)吃光機(jī)器。檢索命中率不高把 config/config.yaml 里的 chunk 尺寸調(diào)小段落更聚焦。數(shù)據(jù)雙備份docker compose exec postgres pg_dump -U weknora weknora backup.sql備份庫文檔原件在 contenteditable="false">【免費(fèi)下載鏈接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/we/WeKnora創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考