Buforowanie kontekstu

W typowym procesie AI możesz wielokrotnie przekazywać te same tokeny wejściowe do modelu. Interfejs Gemini API oferuje 2 różne mechanizmy buforowania:

  • domyślne buforowanie (automatycznie włączone w modelach Gemini 2.5, bez gwarancji oszczędności);
  • Wyraźne buforowanie (można włączyć ręcznie w przypadku większości modeli, gwarantuje oszczędność kosztów)

Wyraźne buforowanie jest przydatne w przypadkach, gdy chcesz zapewnić oszczędności, ale wymaga to dodatkowej pracy programisty.

Buforowanie pośrednie

Domyślnie domyślnie włączone jest domyślne buforowanie w przypadku wszystkich modeli Gemini 2.5. Jeśli Twoje żądanie trafi do pamięci podręcznej, automatycznie przekażemy Ci oszczędności. Nie musisz nic robić, aby włączyć tę funkcję. Obowiązuje od 8 maja 2025 r. Minimalna liczba tokenów wejściowych do przechowywania w pamięci podręcznej kontekstu to 1024 w przypadku modelu 2.5 Flash i 2048 w przypadku modelu 2.5 Pro.

Aby zwiększyć szansę na znalezienie danych w pamięci podręcznej:

  • Spróbuj umieścić duże i częste treści na początku promptu.
  • Próbowanie wysyłania żądań z podobnym prefiksem w krótkim czasie

Liczba tokenów, które zostały znalezione w pamięci podręcznej, jest widoczna w polu usage_metadata obiektu odpowiedzi.

jawna pamięć podręczna.

Korzystając z funkcji jawnego buforowania interfejsu Gemini API, możesz raz przekazać treści do modelu, zapisać w buforze tokeny wejściowe, a następnie odwoływać się do nich w kolejnych żądaniach. Przy pewnych wolumenach korzystanie z tokenów w pamięci podręcznej jest tańsze niż wielokrotne przekazywanie tego samego zbioru tokenów.

Gdy przechowujesz w pamięci podręcznej zestaw tokenów, możesz określić, jak długo ma ona istnieć, zanim tokeny zostaną automatycznie usunięte. Czas przechowywania w pamięci podręcznej nazywany jest czasem życia danych (TTL). Jeśli nie określisz tego ustawienia, domyślnie są to 24 godziny. Koszt buforowania zależy od rozmiaru tokena wejściowego i czasu, przez jaki mają być przechowywane tokeny.

W tej sekcji zakładamy, że masz zainstalowany pakiet SDK Gemini (lub masz zainstalowany curl) oraz skonfigurowany klucz interfejsu API zgodnie z instrukcjami w artykule Szybki start.

Wyraźne buforowanie za pomocą biblioteki OpenAI

Jeśli używasz biblioteki OpenAI, możesz włączyć jawne buforowanie za pomocą właściwości cached_contentextra_body.

Kiedy używać pamięci podręcznej na potrzeby konkretnego adresu

Buforowanie kontekstu jest szczególnie przydatne w sytuacjach, gdy obszerny początkowy kontekst jest wielokrotnie odwoływany przez krótsze żądania. Zastanów się nad użyciem buforowania kontekstu w przypadku takich zastosowań:

  • Czatboty z obszernymi instrukcjami systemowymi
  • powtarzająca się analiza długich plików wideo,
  • powtarzające się zapytania dotyczące dużych zbiorów dokumentów;
  • częsta analiza repozytorium kodu lub poprawianie błędów;

Jak jawne buforowanie zmniejsza koszty

Buforowanie kontekstu to płatna funkcja, która ma na celu obniżenie ogólnych kosztów operacyjnych. Płatności są określane na podstawie tych czynników:

  1. Liczba tokenów w pamięci podręcznej:liczba tokenów wejściowych przechowywanych w pamięci podręcznej, za które pobierana jest opłata po obniżonej stawce, gdy są one uwzględnione w kolejnych promptach.
  2. Czas przechowywania: czas przechowywania tokenów w pamięci podręcznej (TTL), naliczany na podstawie czasu życia tokenów w pamięci podręcznej. Nie ma minimalnych ani maksymalnych wartości TTL.
  3. Inne czynniki: obowiązują inne opłaty, np. za tokeny wejściowe i wyjściowe, które nie są przechowywane w pamięci podręcznej.

Aktualne informacje o cenach znajdziesz na tej stronie dotyczącej Gemini API. Aby dowiedzieć się, jak zliczać tokeny, zapoznaj się z przewodnikiem dotyczącym tokenów.

Uwagi dodatkowe

Podczas korzystania z buforowania kontekstu pamiętaj o tych kwestiach:

  • Minimalna liczba tokenów wejściowych do przechowywania w pamięci podręcznej w ramach kontekstu wynosi 1024 w przypadku wersji 2.5 Flash i 2048 w przypadku wersji 2.5 Pro. Maksymalna wartość jest taka sama jak maksymalna wartość dla danego modelu. (Więcej informacji o liczeniu tokenów znajdziesz w tym przewodniku).
  • Model nie rozróżnia tokenów z buforu i zwykłych tokenów wejściowych. Treści z pamięci podręcznej to prefiks promptu.
  • Nie ma żadnych specjalnych limitów szybkości ani limitów użycia w przypadku buforowania kontekstu. Obowiązują standardowe limity szybkości dla GenerateContent, a limity tokenów obejmują tokeny buforowane.
  • Liczba tokenów w pamięci podręcznej jest zwracana w usage_metadata z operacji tworzenia, pobierania i wyświetlania listy w usłudze pamięci podręcznej, a także w GenerateContent podczas korzystania z pamięci podręcznej.