开源项目推荐:ORIGIN AI Workspace —— 一键部署你的私有 AI 工作站
开源项目 ORIGIN AI Workspace 详解
项目背景与定位
ORIGIN AI Workspace 是一款面向开发者、学生及 NAS 用户的自托管 AI 工作空间解决方案。其核心目标是解决云端 AI 服务的隐私泄露、订阅成本高、定制性差等问题,通过私有化部署实现数据自主可控。
技术架构
- 前端:基于 Next.js 15 + React 19 构建,采用 TypeScript 开发,界面使用 TailwindCSS 实现响应式设计
- 后端:Python 3.11+ 配合 FastAPI 框架,数据库层使用 PostgreSQL 16(含 pgvector 扩展)和 Redis 7
- 部署方案:提供 Docker Compose 编排文件,支持 Nginx 反向代理配置
核心功能实现
多模型对话系统
采用 OpenAI 兼容接口规范,支持以下特性:
- 流式输出处理:基于 Server-Sent Events 实现实时响应
- 多厂商适配:通过抽象层统一处理不同模型提供商的 API 差异
- 会话管理:每个对话独立保存参数配置和历史记录
代码示例展示流式处理逻辑:
const reader = response.body.getReader(); const decoder = new TextDecoder(); let buffer = ""; while (true) { const { done, value } = await reader.read(); if (done) break; buffer += decoder.decode(value, { stream: true }); // 事件处理逻辑 }安全认证机制
- JWT 令牌认证配合 HttpOnly Cookie
- 密码存储使用 bcrypt 哈希算法
- 启动时自动检测弱密钥配置
- API 访问频率限制(默认 120 次/分钟)
安全检测代码片段:
UNSAFE_JWT_SECRET_MARKERS = { "change-me", "example-secret", "default-secret" } if any(marker in normalized_secret for marker in UNSAFE_JWT_SECRET_MARKERS): raise ValueError("Unsafe JWT secret detected.")RAG 知识库实现
文档处理流程包含:
- 文件上传与格式校验
- 文本提取与清洗
- 智能分块处理(1200 字符块大小 + 160 字符重叠)
- 向量嵌入存储(支持 OpenAI 或本地方案)
- 语义检索与结果注入
文本分块器实现:
class TextChunker: def __init__(self, chunk_size: int = 1200, overlap: int = 160): self.chunk_size = chunk_size self.overlap = overlap def split(self, text: str) -> list[str]: # 实现分块逻辑部署与使用
项目提供完整的 Docker Compose 配置文件,包含:
- 前端 Web 服务
- 后端 API 服务
- PostgreSQL 数据库(含 pgvector)
- Redis 缓存服务
- 可选 Nginx 配置模板
典型部署命令:
docker-compose up -d扩展性与定制
系统设计强调模块化:
- 新增 AI 提供商只需扩展配置映射
- 支持自定义系统提示词模板
- 文件存储支持本地磁盘或 S3 兼容服务
- 前端主题可通过 TailwindCSS 配置修改
适用场景
- 企业内网知识管理
- 开发者个人工作台
- 教育机构教学平台
- NAS 用户家庭智能中心
该项目持续迭代更新,社区提供问题跟踪和功能建议渠道,适合需要私有化 AI 解决方案的技术团队或个人开发者。
