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

привязка Workers

Workers предоставляет бессерверную среду выполнения, в которой можно создавать новые приложения или дополнять существующие. Используйте привязка Workers для создания, получения списка, обновления и удаления инстансов AI Search из Cloudflare Worker. Вы также можете проверять конфигурацию инстанса и отслеживать ход индексирования.

Настройка привязки

Чтобы использовать AI Search с Workers, нужно создать привязку AI Search. Привязки создаются путём обновления Конфигурация Wrangler. AI Search предоставляет два типа привязок:

Привязка пространства имён

Обращайтесь ко всем экземплярам в пределах пространство имён. Экземпляры можно получать, создавать, перечислять и удалять во время выполнения.

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "compatibility_date": "2026-03-27",
  "ai_search_namespaces": [
    {
      "binding": "AI_SEARCH",
      "namespace": "my-namespace"
    }
  ]
}
compatibility_date = "2026-03-27"

[[ai_search_namespaces]]
binding = "AI_SEARCH"
namespace = "my-namespace"
Поле Тип Обязательный Описание
binding string Да Имя переменной, доступной в env. Например, "AI_SEARCH" делает его доступным как env.AI_SEARCH.
namespace string Да пространство имён к которому нужно привязаться. Пространство имён default пространство имён создаётся автоматически для каждого аккаунта. Если пространство имён не существует, Wrangler создаёт его при развёртывании.
remote boolean Нет Установите значение true для локальной разработки с wrangler dev.

Привязка экземпляра

Подключайтесь напрямую к одному экземпляру в default пространство имён. Используйте этот вариант, когда вы уже знаете нужный экземпляр на момент развёртывания.

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "compatibility_date": "2026-03-27",
  "ai_search": [
    {
      "binding": "MY_SEARCH",
      "instance_name": "my-instance"
    }
  ]
}
compatibility_date = "2026-03-27"

[[ai_search]]
binding = "MY_SEARCH"
instance_name = "my-instance"
Поле Тип Обязательный Описание
binding string Да Имя переменной, доступной в env. Например, "MY_SEARCH" делает его доступным как env.MY_SEARCH.
instance_name string Да Имя инстанса AI Search. На момент развертывания должно существовать в пространстве имен по умолчанию.
remote boolean Нет Установите значение true для локальной разработки с wrangler dev.

Методы пространства имён

Следующие методы доступны только при использовании ai_search_namespaces привязка. Дескриптор пространства имён (env.AI_SEARCH) предоставляет методы для работы с экземплярами в рамках пространство имён.

get()

Возвращает дескриптор конкретного экземпляра. Это синхронный и не выполняет сетевой вызов. Экземпляр инициализируется отложенно, в момент вызова таких методов, как search() или info().

const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
});

Параметры

Параметр Тип Обязательный Описание
name string Да Имя экземпляра, для которого нужно получить дескриптор.

list()

Возвращает все экземпляры в пространстве имён.

const { result, result_info } = await env.AI_SEARCH.list();

for (const instance of result) {
	console.log(`${instance.id} (${instance.type}) - ${instance.status}`);
}
// result_info.total_count contains the total number of instances

Параметры

Параметр Тип Обязательный Описание
page число Нет Номер страницы для возврата. Значение по умолчанию: 1.
per_page число Нет Количество экземпляров на странице. Значение по умолчанию составляет 20. Максимум 100.
search string Нет Ищет экземпляры по ID.
order_by string Нет Столбец сортировки. Допустимое значение: created_at. По умолчанию используется created_at.
order_by_direction string Нет Направление сортировки. Допустимые значения: asc, desc. По умолчанию используется desc.

Ответ

Поле Тип Описание
result array Массив объектов экземпляров.
result[].id string Идентификатор экземпляра.
result[].type string Тип источника данных (r2, web-crawler, или null для пустых экземпляров).
result[].source string Расположение источника данных.
result[].status string Статус экземпляра (active, waiting, indexing).
result[].enable boolean Включён ли экземпляр.
result[].namespace string Пространство имён, которому принадлежит экземпляр.
result[].created_at string Временная метка ISO 8601 создания экземпляра.
result[].modified_at string Временная метка ISO 8601 последнего изменения.
result_info объект Метаданные пагинации.
result_info.total_count число Общее количество экземпляров в пространстве имён.

create()

Создаёт новый экземпляр и возвращает на него дескриптор. Можно создавать экземпляры на основе источника данных или пустые экземпляры для использования с API элементов.

Создайте пустой экземпляр для загрузки файлов:

Экземпляры AI Search поставляются с встроенное хранилище где можно загружать документы напрямую.

const instance = await env.AI_SEARCH.create({
	id: "knowledge-base",
});

// Upload documents using the Items API
await instance.items.upload("guide.pdf", pdfArrayBuffer);

Создайте экземпляр веб-краулера:

Автоматически сканируйте и индексируйте сайт, которым вы владеете. Дополнительные варианты настройки см. в Источник данных «Сайт».

const instance = await env.AI_SEARCH.create({
	id: "my-docs",
	type: "web-crawler",
	source: "developers.cloudflare.com",
});

Создайте экземпляр на основе R2:

Индексация документов, хранящихся в R2 bucket. Дополнительные варианты настройки см. в Источник данных R2.

const instance = await env.AI_SEARCH.create({
	id: "internal-docs",
	type: "r2",
	source: "my-docs-bucket",
});

Параметры

id string обязательно

Уникальный идентификатор экземпляра AI Search. Должен содержать от 1 до 64 символов и соответствовать шаблону ^[a-z0-9_]+(?:-[a-z0-9_]+)*$.


type string необязательно

Тип источника данных. Допустимые значения: r2, web-crawler. Обязательно при создании экземпляра с источником данных. Пропустите при создании пустого экземпляра для использования с API элементов.


source string необязательно

Расположение источника данных. Для r2 типа это имя бакета R2. Для web-crawler типа это домен веб-сайта. Требуется, если type указан.


source_params object необязательно

Дополнительные параметры источника данных.


index_method object необязательно

Определяет, какие методы индексирования включены для экземпляра. Указывает, доступен ли векторный (семантический) поиск, поиск по ключевым словам или оба варианта. Хотя бы один должен быть true.

Задайте для обоих значение true для гибридного поиска.


fusion_method string необязательно

Определяет, как объединяются оценки векторного и ключевого поиска при использовании гибридного поиска. Допустимые значения: rrf (Reciprocal Rank Fusion), max (используется максимальное значение оценки). Значение по умолчанию: rrf.


indexing_options object необязательно

Конфигурация способа индексирования контента.


retrieval_options object необязательно

Конфигурация поиска по умолчанию для экземпляра. Эти значения по умолчанию можно переопределить на уровне запроса с помощью ai_search_options.


sync_interval number необязательно

Интервал в секундах между автоматическими синхронизациями источника данных. Допустимые значения: 3600, 7200, 14400, 21600, 43200, 86400. По умолчанию используется 21600 (6 часов).


token_id string необязательно

UUID токен API службы для использования в этом экземпляре. Требуется только если вы ещё не создавали ни одного экземпляра AI Search. См. Руководство по началу работы с API о том, как создать и зарегистрировать токен службы.


ai_gateway_id string необязательно

ID AI Gateway для маршрутизации запросов в целях логирования и аналитики.


embedding_model string необязательно

Embedding-модель, используемая для векторизации контента.


ai_search_model string необязательно

Модель генерации текста, используемая для формирования ответов.


rewrite_query boolean необязательно

Включите переписывание запроса для повышения точности поиска. По умолчанию: false.


rewrite_model string необязательно

Модель, используемая для переписывания запроса.


reranking boolean необязательно

Включите реранкинг, чтобы переупорядочивать найденные результаты по семантической релевантности. По умолчанию: false.


reranking_model string необязательно

Модель реранкинга. Допустимое значение: @cf/baai/bge-reranker-base.


chunk_size number необязательно

Размер чанков при разбиении документов. Минимальное значение: 64.


chunk_overlap number необязательно

Перекрытие между чанками. Минимальное значение: 0.


max_num_results number необязательно

Максимальное количество возвращаемых результатов по умолчанию. Минимальное значение: 1.


score_threshold number необязательно

Минимальный порог показателя соответствия для результатов по умолчанию. Минимальное значение: 0.


cache boolean необязательно

Включите кеширование ответов. По умолчанию: true.


cache_threshold string необязательно

Порог совпадения кэша. Допустимые значения: super_strict_match, close_enough, flexible_friend, anything_goes. По умолчанию используется close_enough.


cache_ttl number необязательно

TTL записи кэша в секундах. Допустимые значения: 600, 1800, 3600, 7200, 21600, 43200, 86400, 172800, 259200, а также 518400. По умолчанию используется 172800.


custom_metadata array необязательно

Поля пользовательских метаданных, которые нужно извлекать и индексировать из документов.


enable boolean необязательно

Включён ли экземпляр. По умолчанию: true.

Ответ

Возвращает AiSearchInstance дескриптор, который сразу готов к использованию для вызова таких методов, как search(), info(), stats(), а также items.upload(). Вызовите info() на хендле, чтобы получить конфигурацию экземпляра.

delete()

Навсегда удаляет экземпляр и весь его индексированный контент. Это действие нельзя отменить.

await env.AI_SEARCH.delete("old-docs");

Параметры

Параметр Тип Обязательный Описание
name string Да Имя экземпляра, который нужно удалить.

Ответ

Возвращает void. Возвращает ошибку, если экземпляр не существует.

Методы экземпляра

Следующие методы доступны как в ai_search_namespaces и ai_search привязки. При использовании привязки пространства имён вызывайте методы на дескрипторе, который возвращает get(). При использовании привязки к экземпляру вызывайте методы прямо на привязке (например, env.MY_SEARCH.info()).

В примерах ниже используется привязка пространства имён.

update()

Частично обновляет конфигурацию экземпляра. Изменяются только переданные вами поля.

const updated = await env.AI_SEARCH.get("my-instance").update({
	ai_search_model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
	reranking: true,
});

Параметры

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

Поле Тип Описание
ai_search_model string Модель генерации текста.
embedding_model string Embedding-модель.
index_method объект Способы индексирования: \{ vector: boolean, keyword: boolean \}.
fusion_method string Как объединяются оценки векторного поиска и поиска по ключевым словам (rrf или max).
indexing_options объект Конфигурация индексации, включая keyword_tokenizer.
retrieval_options объект Настройки поиска, включая keyword_match_mode и boost_by.
reranking boolean Включите или отключите реранкинг.
reranking_model string Модель реранкинга.
rewrite_query boolean Включите или отключите переписывание запроса.
rewrite_model string Модель переписывания запроса.
source string Обновите расположение источника данных.
cache boolean Включите или отключите кэширование ответов.
chunk_size число Размер каждого чанка в токенах.
chunk_overlap число Перекрытие токенов между чанками.
score_threshold число Минимальный порог оценки для результатов.
max_num_results число Максимальное количество результатов на запрос.
custom_metadata array Определения полей пользовательских метаданных.
sync_interval число Интервал в секундах между автоматическими синхронизациями источника данных.

Ответ

Возвращает обновлённую конфигурацию экземпляра. Имеет ту же структуру, что и info().

info()

Возвращает текущую конфигурацию и метаданные экземпляра.

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

Ответ

Поле Тип Описание
id string Идентификатор экземпляра.
type string Тип источника данных (r2, web-crawler, или null).
source string Расположение источника данных.
namespace string Пространство имён, которому принадлежит экземпляр.
status string Статус экземпляра (active, waiting, indexing).
enable boolean Включён ли экземпляр.
created_at string Отметка времени создания экземпляра.
modified_at string Отметка времени последнего изменения.
ai_search_model string Модель генерации текста.
embedding_model string Embedding-модель.
reranking boolean Включён ли реранкинг.
reranking_model string Модель реранкинга.
rewrite_query boolean Включено ли переписывание запроса.
rewrite_model string Модель переписывания запроса.
cache boolean Включено ли кэширование ответов.
cache_threshold string Порог сходства для попаданий в кэш.
index_method объект Какие методы индексирования включены (vector, keyword).
fusion_method string Как объединяются оценки векторного поиска и поиска по ключевым словам (rrf или max).
indexing_options объект Конфигурация индексации, включая keyword_tokenizer.
retrieval_options объект Настройки поиска, включая keyword_match_mode и boost_by.
chunk_size число Размер каждого чанка в токенах.
chunk_overlap число Перекрытие токенов между чанками.
score_threshold число Минимальный порог оценки для результатов.
max_num_results число Максимальное количество результатов на запрос.
sync_interval число Интервал в секундах между автоматическими синхронизациями источника данных.
custom_metadata array Определения полей пользовательских метаданных.
last_activity string Отметка времени последней активности индексирования.

stats()

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

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

Ответ

Поле Тип Описание
queued число Элементы, ожидающие обработки.
running число Элементы, которые сейчас обрабатываются.
completed число Элементы, успешно проиндексированные.
error число Элементы, которые не удалось проиндексировать.
skipped число Элементы, пропущенные при индексировании.
outdated число Элементы, которые нуждаются в переиндексации.
last_activity string Временная метка ISO 8601 последней активности индексации.
file_embed_errors объект Сопоставление идентификаторов файлов с деталями ошибок эмбеддинга.
engine.vectorize.vectorsCount число Общее количество хранящихся векторов.
engine.vectorize.dimensions число Размерность векторных эмбеддингов.
engine.r2.payloadSizeBytes число Общий размер хранимой полезной нагрузки в байтах.
engine.r2.metadataSizeBytes число Общий размер хранимых метаданных в байтах.
engine.r2.objectCount число Общее количество объектов в хранилище.

Локальная разработка

Локальная разработка поддерживается за счёт проксирования запросов к вашему развёрнутому экземпляру AI Search. Добавьте remote: true в конфигурацию привязок, чтобы включить локальную разработку с wrangler dev.

// wrangler.jsonc
{
	"ai_search": [
		{
			"binding": "MY_SEARCH",
			"instance_name": "my-instance",
			"remote": true,
		},
	],
}