Buforowanie kontekstu

W typowym przepływie pracy związanym z AI można wielokrotnie przekazywać te same tokeny wejściowe do modelu. Za pomocą funkcji buforowania kontekstu interfejsu Gemini API możesz raz przekazać część treści do modelu, zapisać w pamięci podręcznej tokeny wejściowe, a następnie odwoływać się do tokenów w pamięci podręcznej w kolejnych żądaniach. W przypadku niektórych woluminów korzystanie z tokenów w pamięci podręcznej wiąże się z niższym kosztem (i może skracać czas oczekiwania) niż wielokrotne przekazywanie tych samych korpusów tokenów.

Gdy umieszczasz w pamięci podręcznej zestaw tokenów, możesz wybrać, jak długo pamięć podręczna ma istnieć, zanim tokeny zostaną automatycznie usunięte. Czas buforowania jest nazywany czasem życia danych (TTL). Koszt buforowania zależy od rozmiaru tokena wejściowego i tego, jak długo mają być przechowywane.

Kontekstowe buforowanie obsługuje zarówno Gemini 1.5 Pro, jak i Gemini 1.5 Flash.

Kiedy używać pamięci podręcznej kontekstu

Kontekstowe buforowanie sprawdza się szczególnie w sytuacjach, w których znaczny kontekst początkowy jest wielokrotnie odwoływany do krótszych żądań. Rozważ użycie buforowania kontekstowego w takich przypadkach:

  • czatboty z obszernymi instrukcjami systemowymi,
  • Wielokrotne analizowanie długich plików wideo
  • Cykliczne zapytania dotyczące dużych zbiorów dokumentów
  • Częsta analiza repozytorium kodu lub naprawa błędów

Jak buforowanie obniża koszty

Kontekstowe przechowywanie danych w pamięci podręcznej to płatna funkcja zaprojektowana w celu zmniejszenia ogólnych kosztów operacyjnych. Płatności są ustalane na podstawie następujących czynników:

  1. Cache token count (Liczba tokenów pamięci podręcznej): liczba tokenów wejściowych w pamięci podręcznej, które są rozliczane według niższej stawki, gdy są uwzględniane w kolejnych promptach.
  2. Czas przechowywania: czas przechowywania tokenów w pamięci podręcznej (TTL). Opłata jest obliczana na podstawie czasu TTL liczby tokenów w pamięci podręcznej. Nie ma minimalnej ani maksymalnej wartości TTL.
  3. Inne czynniki: obowiązują inne opłaty, np. za tokeny wejściowe i wyjściowe niew pamięci podręcznej.

Aktualne ceny znajdziesz na stronie z cennikiem interfejsu Gemini API. Więcej informacji o liczeniu tokenów znajdziesz w przewodniku po tokenach.

Jak korzystać z pamięci podręcznej kontekstu

W tej sekcji zakładamy, że masz zainstalowany pakiet SDK Gemini i skonfigurowano klucz interfejsu API, jak pokazano w quickstart.

Uwagi dodatkowe

Gdy korzystasz z pamięci podręcznej kontekstu, pamiętaj o tych kwestiach:

  • Minimalna liczba tokenów wejściowych do buforowania kontekstu wynosi 32 768, a maksymalna jest taka sama jak maksymalna dla danego modelu. Więcej informacji o liczeniu tokenów znajdziesz w przewodniku po tokenach.
  • Możesz ustawić czas życia danych (TTL), tak jak w przykładowym kodzie. Jeśli nie zostanie ustawiona, domyślna wartość TTL to 1 godzina.
  • W modelu nie ma rozróżnienia między tokenami w pamięci podręcznej a zwykłymi tokenami wejściowymi. Treść w pamięci podręcznej jest po prostu prefiksem promptu.
  • Usługa buforowania umożliwia ręczne usunięcie treści z pamięci podręcznej. Szczegółowe informacje znajdziesz w dokumentacji wybranego pakietu SDK.
  • W przypadku poziomu płatnego nie ma specjalnych stawek ani limitów wykorzystania dotyczących buforowania kontekstu. Obowiązują standardowe limity stawki dla GenerateContent, a limity tokenów obejmują tokeny przechowywane w pamięci podręcznej. Na poziomie bezpłatnym obowiązuje limit 1 mln tokenów dla Gemini 1.5 Flash i buforowanie nie jest dostępne dla Gemini 1.5 Pro.
  • Nie można pobrać ani wyświetlić treści z pamięci podręcznej, ale można pobrać metadane (name, display_name, model oraz czas utworzenia, aktualizowania i wygaśnięcia).
  • Możesz ustawić nowe ttl lub expire_time. Nie można zmienić żadnych innych elementów w zawartości przechowywanej w pamięci podręcznej.
  • Liczba tokenów zapisanych w pamięci podręcznej jest zwracana w funkcji usage_metadata podczas operacji tworzenia, pobierania i wyświetlania listy usług pamięci podręcznej, a także w GenerateContent, gdy używasz pamięci podręcznej.