跳到主要内容

什么是 ollmo

ollmo 是一个生产级 RAG(检索增强生成)平台,提供混合检索、多租户隔离与流式对话能力。

后端基于 Go + Fiber,前端基于 Next.js App Router + shadcn/ui。

核心特性

  • 混合检索 — 基于 Milvus 2.5+ 的稠密 + 稀疏向量检索,支持知识库级 Rerank 配置
  • 多租户 — MySQL、Milvus、MinIO 全链路逻辑隔离,所有表携带 tenant_id
  • 文档流水线 — 上传(拖拽、粘贴、多文件)→ 解析(MinerU / 本地解析器)→ 分块 → 向量化 → 索引,全程异步(Asynq + Redis)
  • 流式对话 — SSE 实时流式输出,带来源引用
  • 模型可配置 — 租户级管理 LLM / Embedding / Rerank 供应商,知识库可单独指定
  • Agent 画布 — 可视化编排 Agent 流水线:意图分类、检索、条件分支、LLM、直接回复
  • GraphRAG — 入库时 LLM 抽取实体与关系,查询时实体匹配增强上下文
  • 自动记忆 — 长对话自动后台摘要(异步 LLM 任务),摘要注入后续会话,实现跨对话上下文延续,支持站点级开关
  • 外部 API — API Key 鉴权的编程式访问(检索、知识库管理、流式对话)
  • 团队管理 — 邀请制成员管理,角色与配额控制(每用户每日消息配额)
  • 管理控制台 — 超级管理员用户管理、团队计划与配额、系统设置、数据分析、审计日志
  • 国际化 — 中英文界面

技术栈

选型
后端Go 1.26+ / Fiber / GORM
前端Next.js 15 (App Router) / React / shadcn-ui
数据库MySQL 8.0 (utf8mb4)
向量库Milvus 2.5+(稠密 + 稀疏混合检索)
对象存储MinIO(S3 兼容)
任务队列Asynq + Redis
文档解析MinerU(容器化,可选 GPU)+ 本地解析器
认证本地账号(邮箱 + 密码 + JWT)

架构

┌─────────────────────────────────────────────────────┐
│ Next.js Web (3001) │
└────────────────────────┬────────────────────────────┘
│ HTTP / SSE
┌────────────────────────▼────────────────────────────┐
│ Go API Server (8080) │
│ Fiber · JWT 认证 · 租户隔离 · RESTful API │
└───────┬────────────┬──────────────┬─────────────────┘
│ │ │
┌────────▼──┐ ┌──────▼──────┐ ┌───▼────────────┐
│ MySQL │ │ Redis │ │ MinIO │
│ 元数据 │ │ 任务队列 │ │ 文件存储 │
└───────────┘ └──────┬──────┘ └────────────────┘

┌────────▼────────┐
│ Asynq Worker │
│ 解析 · 向量化 │
└────────┬────────┘

┌────────▼────────┐
│ Milvus │
│ 稠密 + 稀疏检索 │
└─────────────────┘

下一步