Caching (pamięć podręczna)
Definicja
Caching to zapisywanie wyników (np. odpowiedzi, embeddingów, fragmentów retrieval), żeby przy kolejnym podobnym pytaniu nie liczyć wszystkiego od zera.
Co to w zasadzie jest?
To jak „zapamiętanie raz znalezionej odpowiedzi”, żeby nie szukać jej ponownie. Daje:
- szybciej (mniejsze opóźnienia),
- taniej (mniej tokenów/wywołań),
- stabilniej (mniej losowości).
W AI cache może dotyczyć:
- wyników wyszukiwania,
- embeddingów,
- odpowiedzi na powtarzalne pytania,
- pośrednich kroków w agentach.
Praktyczne zastosowania (konkretne scenariusze)
Scenariusz 1: FAQ
- Cel: „Jak działa RAG?” — cache gotowej, zaakceptowanej odpowiedzi.
- Wejście: powtarzalne pytanie albo kosztowny wynik.
- Kroki: zapisz wynik -> sprawdź cache -> odśwież po czasie.
- Rezultat: szybsza i tańsza odpowiedź.
- Zabezpieczenie: czas ważności i czyszczenie cache.
Scenariusz 2: RAG
- Cel: cache embeddingów dokumentów, żeby nie przeliczać po każdej zmianie.
- Wejście: powtarzalne pytanie albo kosztowny wynik.
- Kroki: zapisz wynik -> sprawdź cache -> odśwież po czasie.
- Rezultat: szybsza i tańsza odpowiedź.
- Zabezpieczenie: czas ważności i czyszczenie cache.
Scenariusz 3: Agent
- Cel: cache wyników „lista plików w folderze”, jeśli folder się nie zmienia.
- Wejście: powtarzalne pytanie albo kosztowny wynik.
- Kroki: zapisz wynik -> sprawdź cache -> odśwież po czasie.
- Rezultat: szybsza i tańsza odpowiedź.
- Zabezpieczenie: czas ważności i czyszczenie cache.
Ryzyka i jak je ograniczać
Ryzyko 1: Przestarzałe odpowiedzi
- Ryzyko: przestarzałe odpowiedzi.
- Jak ograniczać: TTL (czas ważności) + czyszczenie cache po aktualizacji źródeł.
Ryzyko 2: Cache zawiera dane wrażliwe
- Ryzyko: cache zawiera dane wrażliwe.
- Jak ograniczać: szyfrowanie, minimalizacja danych, separacja per tenant.
Ryzyko 3: „mieszanie” użytkowników (cross-tenant)
- Ryzyko: „mieszanie” użytkowników (cross-tenant).
- Jak ograniczać: klucze cache uwzględniające tenant i uprawnienia.
Mapa powiązań
- Tenant → cache musi być odseparowany.
- Token → cache pomaga ograniczać koszty tokenów.
- RAG / Embedding → cache embeddingów i wyników.
- DLP → dane w cache też podlegają ochronie.
- Mini-przepływ:
Zapytanie → (cache hit?) → odpowiedź / oblicz i zapisz
Diagram
flowchart LR
A[Zapytanie]
B[Sprawdź cache]
C[Cache hit]
D[Oblicz wynik]
E[Zapisz i zwróć]
A --> B
B --> C
B --> D --> E
Diagram pokazuje, że system najpierw sprawdza zapisany wynik, a dopiero gdy go nie ma, liczy odpowiedź od zera.