RAG — lokalny retrieval#
RAG (Retrieval-Augmented Generation) w Memphis jest całkowicie lokalny — embeddings, indeks, zapytania, wszystko na Twoim sprzęcie.
Co jest indeksowane#
- Chainy (journal, soul, ops) — pełna historia agenta.
- Dokumenty dodane przez
memphis rag add <path>. - Runbooki, notatki, PDF-y — cokolwiek jawnie wrzucisz.
Nic nie jest indeksowane bez Twojej decyzji. Memphis nie patroluje Twojego dysku.
Stack#
| Komponent | Implementacja |
|---|---|
| Embedding model | lokalny — nomic-embed-text przez Ollama (default) |
| Vector store | Qdrant lokalnie, embedded mode |
| Reranker | opcjonalny — bge-reranker-v2-m3 lokalnie |
| Chunking | semantic + token-window fallback |
Operacje#
memphis rag add ./docs # indeksuj katalog
memphis rag add --tag personal ~/notes
memphis rag query "co pisałem o vaulcie"
memphis rag stats # liczniki per-kolekcja
memphis rag reindex <collection>
Prywatność zapytań#
Zapytanie RAG → embedding lokalnie → Qdrant lokalnie → kontekst → dopiero teraz LLM może być cloudowy (lub lokalny).
Jeśli używasz cloudowego LLM, kontekst retrievowany z RAG idzie do providera jako część promptu. Dla danych wrażliwych:
- ustaw soul policy
sensitive_corpus: local_only, - Memphis wtedy force'uje lokalny LLM (Ollama) dla zapytań z tego korpusu,
- audytowane przez chain
ops(eventrag.policy.local_only_enforced).
Wspólny korpus vs oddzielne#
Każdy chain/dokument może mieć własny collection w Qdrant. Domyślnie:
journal— twoje rozmowy z agentem,soul— tożsamość, styl,docs:*— dodawane dokumenty per-tag,code:*— indeksowane repozytoria.
Zapytanie może być ograniczone do kolekcji (--collection docs:personal) albo federacyjne (domyślnie ranked cross-collection).