← Обзор / ai-search / configuration / retrieval
Кэш сходства
Кэширование по сходству в AI Search позволяет обслуживать ответы из кэша Cloudflare для запросов, похожих на предыдущие, вместо того чтобы каждый раз формировать новый уникальный ответ. Это ускоряет время отклика и снижает затраты благодаря повторному использованию ответов на вопросы, близкие по смыслу.
Как это работает
В отличие от базового кэширования, которое создаёт новый ответ на каждый запрос, кэширование по сходству обрабатывает запрос иначе:
- AI Search проверяет, похожие prompt (на основе выбранного порога) уже получал ответ ранее.
- Если совпадение найдено, немедленно возвращается кешированный ответ.
- Если совпадение не найдено, создаётся новый ответ, который затем кешируется.
Чтобы узнать, пришёл ли ответ из кеша, проверьте cf-aig-cache-status заголовок: HIT для кешированных и MISS для новых.
Что учитывать при использовании кэша сходства
Учитывайте следующие особенности при использовании кэширования по сходству:
- Volatile Cache: Если два похожих запроса поступают одновременно, первый может не успеть закешироваться до того, как второй попытается его использовать, что приводит к
MISS. - Настраиваемая длительность: Закешированные ответы истекают в зависимости от настройки экземпляра
cache_ttlнастройка. Значение по умолчанию: 48 часов. - Зависимость от данных: Закешированные ответы привязаны к конкретным чанкам документов. Если эти чанки изменяются или удаляются, кеш очищается, чтобы ответы оставались актуальными.
Как работает сопоставление по сходству
Кэш сходства AI Search использует MinHash and Locality-Sensitive Hashing (LSH) и находить, а также повторно использовать ответы на похожие по формулировке промпты.
Вот как это работает при получении нового промпта:
- Промпт разбивается на небольшие перекрывающиеся группы слов (шинглы), например «what's the» или «the weather».
- Эти шинглы преобразуются в «отпечаток» с помощью MinHash. Чем больше пересечение между двумя промптами, тем более похожими будут их отпечатки.
- Отпечатки распределяются по сегментам LSH, которые помогают AI Search быстро находить похожие запросы, не сравнивая их все по очереди.
- Если предыдущий промт в том же бакете достаточно похож (в соответствии с заданным порогом), 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",
},
},
});