使用离线部署32B模型实现OpenDeepWiki项目代码自动分析与文档生成

背景介绍

在企业环境中,我们经常需要对公司项目代码进行分析和文档生成。然而,考虑到代码的保密性,将代码上传至公共AI平台存在安全隐患。为解决这一问题,我们可以在公司内部GPU服务器上部署强大的大语言模型(如qwen2.5:32b-instruct-fp16),并结合OpenDeepWiki工具,实现安全、高效的代码仓库分析与文档自动生成。

环境需求

  • 硬件: 支持qwen2.5:32b-instruct-fp16模型运行的GPU服务器(推荐配置:4*RTX 3090)
  • 软件: Ollama(用于部署模型)、Docker和Docker Compose环境
  • 网络: 内部网络环境,确保安全性

部署步骤

1. 部署OpenDeepWiki

在服务器上创建并配置必要文件:

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处理文档生成的最大数量
- 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;
}
# 其他所有请求转发到前端服务
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. 启动服务

创建好上述文件后,在同级目录下执行以下命令:

  1. 拉取必要的镜像:

    
         
    docker-compose pull
  2. 启动容器:

    
         
    docker-compose up -d
  3. 等待服务初始化完成(通常需要几分钟)

3. 访问OpenDeepWiki平台

在浏览器中访问 http://[服务器IP]:8090,即可看到OpenDeepWiki的界面:

使用指南

添加代码仓库进行分析

  1. 从以下地址获取OpenDeepWiki源码(推荐国内用户使用Gitee):

  2. 下载源码的ZIP压缩包

  3. 在OpenDeepWiki平台点击"添加新仓库":

  1. 选择"上传压缩包",填写组织名称和仓库名称(这些字段必填,将影响前端路由显示),然后提交:

  1. 上传完成后,系统将开始处理仓库(处理时间约为3-5分钟)。处理中的仓库会显示在列表中:

  1. 处理完成后,点击仓库名称即可查看由qwen2.5:32b-instruct-fp16模型自动生成的文档:

系统优势

  • 安全可控:所有代码分析和文档生成过程都在内部环境完成,确保代码安全
  • 高质量文档:借助强大的qwen2.5:32b-instruct-fp16模型,生成的文档结构清晰、内容全面
  • 一键操作:简单的上传流程,无需复杂配置
  • 可扩展性:支持多种代码仓库格式,适用于不同项目需求

结语

通过部署OpenDeepWiki与qwen2.5:32b-instruct-fp16模型,我们可以安全、高效地为公司代码仓库生成完整文档,大幅提升项目理解和开发效率。

如果您对OpenDeepWiki感兴趣,欢迎访问以下地址并给项目点个Star:

在线体验地址https://opendeep.wiki/
目前已有500+仓库加入!您也可以将您的开源仓库添加进来。

原创作者: token-ai 转载于: https://www.cnblogs.com/token-ai/p/18876966
### 如何离线部署 DeepSeek-R1-Distill-Qwen-32B 大模型 为了成功离线部署 DeepSeek-R1-Distill-Qwen-32B 模型,环境配置和资源准备至关重要。确保硬件满足最低需求,包括足够的 GPU 显存和支持 CUDA 的 NVIDIA 图形卡[^1]。 #### 准备工作 安装必要的依赖库对于顺利运行大模型非常重要。通常情况下,这涉及 Python 环境设置以及 PyTorch 或 TensorFlow 这样的深度学习框架的安装。具体到 DeepSeek-R1-Distill-Qwen-32B,推荐使用 Anaconda 创建独立的工作环境来管理包版本冲突问题: ```bash conda create -n deepseek_env python=3.9 conda activate deepseek_env pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 ``` #### 下载并加载预训练权重 由于目标是在没有互联网连接的情况下部署模型,因此需要提前下载好所有的文件,并将其存储在一个可访问的位置。官方文档建议通过有网络连接的设备预先获取这些资源,之后再转移到目标环境中。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name_or_path = "path_to_offline_model_directory" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) ``` #### 配置推理服务 完成上述准备工作后,下一步就是构建一个能够接收请求并向用户提供响应的服务接口。Flask 是一种轻量级 Web 应用程序开发工具,非常适合用来快速搭建这样的 API 接口。 ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): input_text = request.json.get('input') inputs = tokenizer(input_text, return_tensors="pt").to("cuda") outputs = model.generate(**inputs) result = tokenizer.decode(outputs[0], skip_special_tokens=True) return jsonify({"output": result}) if __name__ == "__main__": app.run(host='0.0.0.0', port=5000) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值