编程 ODS 详解:一条命令把电脑变成私有 AI 服务器

2026-09-05 13:01:05

ODS 详解:一条命令把电脑变成私有 AI 服务器

在本地跑大模型,最劝退人的往往不是模型体积,而是工具链太碎:想聊天要装 Web UI,想语音得配 Whisper,想自动化要拉 n8n,想出图还得搭 ComfyUI,再算上 RAG、向量库、Agent……单独装每个都能用,串起来就成了一场灾难。很多人折腾一整个周末,最后又回到云 API,把数据交给了别人。

ODS 就是冲着这个痛点来的。它把自己定位成一套"AI 服务器部署系统",把常用服务全部装好并接通,一条命令就能得到一个私有的 AI 全家桶。

项目地址:https://github.com/Osmantic/ODS

一、ODS 是什么

ODS 全称 Osmantic Deployment System,装好后你的 PC、Mac 或 Linux 机器就变成一台私有 AI 服务器。默认本地模式,数据不出机器、不上云,云和混合 API 模式只是可选项。

它不需要你手动组装 Ollama、Open WebUI、n8n、ComfyUI 和隐私工具。安装器会自动检测 GPU 与内存,按硬件档位挑选合适的 GGUF 模型,生成凭据并启动服务。最终你拿到的是一个带聊天界面、控制面板、语音、Agent、RAG、出图和运维监控的完整服务栈,而不是一堆互相不知道对方存在的容器。

硬件支持方面:Linux 支持 NVIDIA、AMD、Intel Arc;Windows 支持 NVIDIA、AMD(需要 Docker Desktop + WSL2);macOS 支持 Apple Silicon,走 Metal 加速。没有 GPU 也能跑,只是退回 CPU 或云 API。

二、四条值得关注的能力

1. 一条命令装完,自动选模型

安装器检测到硬件后会先分档。比如 8GB 显存选 Qwen3.5 9B,12GB 选 Phi-4 14B,24GB 选 Qwen3.5 27B,64GB+ 统一内存直接上 Qwen3.6 35B;Apple Silicon 这边,8GB 内存选 Phi-4 Mini,16GB 选 Qwen3.5 9B。你不用自己查参数,选型结果全部写进 .env

2. 开箱即用的"全家桶"

内置组件各司其职:Open WebUI 做聊天前端,llama-server 做推理;语音是 Whisper + Kokoro;Agent 默认 Hermes,n8n 提供 400+ 集成;知识库用 Qdrant + TEI;出图用 ComfyUI。另有 Privacy Shield 做 PII 脱敏,Dashboard 显示 GPU 与服务状态,Token Spy 追踪 token 消耗。

想做私有 RAG?Qdrant 和 embedding 已经接好。要给客服加语音机器人?Whisper + Kokoro 直接可用。设计师要本地出图?ComfyUI 自己连模型即可。

3. Bootstrap:先聊后下

大模型下载太慢是老问题。ODS 默认先拉一个约 1.5B 的小模型,1 分钟内就能聊起来;完整模型在后台继续下载,完成后自动热切换,不中断会话。不想等的话也可以用 --no-bootstrap 跳过。

4. CLI + 扩展,日常好管

服务不是写死的。每个服务都是一个 extension,放进包含 manifest.yamlcompose.yaml 的文件夹,ods enable 就接入编排。CLI 里还能切换运行模式:ods mode cloud 走云端 API,ods mode hybrid 本地为主、云兜底。换模型也方便,ods model swap T3 一条命令搞定。

三、上手:一条命令的事

执行前先确认 Docker 已在运行。Windows 需要开启 Docker Desktop 的 WSL2 backend,并使用普通 PowerShell 窗口(不要管理员权限)。

Linux / macOS 快速安装:

curl -fsSL https://install.osmantic.com/ods.sh | bash

Windows PowerShell(非管理员):

$ProgressPreference = "SilentlyContinue"
$odsSrc = Join-Path $env:TEMP ("ods-install-" + [guid]::NewGuid().ToString("N"))
$odsZip = Join-Path $odsSrc "ods-main.zip"
New-Item -ItemType Directory -Path $odsSrc | Out-Null
Invoke-WebRequest "https://github.com/Osmantic/ODS/archive/refs/heads/main.zip" -OutFile $odsZip
Expand-Archive -LiteralPath $odsZip -DestinationPath $odsSrc -Force
cd (Get-ChildItem -LiteralPath $odsSrc -Directory | Select-Object -First 1).FullName
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install.ps1

完成后访问 http://localhost:3000 开始聊天。API 默认端口:Linux Docker 暴露 11434,macOS/Windows 原生路径用 8080,Open WebUI 固定 3000。

卸载(Linux/macOS):

cd ~/ods
./ods-uninstall.sh --force

Windows 执行 .\ods.ps1 uninstall --force

没有本地 GPU? 支持云模式,用 OpenAI/Anthropic/Together 的 API 跑同样的服务:

./install.sh --cloud

端口有冲突? 环境变量可覆盖,例如把 WebUI 端口改成 9090:

WEBUI_PORT=9090 ./install.sh

手动安装(Linux/macOS):

git clone https://github.com/Osmantic/ODS.git
cd ODS
./install.sh

macOS Apple Silicon 同样走这套手动流程。

四、日常管理命令

切换模型:

ods model current        # 查看当前运行的模型
ods model list           # 列出所有可用档位
ods model swap T3        # 切换到指定档位

换新模型前可以先预下载:

./scripts/pre-download.sh --tier 3   # 切换前先下载
ods model swap T3                     # 再切换(会重启 llama-server)

已有 GGUF 文件?放到 data/models/ 后更新 .env 并重启:

ods restart llm

或者直接用 docker compose 重启 llama-server:docker compose restart llama-server

自定义扩展结构:

extensions/services/my-service/
├── manifest.yaml   # 元数据:名称、端口、健康端点、GPU 后端
└── compose.yaml    # Docker Compose 片段(自动合并进服务栈)

常用管理命令:

ods status              # 健康检查 + GPU 状态
ods list                # 所有服务及其状态
ods logs llm            # 查看日志(别名:llm、stt、tts)
ods restart [service]   # 重启单个或全部服务
ods start / stop        # 启动 / 停止整个栈
ods mode cloud          # 切换云端 API(LiteLLM)
ods mode local          # 切回本地推理
ods mode hybrid         # 本地为主、云兜底
ods enable n8n          # 启用扩展
ods disable whisper     # 停用某个服务
ods config show         # 查看 .env(密钥打码)
ods preset save gaming  # 快照当前配置
ods preset load gaming  # 恢复配置快照

小结

ODS 把"本地 AI 服务器"从口号变成了可落地的一条命令:数据留在自己机器,没有订阅,也不用担心供应商涨价或停机。项目采用 Apache 2.0 协议,当前稳定版为 v2.6.0,fork 或生产环境建议锁定 tag。官方文档覆盖快速开始、硬件指南、扩展开发,想自己跑一套本地 AI 服务的开发者,可以直接去 GitHub 仓库按硬件档位动手试试。

项目地址:https://github.com/Osmantic/ODS

复制全文 生成海报 ODS AI 部署

推荐文章

程序员茄子在线接单