Plug. Sync. Serve.
Ingesta, chunk, embed, index y serve detrás de REST + MCP. Self-hosted, MIT, sin telemetría. Tú traes el LLM.
$ git clone github.com/rlabs-cl/akopia
$ cp .env.example .env
$ cp examples/akopia.yaml.example \
akopia.yaml
$ docker compose up --build
$ curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/v1/search/semantic \
-d '{"query":"retrieval","top_k":5}'
# → {"results":[...]}Capa de retrieval para RAG, no un producto end-user. Ingesta + chunk + embed + index + serve, detrás de un REST y un MCP server. Tú traes el LLM.
Self-hosted por diseño. docker compose up desde el clone a la primera query en 5 minutos. MIT, sin SaaS, sin telemetría, sin vendor lock-in.
Hecho para developers que necesitan control de su stack de retrieval — no un chat app más.
SourceAdapter, ContentExtractor y EmbedderBackend como Python Protocols. Publica un plugin con pip entry points, sin fork.
Servidor MCP con bearer auth + JSON-RPC. Claude Desktop, Claude Code, Cursor y Continue listos con un snippet de `mcp.json`.
`max_age_days` como filtro duro + `freshness_boost` como rerank suave, dentro del pipeline. No es post-filter del cliente.
Lexical (Meilisearch) + semantic (Qdrant) detrás de un solo endpoint REST. Elige por query, combina si quieres.
Un solo docker compose up --build. Corre en laptops (8 GB RAM), homelabs o single-host prod. Detalles de sizing en docs/sizing.md.