离线部署qoder需通过外网中转机下载完整安装包、预置模型及依赖,内网解压后修改配置启用本地模型路径与离线鉴权,执行初始化脚本并绑定内网ip启动webui,最终验证qodercli --version无网络请求且返回版本号。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要在无互联网连接的企业内网环境中部署Qoder,则无法通过常规在线方式下载安装包与拉取远程模型依赖。以下是针对该限制条件的特殊操作步骤:
一、外网中转机准备与安装包获取
必须借助一台可访问公网的中转设备(如开发笔记本),提前完成全部资源的下载与打包,确保所有组件满足离线可用性要求。
1、访问Qoder官方下载页面:https://qoder.com/download
2、根据目标内网系统选择对应离线安装包,优先下载标注为“offline”或“airgap”的完整版安装包(例如 Qoder-offline-v0.3.2-windows-x64.zip)
3、若官网未直接提供离线包,则需手动收集以下必需组件并归档为单一压缩包:Qoder主程序二进制文件、预置模型权重文件(如qoder-llm-qwen1.5-0.5b.bin)、内置Gradio前端静态资源、environment.yml或requirements-offline.txt、start_offline.bat/sh启动脚本
二、离线依赖与模型文件同步
Qoder运行依赖特定版本的Python库及大语言模型权重,这些资源必须在中转机上预先下载并验证完整性,再整体迁移至内网环境。
1、在中转机创建临时conda环境并导出离线依赖列表:
conda create -n qoder-offline python=3.10
conda activate qoder-offline
pip install torch==2.3.0+cu121 torchvision==0.18.0+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
pip install transformers sentencepiece gradio jinja2 pyyaml
pip freeze > requirements-offline.txt
2、使用transformers库下载Qwen1.5-0.5B模型至本地缓存目录:
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-0.5B", local_files_only=False, cache_dir="/tmp/qoder-models")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-0.5B", cache_dir="/tmp/qoder-models")
3、将/tmp/qoder-models目录整体压缩为qoder-models.tar.gz,并与requirements-offline.txt一同纳入最终离线分发包
三、内网服务器部署与环境初始化
将外网准备好的完整离线包上传至内网目标机器后,需跳过联网校验环节,强制启用本地资源路径加载机制。
1、解压离线包至统一路径,例如:
Windows:C:\qoder-offline\
Linux:/opt/qoder-offline/
2、修改配置文件conf/settings.yaml,将以下字段设为离线模式:
model_source: local
model_path: "./models/Qwen1.5-0.5B"
update_check_enabled: false
代码编辑 CLI 工具集合:Cursor CLI(agent)和 Qoder CLI(qodercli),用于代码修改、重构、Code Review 及自动化代码任务。
3、执行离线初始化命令:
Windows:双击 run_offline_init.bat
Linux:bash init_offline_env.sh
4、关键验证步骤:运行 qodercli --version 并确认输出不触发任何网络请求日志,且返回版本号(如 0.3.2)
四、离线WebUI启动与端口绑定
Qoder的可视化界面默认依赖Gradio,其离线启动需禁用外部CDN加载并绑定可信内网地址,避免浏览器因混合内容策略阻断资源。
1、编辑 webui.py 文件,在gradio.Launcher()调用前插入:
import gradio as gr
gr.set_static_paths(paths=["./static"])
2、启动命令替换为:
gradio webui.py --server-name 192.168.10.50 --server-port 7860 --share False --enable-xformers False
3、务必使用内网IP而非localhost启动,否则内网其他终端无法通过浏览器访问WebUI
五、证书与鉴权模块本地化适配
在线登录流程在离线环境下不可用,需切换为API Key本地认证模式,避免调用OAuth2授权服务端点。
1、在中转机生成离线可用的密钥对:
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
2、将public.key复制到内网部署目录下的auth/子目录
3、运行首次启动时传入离线鉴权参数:
qodercli --auth-mode local --auth-key-file ./auth/public.key
4、首次运行后,系统将在./auth/local.token中生成一次性有效令牌,后续启动自动读取该文件完成身份识别










