Можно бесконечно говорить о том, как круты продукты гугла и как же чертовски сложно порой ими пользоваться. Вот с кэшем та же история. Он очень круто экономит деньги, но порой совершенно не контролируемо отвечает на вопросы, опираясь на кэш, на который не надо было.
О чем речь:
У gemini API автоматически работает кэширование промптов. Работает довольно агресивно. Если начало запросов совпадает, Google повторно использует вычисления. Функция кэширования есть у всех разработчиков передовых моделей, но у гугла она включена по дефолту. Можно её отключить, но зачем, если она позволяет здорово экономить.
Про экономию:
На одном из моих проектов переход с gpt на гемини апи без дополнительной настройки кэша снизил наши затраты на LLM в 3.5 раза. И это не тот же кейс про сравнение 5-mini и 3-flash. При чем экономия прогрессирует со временем (накоплением кэша).
Про побочки:
- — Вы забыли дать контекст в запросе модели? Она его нашла и ответила данными из кэша.
- — У вас мультиязычный сервис? Привет мультиязычным ответам.
Решения:
- — system vs. user prompt: обязательно разделять системный от пользовательского промпта. Звучит супер логично, но я этот момент стала упускать уже несколько месяцев как. Единый контекст задавать системным промптом, а индивидуальный - пользовательским, даже на повторяющихся, несложных, операционных задачах.
- — указание языка в начале промпта. Кэшируется именно начало запроса. Если указать язык в начале, то получится развилка по языку, и разные языки будут кэщироваться отдельно.
- — смена провайдера: если задача не слишком сложная, а заморачиватьтся с переделыванием логики подключения гемини слишком не хочется, всегда можно вернуться на gpt 4.1 - всё еше лучшую non-reasoning модель, отличную по стоимости.
Резюмирую: время - тоже деньги, если можно быстро заменить модель и не заморачиваться с сетапом - заменяем. Если вы ювелир, можно заморочиться с сетапом и сэкономить на масштабах.
Используете гемини в разработке? Кто придумал что-то еще?