Skip to main content

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

LayerChoice
BackendGo 1.26+ / Fiber / GORM
FrontendNext.js 15 (App Router) / React / shadcn-ui
DatabaseMySQL 8.0 (utf8mb4)
Vector DBMilvus 2.5+ (dense + sparse hybrid retrieval)
Object StorageMinIO (S3 compatible)
Task QueueAsynq + Redis
Document ParserMinerU (containerized, optional GPU) + local fallback
AuthLocal 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