Evo.ai
Evo.ai is EvoPlatform's Retrieval-Augmented Generation (RAG) layer. Point it at your data, plug in the model of your choice — a cloud frontier model or a local/offline one — and get a tenant-isolated assistant that answers from your data, with citations, and refuses questions your records don't cover.
It is an API-first service: a FastAPI backend with a built-in chat UI at /ui, Qdrant for vectors, and a pluggable LLM/embedding layer. Other Evomedia products call it with a tenant JWT; the evo.ehs connector and its "Ask AI" panel are the first consumers.
What it does
- Answers only from your data. A grounding policy and a relevance gate keep the assistant on-topic: off-topic questions are refused before any LLM call, and every answer cites the source chunks it used.
- Pluggable models, per tenant. Run fully local with Ollama, or point a tenant at any LiteLLM provider (Anthropic, OpenAI, Gemini, Mistral, Groq, Azure, Bedrock, …). Provider API keys are encrypted at rest.
- Hybrid retrieval. Dense vectors plus BM25 sparse vectors with fusion, which materially improves recall on IDs, names, and codes over dense-only.
- Strict multi-tenant isolation. A physical Qdrant collection per (tenant, collection) and a
tenant_idmetadata filter on every query, with the tenant id taken only from verified JWT claims. - Source connectors. Sync a Confluence space, a Jira project, or a evo.ehs site into a collection, with incremental sync and deletion handling.
- Structured analytics. For evo.ehs tenants, aggregate questions ("how many permits are open?") are answered by a validated, read-only SELECT over tenant-scoped views — the kind of counting/ranking question that top-k chunk retrieval can't answer.
How the pieces fit
| Layer | What it is |
|---|---|
| API | FastAPI app — config, ingest, query, sources, and admin routers |
| Chat UI | Served at /ui; talks to /query, renders cited chunks with scores |
| Vector store | Qdrant — one collection per (tenant, collection), hybrid dense + sparse |
| Models | Ollama (local) or any LiteLLM provider, per tenant, for both LLM and embeddings |
| Metadata store | SQLite — tenant model config, collections, doc registry, sources, service keys, tenant links |
| Auth | JWT verified against EvoPlatform's JWKS; tenant_id from claims |
Where to go next
- Getting started — run the dev stack and ask your first question.
- Configuration — settings, models, embeddings, retrieval, and guardrails.
- Ingesting data — files, structured records, document identity, and the watched-folder agent.
- Querying — the query endpoint, citations, multi-turn, and the relevance gate.
- Connectors — Confluence, Jira, and the evo.ehs connector with site auto-discovery and analytics.
- Multi-tenancy & security — isolation, auth, service keys, tenant links, and encryption.
- API reference — every endpoint.
- Operations — deployment and the quality gates.