UniAI 是基于 CoAI 深度二次开发的全栈 AIGC 平台,定位为“可商用的多模型聚合 + 用户端聊天应用 + 管理后台 + OpenAI 兼容 API 网关”。
- 面向站长和团队:统一管理多家模型供应商与计费策略。
- 面向终端用户:提供完整聊天、预设、翻译、分享、订阅等前台体验。
- 面向开发者:提供 OpenAI 兼容接口,便于已有客户端快速接入。
- 多模型统一接入:OpenAI、Claude、Gemini、Midjourney、DeepSeek、Azure OpenAI 等。
- OpenAI 兼容中转:支持
/v1/chat/completions、/v1/images/generations、/v1/models等。 - 渠道调度与负载:优先级、权重、失败重试、模型映射、分组可用性控制。
- 会话增强:会话分享、会话文件夹、拖拽排序、时间轴收藏(Starred Timeline)。
- 翻译工作台:独立
/translate页面,支持模型翻译、历史记录、可配置系统提示词。 - Mini Apps 入口:
/apps聚合扩展工具入口。 - 管理后台:用户管理、渠道管理、订阅管理、公告广播、日志与分析仪表盘。
- 计费体系:点数计费 + 订阅计划并存。
- 文件解析能力:可对接
blob-service处理 PDF/Office/图片/OCR/音频等。 - 多端支持:Web、PWA,保留 Tauri 桌面端工程。
说明:以下内容根据仓库内
dev-notes.md与development-log-2026-03-03.md汇总,聚焦本项目二开阶段的新增与重构能力。
| 能力维度 | CoAI 基线体验 | UniAI 新增/强化 |
|---|---|---|
| 首页样式与入口 | 以单一对话式首页为主 | 新增双首页模式:chat(底部输入)+ default(中置输入),并支持设置项 homepage_mode 持久化切换 |
| 预设(Mask)编辑器 | 预设编辑能力较轻量 | 重构为多 Tab 编辑器(模型设置 / 提示词 / 预设对话),支持温度、Top-P、Max Tokens、History、Stream 等参数覆盖 |
| 系统提示词链路 | 提示词与上下文同步关系弱 | description 与 context[0].system 双向同步,保证编辑器展示与真实发送上下文一致 |
| 预设头像能力 | 主要是 Emoji 头像 | 新增预设头像图片上传 + 1:1 圆形裁剪(512x512),并让 Emoji 组件兼容 URL/attachment/blob/data URI |
| 会话组织能力 | 基础会话列表管理 | 新增“时间轴导航 + 收藏消息 + j/k 键盘跳转 + 右侧浮动面板”能力 |
| 文件夹体系 | 文件夹交互与操作深度有限 | 新增完整文件夹 API + 前端树形管理,支持创建/重命名/删除/改色/拖拽移入移出/排序修复/高亮反馈/状态持久化 |
| 预设与文件夹联动 | 预设与会话归档关联较弱 | 新增 Preset-as-Folder:点击“使用预设”自动创建或复用同名文件夹,并在会话升级后自动落库归档 |
| 追问建议能力 | 无独立异步追问链路 | 新增 Follow-up Questions:主回复后异步生成追问,通过 WebSocket 下发并注入对应消息卡片 |
| 自动标题稳定性 | 标题任务在多模型网关下存在边界问题 | 修复用户设置持久化、模型路由参数、Gemini 网关兼容、失败回退与“New Chat 闪回”问题,流程收敛为“首句截取 -> AI 标题” |
| 消息操作交互 | 操作入口位置与显隐策略偏传统 | 操作栏从头像区迁移到消息内容下方,支持“最新消息常显 + 历史悬停显隐 + 占位防跳动”,并区分用户/AI操作集合 |
| 工程稳定性 | 开发期存在部分控制台噪音与构建摩擦 | 清理 SW/Ref/KaTeX/订阅相关报错,增强 Vite 代理与 .air.toml 监听策略,补齐 TS 类型问题并完成 DnD 迁移(react-beautiful-dnd -> dnd-kit) |
- 预设链路稳定性:修复 preflight 无限转圈、条目闪烁、emoji/名称丢失、刷新后状态恢复等问题,并新增
clientKey与本地持久化恢复策略。 - 预设市场体验:所有预设卡片统一三点菜单能力,内置预设支持“复制并编辑”,自定义预设支持快速编辑与删除。
- 文件夹 UX 补全:展开折叠动效、拖拽悬停虚线高亮、非法操作抖动反馈、颜色选择器、重命名保存/取消按钮、操作 Toast、多语言文案补齐。
- 侧栏体验升级:历史分组(Today/Yesterday/7 days/30 days/月分组)、懒加载、折叠状态持久化、侧栏宽度拖拽、移动端边缘手势开关、快捷键增强。
- 前端工程与联调:修复
globals.less处理问题、bootstrap重复初始化、代理直连缺口、TS 配置引用问题与若干页面类型冲突。 - 后端兼容与容错:补齐用户设置落库路径、订阅分支返回、自动标题回退策略、接口返回空列表语义统一(
[]而非null)。
- 前端:React 18 + TypeScript + Vite + Redux Toolkit + Tailwind + Radix UI
- 后端:Go + Gin + MySQL + Redis
- 通信:REST + SSE + WebSocket
- Go
1.20+ - Node.js
18+ - pnpm
8+ - MySQL
5.7+(或 8.x) - Redis
6+
在项目根目录准备配置文件:
cp config.example.yaml config.yaml至少确认以下配置可连接:
mysql:
host: localhost
port: 3306
user: root
password: your-password
db: chatnio
redis:
host: localhost
port: 6379开发模式推荐:
serve_static: false
server:
port: 8094go mod tidy
go run .或使用热更新:
aircd app
pnpm install
pnpm dev默认访问地址:
- 前端:
http://localhost:5173 - 后端:
http://localhost:8094
当数据库为空时,系统会自动创建:
- 用户名:
root - 密码:
chatnio123456
首次登录后请立即修改密码。
cd blob-service
pip install -r requirements.txt
uvicorn main:app --port 18432然后在系统设置中把 Blob 地址配置为对应服务地址。
仓库提供 start-dev.bat,会尝试:
- 启动 Docker 容器
coai-dev-mysql、coai-dev-redis - 启动 Blob Service
- 启动后端
air - 启动前端
pnpm dev
如果你本地容器名不同,请先修改脚本中的容器名。
# 构建前端
cd app
pnpm install
pnpm build
# 构建后端
cd ..
go build -o uniai
# 运行
./uniai建议通过环境变量覆盖生产配置(如 MYSQL_HOST、REDIS_HOST、SECRET、SERVE_STATIC)。
仓库包含 docker-compose.yaml / docker-compose.stable.yaml,可快速拉起 MySQL、Redis 和镜像服务。
注意:Compose 默认镜像为上游 programzmh/chatnio,如果你要部署 UniAI 的最新二开代码,请改为你自己的镜像。
后端会根据 serve_static 决定路由前缀:
serve_static: true:接口前缀为/api(例如/api/login、/api/v1/models)serve_static: false:接口无/api前缀(例如/login、/v1/models)
- 认证:
POST /login、POST /register、GET /userinfo - 对话:
GET /chat(WebSocket) - OpenAI 兼容:
POST /v1/chat/completions、POST /v1/images/generations、GET /v1/models - 会话管理:
/conversation/list、/conversation/share、/conversation/folders、/conversation/move - 管理后台:
/admin/user/*、/admin/analytics/*、/admin/logger/*
app/ 前端工程
adapter/ 模型适配层
auth/ 鉴权与计费
channel/ 渠道调度与路由策略
manager/ 对话与模型业务入口
manager/conversation/ 会话、分享、收藏、文件夹
admin/ 后台管理接口
addition/ 扩展功能(搜索/生成等)
blob-service/ 文件解析服务(可选)
config.example.yaml 配置模板
main.go 服务入口
- 品牌改造:优先修改
app/src/conf/env.ts中默认appName等站点配置。 - 新模型接入:在
adapter/新增厂商适配并在路由/分发处注册。 - 计费策略改造:重点看
auth/quota.go、manager/chat.go。 - 前端功能扩展:重点看
app/src/routes、app/src/components、app/src/store。
- 上游项目:CoAI / ChatNio
- 开源协议:Apache-2.0
基于开源协议进行二次开发时,请保留必要的版权与协议声明。
