What is ollmo
ollmo is a production-grade RAG (Retrieval-Augmented Generation) platform with hybrid retrieval, multi-tenancy, and streaming chat.
Backend: Go + Fiber. Frontend: Next.js App Router + shadcn/ui.
Core Features
- Hybrid Retrieval — Dense + sparse vector search on Milvus 2.5+, with KB-level rerank configuration
- Multi-Tenancy — Logical isolation across MySQL, Milvus, and MinIO; every table carries
tenant_id - Document Pipeline — Upload (drag & drop, paste, multi-file) → parse (MinerU / local parser) → chunk → embed → index, fully async (Asynq + Redis)
- Streaming Chat — Real-time SSE streaming with source citations
- Configurable Models — Tenant-level LLM / Embedding / Rerank provider management, with per-KB overrides
- Agent Canvas — Visual agent pipeline: intent classification, retrieval, condition, LLM, direct reply
- GraphRAG — LLM-powered entity & relation extraction at ingestion; entity matching enriches retrieval context
- Auto-Memory — Long conversations are automatically summarized in the background (async LLM task); summaries are injected into later sessions for cross-conversation continuity. Toggleable site-wide
- External API — API-key authenticated programmatic access (search, KB management, streaming chat)
- Team Management — Invitation-based membership with roles and quotas (per-user daily message quota)
- Admin Console — Super-admin user management, tenant plans & quotas, system settings, analytics, audit logging
- Internationalization — Chinese / English UI
Tech Stack
| Layer | Choice |
|---|---|
| Backend | Go 1.26+ / Fiber / GORM |
| Frontend | Next.js 15 (App Router) / React / shadcn-ui |
| Database | MySQL 8.0 (utf8mb4) |
| Vector DB | Milvus 2.5+ (dense + sparse hybrid retrieval) |
| Object Storage | MinIO (S3 compatible) |
| Task Queue | Asynq + Redis |
| Document Parser | MinerU (containerized, optional GPU) + local fallback |
| Auth | Local account (email + password + JWT) |
Architecture
┌─────────────────────────────────────────────────────┐
│ Next.js Web (3001) │
└────────────────────────┬────────────────────────────┘
│ HTTP / SSE
┌────────────────────────▼────────────────────────────┐
│ Go API Server (8080) │
│ Fiber · JWT auth · Tenant isolation · RESTful API │
└───────┬────────────┬──────────────┬─────────────────┘
│ │ │
┌────────▼──┐ ┌──────▼──────┐ ┌───▼────────────┐
│ MySQL │ │ Redis │ │ MinIO │
│ metadata │ │ task queue │ │ file storage │
└───────────┘ └──────┬──────┘ └────────────────┘
│
┌────────▼────────┐
│ Asynq Worker │
│ parse · embed │
└────────┬────────┘
│
┌────────▼────────┐
│ Milvus │
│ dense + sparse │
└─────────────────┘
Next Steps
- Quick Start — Up and running in 5 minutes
- Docker Deployment — Production deployment
- External API — Programmatic access