INTEGRITY Документация

Кэш сходства

Кэширование по сходству в AI Search позволяет обслуживать ответы из кэша Cloudflare для запросов, похожих на предыдущие, вместо того чтобы каждый раз формировать новый уникальный ответ. Это ускоряет время отклика и снижает затраты благодаря повторному использованию ответов на вопросы, близкие по смыслу.

Как это работает

В отличие от базового кэширования, которое создаёт новый ответ на каждый запрос, кэширование по сходству обрабатывает запрос иначе:

  1. AI Search проверяет, похожие prompt (на основе выбранного порога) уже получал ответ ранее.
  2. Если совпадение найдено, немедленно возвращается кешированный ответ.
  3. Если совпадение не найдено, создаётся новый ответ, который затем кешируется.

Чтобы узнать, пришёл ли ответ из кеша, проверьте cf-aig-cache-status заголовок: HIT для кешированных и MISS для новых.

Что учитывать при использовании кэша сходства

Учитывайте следующие особенности при использовании кэширования по сходству:

Как работает сопоставление по сходству

Кэш сходства AI Search использует MinHash and Locality-Sensitive Hashing (LSH) и находить, а также повторно использовать ответы на похожие по формулировке промпты.

Вот как это работает при получении нового промпта:

  1. Промпт разбивается на небольшие перекрывающиеся группы слов (шинглы), например «what's the» или «the weather».
  2. Эти шинглы преобразуются в «отпечаток» с помощью MinHash. Чем больше пересечение между двумя промптами, тем более похожими будут их отпечатки.
  3. Отпечатки распределяются по сегментам LSH, которые помогают AI Search быстро находить похожие запросы, не сравнивая их все по очереди.
  4. Если предыдущий промт в том же бакете достаточно похож (в соответствии с заданным порогом), AI Search повторно использует кешированный ответ.

Выберите порог

Порог сходства определяет, насколько близки должны быть два промпта, чтобы можно было повторно использовать закешированный ответ. Вы можете задать порог на уровне экземпляра или переопределить его для конкретного запроса.

Пороговое значение Значение API Описание Пример совпадения
Точное super_strict_match Только почти идентичные совпадения «Какая сегодня погода?» совпадает с «Какая сегодня погода на улице?»
Строгий close_enough (по умолчанию) Высокое семантическое сходство «Какая сегодня погода?» совпадает с «Как сегодня погода?»
Широкое flexible_friend Умеренное соответствие, больше совпадений «Какая сегодня погода?» совпадает с «Расскажи мне про сегодняшнюю погоду»
Свободное anything_goes Низкое сходство, максимальное повторное использование «Какая сегодня погода?» совпадает с «Дай мне прогноз»

Настройка длительности кэша

Задайте cache_ttl при создании или обновлении экземпляра, чтобы определить, как долго экземпляр хранит закешированные ответы. Допустимые значения:

Длительность Значение API
10 минут 600
30 минут 1800
1 час 3600
2 часа 7200
6 часов 21600
12 часов 43200
24 часа 86400
48 часов 172800
72 часа 259200
6 дней 518400

Очистка кешированных ответов

Чтобы немедленно очистить все кешированные ответы для экземпляра, используйте операцию очистки кеша:

curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/ai-search/instances/$INSTANCE_NAME/purge_cache" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Очистка кеша меняет внутренний ключ кеша экземпляра, поэтому новые запросы больше не используют ранее кешированные ответы.

Вы также можете очищать кэшированные ответы на странице настроек экземпляра в Cloudflare dashboard.

Переопределение кеша на уровне запроса

Вы можете переопределить настройку кэширования на уровне экземпляра для отдельного запроса с помощью cache параметр в ai_search_options:

const instance = env.AI_SEARCH.get("my-instance");

const results = await instance.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
	ai_search_options: {
		cache: {
			enabled: true,
			cache_threshold: "flexible_friend",
		},
	},
});