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

привязка Workers

Workers предоставляет бессерверную среду выполнения, в которой можно создавать новые приложения или дополнять существующие. Используйте привязка Workers для загрузки, просмотра списка и управления документами в ваших экземплярах AI Search из Cloudflare Worker. Обращайтесь к Items API через items свойство на хендле экземпляра.

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

Чтобы использовать 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.

Методы

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

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

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

items.upload()

Загружает документ для индексирования. Возвращает ответ немедленно. Документ ставится в очередь на обработку.

// Upload from a string
await instance.items.upload(
	"faq.md",
	"# FAQ\n\nQ: How do I reset my password?\nA: Go to Settings > Security...",
);

// Upload from an ArrayBuffer
const pdfResponse = await fetch("https://example.com/guide.pdf");
const pdfBuffer = await pdfResponse.arrayBuffer();
await instance.items.upload("guide.pdf", pdfBuffer);

// Upload from a ReadableStream
await instance.items.upload("doc.txt", request.body);

Загрузка с метаданными

Подключите пользовательские метаданные к документу для фильтрации в поисковых запросах. Пользовательские поля метаданных нужно сначала определить на уровне инстанса с помощью update() метод, либо в момент создания.

await instance.items.upload("guide.pdf", pdfBuffer, {
	metadata: {
		category: "onboarding",
		language: "en",
		version: "2.0",
	},
});

Параметры

Параметр Тип Обязательный Описание
name string Да Имя файла для загруженного документа. Используется как ключ элемента.
content ReadableStream, ArrayBuffer или string Да Содержимое документа. Максимальный размер файла составляет 4 МБ. Передайте строку для обычного текста или markdown либо ArrayBuffer для двоичных файлов, или ReadableStream для потоковой загрузки.
options.metadata Record<string, string> Нет Пары «ключ-значение» пользовательских метаданных, которые нужно прикрепить к элементу. Используются для фильтрации в поисковых запросах. Максимум 5 полей на экземпляр.

Ответ

Поле Тип Описание
id string Уникальный идентификатор элемента.
key string Имя файла или ключ элемента.

items.uploadAndPoll()

Загружает документ и опрашивает его статус, пока обработка не завершится или не истечёт время ожидания. Используйте этот метод, если нужно искать по документу сразу после загрузки.

// Wait for a specific document to finish indexing before searching
const item = await instance.items.uploadAndPoll(
	"handbook.txt",
	handbookContent,
);
console.log(`handbook.txt status: ${item.status}`); // "completed"

// Now search across all uploaded documents
const results = await instance.search({
	messages: [{ role: "user", content: "password reset policy" }],
});

Параметры

Так же, как и items.upload(), с дополнительными параметрами опроса:

Параметр Тип Обязательный Описание
options.pollIntervalMs число Нет Как часто проверять статус элемента, в миллисекундах. По умолчанию: 1000.
options.timeoutMs число Нет Максимальное время ожидания завершения обработки в миллисекундах. По умолчанию: 30000.

Ответ

Возвращает полный объект элемента после завершения опроса:

Поле Тип Описание
id string Уникальный идентификатор элемента.
key string Имя файла или ключ элемента.
status string Статус обработки: queued, running, completed, error, skipped, outdated.
chunks_count число Количество чанков, созданных из документа.
file_size число Размер загруженного файла в байтах.
metadata объект Метаданные элемента, включая filename, folder, а также timestamp.
source_id string Идентификатор источника (например, builtin для загруженных файлов).
created_at string Отметка времени создания элемента.
last_seen_at string Отметка времени, когда элемент в последний раз встречался при индексировании.

items.list()

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

const { result, result_info } = await instance.items.list();

for (const item of result) {
	console.log(`${item.key} (${item.status})`);
}
// result_info.total_count contains the total number of items

Параметры

Параметр Тип Обязательный Описание
page число Нет Номер страницы для возврата. Значение по умолчанию: 1.
per_page число Нет Количество элементов на странице. Значение по умолчанию составляет 20. Максимум 50.
status string Нет Фильтр по статусу обработки: queued, running, completed, error, skipped, или outdated.
sort_by string Нет Порядок сортировки элементов: status (по умолчанию) или modified_at.
search string Нет Ищет элементы по содержимому текста.
source string Нет Фильтр по идентификатору источника (например, builtin для загруженных файлов).

Ответ

Поле Тип Описание
result array Массив объектов элементов.
result[].id string Уникальный идентификатор элемента.
result[].key string Имя файла или ключ элемента.
result[].status string Статус обработки: queued, running, completed, error, skipped, outdated.
result[].chunks_count число Количество чанков, созданных из документа.
result[].file_size число Размер загруженного файла в байтах.
result[].metadata объект Метаданные элемента, включая filename, folder, а также timestamp.
result[].source_id string Идентификатор источника (например, builtin для загруженных файлов).
result[].created_at string Отметка времени создания элемента.
result[].last_seen_at string Отметка времени, когда элемент в последний раз встречался при индексировании.
result_info объект Метаданные пагинации.
result_info.count число Количество элементов на текущей странице.
result_info.total_count число Общее количество элементов в экземпляре.
result_info.page число Номер текущей страницы.
result_info.per_page число Количество элементов на странице.

items.delete()

Удаляет элемент и его индексированные чанки.

await instance.items.delete("item-id-123");

Параметры

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

Ответ

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

items.get()

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

items.get().info()

Возвращает статус и метаданные конкретного элемента.

const itemInfo = await instance.items.get("item-id-123").info();
Параметры
Параметр Тип Обязательный Описание
itemId string Да Уникальный идентификатор элемента.
Ответ
Поле Тип Описание
id string Уникальный идентификатор элемента.
key string Имя файла или ключ элемента.
status string Статус обработки: queued, running, completed, error, skipped, outdated.
chunks_count число Количество чанков, созданных из документа.
file_size число Размер загруженного файла в байтах.
metadata объект Метаданные элемента, включая filename, folder, а также timestamp.
source_id string Идентификатор источника (например, builtin для загруженных файлов).
created_at string Отметка времени создания элемента.
last_seen_at string Отметка времени, когда элемент в последний раз встречался при индексировании.

items.get().download()

Скачивает исходный файл для элемента.

const file = await instance.items.get("item-id-123").download();
// file.body is a ReadableStream
Параметры
Параметр Тип Обязательный Описание
itemId string Да Уникальный идентификатор элемента.
Ответ
Поле Тип Описание
filename string Исходное имя файла.
contentType string MIME-тип файла (например, application/pdf).
size число Размер файла в байтах.
body ReadableStream Читаемый поток содержимого файла.