# OpenVitamin
**Repository Path**: ai-tools_4/OpenVitamin
## Basic Information
- **Project Name**: OpenVitamin
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-21
- **Last Updated**: 2026-04-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenVitamin 大模型与智能体应用平台
> 本地优先的 AI 平台,统一承载模型推理、图片生成、工作流编排与智能体能力组合。
[English README](README_EN.md)
## 项目简介
**本地优先、隐私优先**:面向个人与团队的可私有部署推理平台,统一承载模型推理、工作流执行与智能体能力编排,强调可观测、可审计、可扩展。
**技术架构**:采用 **Vue 前端 + FastAPI 推理网关**。网关统一接入多种推理后端(如 Ollama、LM Studio、本地 GGUF、OpenAI 兼容 API 等),并支持与 OpenClaw 进行后端集成;前端不直连模型与工具,所有调用通过网关统一出口。
**分层角色**:
- **Web UI**:控制台,负责界面与交互
- **推理网关**:中枢,负责模型路由、请求编排与执行策略
- **Agent / Plugin**:能力模块,以插件形式扩展(Skill、Tool、RAG、记忆等)
## 亮点
- 统一推理网关,覆盖 `LLM`、`VLM`、`Embedding`、`ASR` 与 `Image Generation`
- 本地模型与云端模型统一纳入一个控制面管理
- 文生图工作台支持异步任务、历史记录、缩略图、warmup 与取消
- 智能体系统支持 `Intent Rules`、`Skill Discovery`、`Tool Calling` 与 `Direct Tool Result`
- Workflow Control Plane 支持版本化、执行历史与分支 / 循环治理
- 内置知识库、RAG、记忆、日志、设置与备份能力
- 支持 OpenClaw 后端集成,可作为统一模型入口接入现有 Agent 运行环境
## 截图





## 适用场景
- 统一管理本地模型与云端模型
- 搭建多模态聊天与视觉能力
- 用 Agent + Skill + Tool 组织能力
- 用 Workflow 编排多步 AI 流程
- 管理知识库、RAG 与长期记忆
- 运行本地文生图模型并管理生成任务
- 将 OpenClaw 作为上游模型后端接入统一推理网关
## 核心能力
- 统一推理 API:LLM / VLM / Embedding / ASR / Image Generation
- 多后端模型管理:本地与云端统一接入
- 多模态聊天:文本、图像、视觉感知
- 文生图工作台:异步任务、历史、缩略图、取消、warmup、详情页
- Agent 系统:Plan-Based 执行、Skill 语义发现、Intent Rules、Tool 调用
- Workflow Control Plane:版本化、执行记录、节点级状态、分支/循环治理
- 知识库与 RAG
- 备份与恢复:数据库备份、`model.json` 备份
- 系统设置、日志、监控与运行时治理
## 文生图支持
- `Qwen Image`:MLX 路径
- `FLUX / FLUX.2 / SDXL`:Diffusers 路径
当前文生图控制面已支持:
- `POST /api/v1/images/generate`
- job 查询 / 取消 / 删除
- 原图下载 / 缩略图
- warmup
- 历史记录与详情页
## 技术栈
**前端**
- Vue 3
- TypeScript
- Vite
- Tailwind CSS
**后端**
- Python 3.11+
- FastAPI
- SQLAlchemy / ORM 抽象(默认使用 SQLite,可扩展至 MySQL / PostgreSQL)
**运行时 / 模型侧**
- llama.cpp
- Ollama
- OpenAI-compatible API
- OpenClaw backend integration
- Torch
- MLX / mflux
- Diffusers
说明:
- 开源版本当前默认使用 SQLite
- 数据层按 ORM 抽象设计,后续可扩展到 MySQL / PostgreSQL 等关系型后端
## 系统架构
核心组件:
- Web UI:控制台
- Inference Gateway:统一推理入口
- Runtime Stabilization:模型实例、并发队列、资源治理
- Agent System:Planner / Skill / Tool / RAG
- Workflow Control Plane:定义、版本、执行、治理
- Image Generation Control Plane:图片任务、历史、文件落盘、warmup
详细设计见:
- [docs/architecture/ARCHITECTURE.md](docs/architecture/ARCHITECTURE.md)
- [docs/architecture/AGENT_ARCHITECTURE.md](docs/architecture/AGENT_ARCHITECTURE.md)
### 整体架构
```mermaid
flowchart LR
UI["Web UI
Vue 3 + Vite"] --> API["Inference Gateway
FastAPI"]
API --> MODELS["Model Management"]
API --> AGENTS["Agent System"]
API --> WF["Workflow Control Plane"]
API --> IMG["Image Generation Control Plane"]
API --> KB["Knowledge Base / RAG"]
API --> SYS["Settings / Logs / Backup"]
MODELS --> RT["Runtime Layer
llama.cpp / Ollama / Torch / MLX / Diffusers / OpenAI-compatible"]
AGENTS --> TOOLS["Skill / Tool / Plugin"]
WF --> KERNEL["Execution Kernel"]
IMG --> RT
KB --> DATA["ORM / Vector Search / Files"]
KERNEL --> DATA
MODELS --> DATA
AGENTS --> DATA
SYS --> DATA
```
### 推理路径
```mermaid
flowchart LR
USER["User Request"] --> API["FastAPI API"]
API --> GW["Inference Gateway"]
GW --> ROUTER["Model Router"]
ROUTER --> ADAPTER["Provider Adapter"]
ADAPTER --> STAB["Runtime Stabilization"]
STAB --> QUEUE["Inference Queue"]
QUEUE --> RUNTIME["Model Runtime"]
RUNTIME --> RESP["Response / Stream"]
```
### 智能体执行路径
```mermaid
flowchart TD
USER["User Input"] --> AGENT["Agent Runtime"]
AGENT --> PLANNER["Planner"]
PLANNER --> RULES["Intent Rules"]
PLANNER --> DISCOVERY["Skill Discovery"]
PLANNER --> PLAN["Plan / Tool Decision"]
PLAN --> SKILL["Skill Executor"]
SKILL --> TOOL["Tool Registry"]
SKILL --> LLM["Inference Gateway"]
TOOL --> IMG["Image Tool"]
TOOL --> RAG["RAG Tool"]
TOOL --> FILE["File / HTTP / Python / SQL"]
IMG --> API["Image Generation API"]
```
### 文生图控制面
```mermaid
flowchart TD
UI["/images"] --> API["/api/v1/images/*"]
API --> JOB["Job Manager"]
JOB --> QUEUE["Per-model Queue"]
QUEUE --> SELECT["Model Selector"]
SELECT --> RT1["MLX Runtime
Qwen Image"]
SELECT --> RT2["Diffusers Runtime
FLUX / SDXL"]
JOB --> STORE["Job Store / History"]
JOB --> FILES["Generated Images / Thumbnails"]
STORE --> DB["ORM-backed Store"]
FILES --> DB
```
## 快速开始
### 环境要求
- Python 3.11+
- Node.js 18+
- Conda
### 1. 创建并激活 Conda 环境
```bash
conda create -n ai-inference-platform python=3.11 -y
conda activate ai-inference-platform
```
### 2. 安装后端依赖
```bash
cd backend
pip install -r requirements.txt
cd ..
```
### 3. 安装前端依赖
```bash
cd frontend
npm install
cd ..
```
### 4. 启动服务
```bash
./run-all.sh
```
或分别启动:
```bash
./run-backend.sh
./run-frontend.sh
```
默认地址:
- 前端:[http://localhost:5173](http://localhost:5173)
- 后端:[http://localhost:8000](http://localhost:8000)
## 快速体验
建议按以下路径快速体验:
1. 打开 `/models`,确认模型已扫描或已接入云端模型
2. 打开 `/chat`,验证基础聊天或多模态聊天
3. 打开 `/images`,提交一次文生图任务
4. 打开 `/agents`,创建并运行一个工具型 Agent
5. 打开 `/workflow`,执行一个简单工作流
## 已验证环境
当前项目已在以下环境中验证可运行:
- macOS + Apple Silicon
- Ubuntu Linux
- Conda 管理 Python 环境
- 本地模型目录按 `model.json` 规范组织
运行说明:
- macOS + Apple Silicon 下,`MLX` 与 `MPS` / 本地大模型会共享统一内存
- Ubuntu 下可正常运行,文生图与推理路径更适合使用 `Torch / Diffusers` 等 Linux 常见运行时
- 同时加载大 LLM 与大文生图模型时,仍可能出现显存或内存压力
- 平台已实现图片模型切换时的资源回收,但仍建议根据机器资源选择合适模型规模
## 主要页面
- `/chat`:聊天与多模态对话
- `/images`:文生图工作台
- `/images/history`:图片任务历史
- `/agents`:智能体管理与运行
- `/workflow`:工作流列表、编辑、运行
- `/models`:模型管理
- `/knowledge`:知识库
- `/settings`:系统设置
- `/logs`:系统日志
## 项目结构
详细目录与架构说明见 `docs/`,这里仅保留后端高层概览。
后端目录概览:
```text
backend/ # 后端服务根目录(FastAPI + 核心引擎)
├── api/ # API 路由层(chat / vlm / asr / images / agents / workflows / system ...)
├── middleware/ # 请求中间件(用户上下文、通用拦截)
├── core/ # 核心业务层
│ ├── agent_runtime/ # Agent 运行时(legacy / plan_based)
│ ├── workflows/ # Workflow Control Plane
│ │ ├── models/ # Workflow / Version / Execution 领域模型
│ │ ├── repository/ # 工作流 ORM 仓储层
│ │ ├── services/ # 工作流应用服务
│ │ ├── runtime/ # 工作流运行时与图适配
│ │ └── governance/ # 并发、队列、配额治理
│ ├── inference/ # Inference Gateway
│ │ ├── client/ # 统一推理客户端入口
│ │ ├── gateway/ # 推理网关编排中枢
│ │ ├── router/ # 模型路由与选择
│ │ ├── providers/ # Provider 适配层
│ │ ├── registry/ # 模型别名与注册索引
│ │ ├── models/ # 推理请求 / 响应模型
│ │ ├── stats/ # 推理指标与统计
│ │ └── streaming/ # 流式输出抽象
│ ├── runtime/ # Runtime Stabilization(实例管理 / 并发队列 / 运行指标)
│ ├── runtimes/ # 各推理后端运行时(llama.cpp / ollama / torch / mlx / diffusers / openai-compatible)
│ ├── models/ # 模型扫描、注册、选择、Manifest 解析
│ ├── skills/ # Skill 注册、发现、执行
│ ├── tools/ # Tool 抽象与实现
│ ├── plugins/ # 插件体系(builtin / rag / skills / tools)
│ ├── data/ # ORM、DB 会话、向量检索抽象
│ ├── conversation/ # 会话历史与上下文管理
│ ├── memory/ # 长期记忆模块
│ ├── knowledge/ # 知识库、切分、索引与状态管理
│ ├── rag/ # RAG 检索与 trace 相关
│ ├── backup/ # 数据库与 model.json 备份模块
│ ├── system/ # 系统设置与运行参数
│ ├── plan_contract/ # Plan Contract 模型与校验
│ └── utils/ # 核心层通用工具
├── execution_kernel/ # DAG 执行引擎
│ ├── engine/ # 调度器、执行器、状态机
│ ├── models/ # 图定义与运行时模型
│ ├── persistence/ # 图与执行状态持久化
│ ├── events/ # 事件存储与事件类型
│ ├── replay/ # 回放与状态重建
│ ├── optimization/ # 优化策略与快照
│ ├── analytics/ # 执行分析与效果统计
│ └── cache/ # 节点级缓存
├── alembic/ # 数据库迁移
├── config/ # 配置定义(settings)
├── data/ # 运行数据目录(platform.db、workspaces、backups、generated_images ...)
├── log/ # 结构化日志模块
├── scripts/ # 维护与运维脚本
├── tests/ # 后端测试
└── utils/ # 辅助工具
```
## 文档索引
建议按用途阅读:
**快速上手**
- [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
- [docs/local_model/LOCAL_MODEL_DEPLOYMENT.md](docs/local_model/LOCAL_MODEL_DEPLOYMENT.md)
- [docs/api/API_DOCUMENTATION.md](docs/api/API_DOCUMENTATION.md)
- [docs/OPENCLAW_BACKEND_CONFIG.md](docs/OPENCLAW_BACKEND_CONFIG.md)
**架构设计**
- [docs/architecture/ARCHITECTURE.md](docs/architecture/ARCHITECTURE.md)
- [docs/architecture/AGENT_ARCHITECTURE.md](docs/architecture/AGENT_ARCHITECTURE.md)
- [docs/DEVELOPMENT_STATUS.md](docs/DEVELOPMENT_STATUS.md)
**开发参考**
- [AGENTS.md](AGENTS.md)
- [docs/DEVELOPMENT_GUIDE.md](docs/DEVELOPMENT_GUIDE.md)
## 已知限制
- Apple Silicon 上,本地大 LLM 与大文生图模型会争夺统一内存
- 图片模型首次加载和首次生成可能较慢
- 某些高级 Agent / Workflow 能力仍在持续演进中
- 不同本地模型的目录规范与运行时依赖并不完全相同,需要按 `model.json` 配置
- `开源版本会落后商业版本2-4周,或者有部分功能会有限制,需要商业版可以联系我们`
## 联系方式
wechat:fengzhizi715
Email:fengzhizi715@126.com