什么是 ollmo
ollmo 是一个生产级 RAG(检索增强生成)平台,提供混合检索、多租户隔离与流式对话能力。上传文档、提出问题、拿到带出处的答案:

后端基于 Go + Fiber,前端基于 Next.js App Router + shadcn/ui。
核心特性
- 混合检索 — Milvus 稠密向量 + MySQL FULLTEXT 词法匹配,RRF 融合,支持知识库级 Rerank 配置;内置检索测试,关键词 ↔ 语义权重可调
- 多租户 — MySQL、Milvus、MinIO 全链路逻辑隔离,所有表携带
tenant_id - 文档流水线 — 上传(拖拽、粘贴、多文件)→ 解析(MinerU / 本地解析器)→ 分块 → 向量化 → 索引,全程异步(Asynq + Redis)
- 流式对话 — SSE 实时流式输出,带来源引用;Agent 开场白带来拟人化问候
- 引用溯源 — 点击引用即打开源文档并高亮命中段落:PDF 原版渲染、解析视图翻页导航、对话 + 文档并排对照
- 标注问答 — 为知识库维护人工标注的标准问答,命中即直接返回标准答案
- 自动记忆 — 长对话后台自动摘要(异步 LLM 任务),摘要注入后续会话,实现跨对话上下文延续
- 模型可配置 — 租户级管理 LLM / Embedding / Rerank 模型,知识库可单独指定;双栏弹窗选择器(左侧供应商列表、右侧模型列表)
- Agent 画布 — 可视化编排 Agent 流水线(React Flow):意图分类 → 检索 → 条件分支 → LLM → 直接回复,支持节点级调试
- 数据处理流水线画布 — 可视化入库 DAG:来源 → 解析器 → 分块器 → 向量化 → 存储
- GraphRAG — 入库时 LLM 抽取实体与关系,查询时实体匹配增强检索上下文
- 用量与费用 — 团队级 Token / 费用统计:总览、按用户、按模型与调用明细
- 可观测与可回溯 — 每次 Agent 图执行完整留痕:节点路径、耗时、分支决策全部可回放,bad case 一键溯源(见可观测与可回溯)
- 团队与权限 — 邀请制成员管理(管理员 / 成员),每用户每日消息配额,知识库私有 / 团队共享
- 管理控制台 — 用户管理、团队计划与配额(免费版 / 专业版 / 企业版)、系统设置、数据分析看板、审计日志
- 外部 API — API Key 鉴权的编程式访问(检索、知识库管理、流式对话)
- 国际化 — 中英文界面,前后端消息契约,URL 不含语言标识
技术栈
| 层 | 选型 |
|---|---|
| 后端 | 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 │
│ 稠密向量检索 │
└─────────────────┘