背景介紹
在企業(yè)環(huán)境中,我們經(jīng)常需要對公司項目代碼進行分析和文檔生成。然而,考慮到代碼的保密性,將代碼上傳至公共AI平臺存在安全隱患。為解決這一問題,我們可以在公司內(nèi)部GPU服務器上部署強大的大語言模型(如qwen2.5:32b-instruct-fp16),并結合OpenDeepWiki工具,實現(xiàn)安全、高效的代碼倉庫分析與文檔自動生成。
環(huán)境需求
- 硬件: 支持
qwen2.5:32b-instruct-fp16模型運行的GPU服務器(推薦配置:4*RTX 3090) - 軟件: Ollama(用于部署模型)、Docker和Docker Compose環(huán)境
- 網(wǎng)絡: 內(nèi)部網(wǎng)絡環(huán)境,確保安全性
部署步驟
1. 部署OpenDeepWiki
在服務器上創(chuàng)建并配置必要文件:
docker-compose.yml:
services:
koalawiki:
image: crpi-j9ha7sxwhatgtvj4.cn-shenzhen.personal.cr.aliyuncs.com/koala-ai/koala-wiki
environment:
- KOALAWIKI_REPOSITORIES=/repositories
- TASK_MAX_SIZE_PER_USER=5 # 每個用戶AI處理文檔生成的最大數(shù)量
- REPAIR_MERMAID=1 # 是否進行Mermaid修復,1修復,其余不修復
- CHAT_MODEL=qwen2.5:32b-instruct-fp16 # 必須要支持function的模型
- ANALYSIS_MODEL=qwen2.5:32b-instruct-fp16 # 分析模型,用于生成倉庫目錄結構,這個很重要,模型越強,生成的目錄結構越好,為空則使用ChatModel
- CHAT_API_KEY=sk- #您的APIkey
- LANGUAGE=簡體中文 # 設置生成語言默認為"中文"
- ENDPOINT=http://您的Ollamaip:11434/v1
- DB_TYPE=sqlite
- DB_CONNECTION_STRING=Data Source=/data/KoalaWiki.db
- UPDATE_INTERVAL=5 # 倉庫增量更新間隔,單位天
- EnableSmartFilter=true # 是否啟用智能過濾,這可能影響AI得到倉庫的文件目錄
- PARALLEL_COUNT=1 # The warehouse processes the quantity in parallel
volumes:
- ./repositories:/app/repositories
- ./data:/data
koalawiki-web:
image: crpi-j9ha7sxwhatgtvj4.cn-shenzhen.personal.cr.aliyuncs.com/koala-ai/koala-wiki-web
environment:
- NEXT_PUBLIC_API_URL=http://koalawiki:8080 # 用于提供給server的地址
nginx: # 需要nginx將前端和后端代理到一個端口
image: crpi-j9ha7sxwhatgtvj4.cn-shenzhen.personal.cr.aliyuncs.com/koala-ai/nginx:alpine
ports:
- 8090:80
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- koalawiki
- koalawiki-web
nginx.conf:
server {
listen 80;
server_name localhost;
# 設置上傳文件大小限制為 100MB
client_max_body_size 100M;
# 日志配置
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 代理所有 /api/ 請求到后端服務
location /api/ {
proxy_pass http://koalawiki:8080/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
# 其他所有請求轉(zhuǎn)發(fā)到前端服務
location / {
proxy_pass http://koalawiki-web:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
2. 啟動服務
創(chuàng)建好上述文件后,在同級目錄下執(zhí)行以下命令:
-
拉取必要的鏡像:
docker-compose pull -
啟動容器:
docker-compose up -d -
等待服務初始化完成(通常需要幾分鐘)
3. 訪問OpenDeepWiki平臺
在瀏覽器中訪問 http://[服務器IP]:8090,即可看到OpenDeepWiki的界面:

使用指南
添加代碼倉庫進行分析
-
從以下地址獲取OpenDeepWiki源碼(推薦國內(nèi)用戶使用Gitee):
-
下載源碼的ZIP壓縮包
-
在OpenDeepWiki平臺點擊"添加新倉庫":

- 選擇"上傳壓縮包",填寫組織名稱和倉庫名稱(這些字段必填,將影響前端路由顯示),然后提交:

- 上傳完成后,系統(tǒng)將開始處理倉庫(處理時間約為3-5分鐘)。處理中的倉庫會顯示在列表中:

- 處理完成后,點擊倉庫名稱即可查看由
qwen2.5:32b-instruct-fp16模型自動生成的文檔:

系統(tǒng)優(yōu)勢
- 安全可控:所有代碼分析和文檔生成過程都在內(nèi)部環(huán)境完成,確保代碼安全
- 高質(zhì)量文檔:借助強大的
qwen2.5:32b-instruct-fp16模型,生成的文檔結構清晰、內(nèi)容全面 - 一鍵操作:簡單的上傳流程,無需復雜配置
- 可擴展性:支持多種代碼倉庫格式,適用于不同項目需求
結語
通過部署OpenDeepWiki與qwen2.5:32b-instruct-fp16模型,我們可以安全、高效地為公司代碼倉庫生成完整文檔,大幅提升項目理解和開發(fā)效率。
如果您對OpenDeepWiki感興趣,歡迎訪問以下地址并給項目點個Star:
在線體驗地址:https://opendeep.wiki/
目前已有500+倉庫加入!您也可以將您的開源倉庫添加進來。
浙公網(wǎng)安備 33010602011771號