开源项目 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 数据库含 pgvectorRedis 缓存服务可选 Nginx 配置模板典型部署命令docker-compose up -d扩展性与定制系统设计强调模块化新增 AI 提供商只需扩展配置映射支持自定义系统提示词模板文件存储支持本地磁盘或 S3 兼容服务前端主题可通过 TailwindCSS 配置修改适用场景企业内网知识管理开发者个人工作台教育机构教学平台NAS 用户家庭智能中心该项目持续迭代更新社区提供问题跟踪和功能建议渠道适合需要私有化 AI 解决方案的技术团队或个人开发者。
开源项目推荐: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 数据库含 pgvectorRedis 缓存服务可选 Nginx 配置模板典型部署命令docker-compose up -d扩展性与定制系统设计强调模块化新增 AI 提供商只需扩展配置映射支持自定义系统提示词模板文件存储支持本地磁盘或 S3 兼容服务前端主题可通过 TailwindCSS 配置修改适用场景企业内网知识管理开发者个人工作台教育机构教学平台NAS 用户家庭智能中心该项目持续迭代更新社区提供问题跟踪和功能建议渠道适合需要私有化 AI 解决方案的技术团队或个人开发者。