Buforowanie promptów i wyników (Anthropic, Vertex)
Buforowanie promptów w Anthropic i Vertex zmniejsza koszt danych wejściowych dziesięciokrotnie przy długich, powtarzających się promptach systemowych.
Buforowanie promptów i wyników (Anthropic, Vertex) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Dlaczego używać cache?
Wiele wywołań agenta jest niemal identycznych: ten sam prompt systemowy, te same przykłady few-shot, ale inne dane wejściowe użytkownika. Bez cache przy każdym wywołaniu statyczne części są przetwarzane ponownie.
Cache może zmniejszyć koszt tokenów wejściowych dziesięciokrotnie.
Dwa rodzaje cache
- Cache promptów po stronie serwera — dostawca przechowuje stan KV modelu dla powtarzających się prefiksów
- Cache wyników po stronie klienta — kod przechowuje pełne odpowiedzi dla identycznych danych wejściowych
Cache promptów Anthropic
Proszę oznaczać części możliwe do zapisania w cache za pomocą cache_control:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
system=[
{'type': 'text', 'text': LONG_SYSTEM_PROMPT, 'cache_control': {'type': 'ephemeral'}}
],
messages=[{'role': 'user', 'content': user_input}]
)
# 1st call: full price
# 2nd call within 5min: 10% of input costWspółczynnik trafień cache
Proszę sprawdzić obiekt usage w odpowiedzi:
response.usage.cache_creation_input_tokens # tokens cached this call
response.usage.cache_read_input_tokens # tokens read from cacheCo zapisywać w cache
- Prompty systemowe zawierające ponad 1 tys. tokenów
- Definicje narzędzi
- Przykłady few-shot
- Kontekst RAG współdzielony między zapytaniami — rzadko
Gdzie umieszczać znaczniki cache
Instrukcja cache_control musi znajdować się w OSTATNIM statycznym bloku. Wszystko przed znacznikiem jest zapisywane w cache. Stabilną treść należy umieścić na początku, a zmienną — na końcu.
Cache promptów OpenAI
OpenAI automatycznie zapisuje w cache prompty zawierające ponad 1024 tokeny. Nie jest potrzebny jawny znacznik:
# Just send the same prefix repeatedly. Cache discount applies automatically.
# Check response.usage.prompt_tokens_details.cached_tokensCache kontekstu w Vertex AI
Google Vertex wymaga jawnego utworzenia obiektu cache:
from vertexai.generative_models import GenerativeModel, content_cache
cache = content_cache.CachedContent.create(
model='gemini-1.5-pro',
contents=[long_system_content],
ttl=300
)
model = GenerativeModel.from_cached_content(cache)
response = model.generate_content(user_input)Cache wyników po stronie klienta
W przypadku zapytań o dokładnie dopasowanej treści, czyli takich, dla których te same dane wejściowe powinny dać ten sam wynik, należy użyć cache klucz-wartość:
import hashlib
def cache_key(model, messages):
return hashlib.sha256(f'{model}:{json.dumps(messages)}'.encode()).hexdigest()
def cached_call(model, messages):
key = cache_key(model, messages)
if cached := redis.get(key):
return json.loads(cached)
result = real_call(model, messages)
redis.set(key, json.dumps(result), ex=3600)
return resultCache semantyczny
Proszę używać embeddingów do zapisywania w cache podobnych, ale nieidentycznych zapytań:
qvec = embed(query)
matches = vector_db.query(qvec, k=1)
if matches and matches[0].score > 0.95:
return matches[0].metadata['cached_response']Unieważnianie cache
Nieaktualny cache zwraca błędne odpowiedzi. Możliwe strategie:
- TTL — krótki w przypadku danych zależnych od czasu
- Ręczne unieważnianie po aktualizacji danych
- Klucze przypisane do użytkowników, aby aktualizacje wpływały tylko na jednego użytkownika
Nie zapisuj spersonalizowanych odpowiedzi w cache
„Jakie jest moje saldo?” nie może być zapisywane we wspólnym cache dla różnych użytkowników. Należy zachować ostrożność przy korzystaniu ze współdzielonego cache w systemach wielodzierżawnych.
Koszt cache a koszt LLM
Koszty Redis są znikome w porównaniu z kosztami LLM. Proszę używać cache bez obaw — nawet 10% trafień przynosi realne oszczędności.
Oszczędności w praktyce
Przy długich, współdzielonych promptach systemowych i cache promptów zespoły regularnie obserwują w produkcji spadek kosztu tokenów wejściowych o 50–90%. To jedna z optymalizacji zapewniających najwyższy zwrot z inwestycji.
Włączanie cache w Anthropic
Jak włączyć cache promptów w Anthropic?
Podsumowanie
Cache promptów po stronie serwera dla statycznych prefiksów, kliencki cache KV dla dokładnie dopasowanych zapytań oraz cache semantyczny dla dopasowania przybliżonego. Należy zawsze sprawdzać współczynniki trafień i oszczędności.
Często zadawane pytania
Czy lekcja „Buforowanie promptów i wyników (Anthropic, Vertex)” jest bezpłatna?
Tak — pełny tekst „Buforowanie promptów i wyników (Anthropic, Vertex)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Buforowanie promptów i wyników (Anthropic, Vertex)”?
Buforowanie promptów w Anthropic i Vertex zmniejsza koszt danych wejściowych dziesięciokrotnie przy długich, powtarzających się promptach systemowych. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Buforowanie promptów i wyników (Anthropic, Vertex)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Budżety tokenów na krok
- Routing modeli (tani -> drogi)
- Buforowanie promptów i wyników (Anthropic, Vertex)
- Kwantyzacja i dekodowanie spekulatywne