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

Пространства имён

Каждый экземпляр AI Search относится к пространство имён. Пространство имён представляет собой логическую группировку экземпляров в рамках вашего аккаунта.

Входящие запросы арендаторов
Тенант AТенант BТенант C
Fan-in: каждый запрос арендатора поступает на один и тот же Worker Worker: направляет каждый запрос по идентификатору тенанта через привязку пространства имён env.AI_SEARCH.get(id)Worker Линия в область пространства имён
namespace: tenants Разделение: привязка получает или создаёт отдельный экземпляр для каждого тенанта Один изолированный экземпляр на каждого арендатора

Зачем использовать пространства имён

Типичные причины использования пространств имён:

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

Требования

Для привязки пространства имён требуются следующие минимальные версии пакетов для типов TypeScript и поддержки локальной разработки.

Пакет Минимальная версия
@cloudflare/workers-types 4.20260304.0
wrangler 4.68.1

Как работают пространства имён

Когда вы добавляете ai_search_namespaces привязку в конфигурацию Wrangler вы указываете, к какому пространству имён у неё есть доступ. Привязка предоставляет полный доступ ко всем экземплярам в этом пространстве имён. Во время выполнения вы можете получать, перечислять, создавать и удалять экземпляры.

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

Во время выполнения, env.AI_SEARCH это хендл пространства имён. Используйте env.AI_SEARCH.get("my-instance") и получить доступ к конкретному инстансу:

const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
	messages: [{ role: "user", content: "How does caching work?" }],
});

get() метод синхронный и не выполняет сетевой вызов. Экземпляр разрешается лениво, когда вы вызываете такой метод, как search() или chatCompletions().

Пространство имён по умолчанию

A default пространство имён автоматически создаётся для каждого аккаунта. Если вам не нужно несколько пространств имён, используйте default для всех ваших экземпляров.

Вы также можете привязываться напрямую к конкретным экземплярам в пространстве имён по умолчанию с помощью ai_search привязка. Она привязывает каждую запись к одному уже существующему экземпляру без необходимости вызывать get().

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "ai_search": [
    {
      "binding": "PROD_SEARCH",
      "instance_name": "production"
    },
    {
      "binding": "STAGING_SEARCH",
      "instance_name": "staging"
    }
  ]
}
[[ai_search]]
binding = "PROD_SEARCH"
instance_name = "production"

[[ai_search]]
binding = "STAGING_SEARCH"
instance_name = "staging"

ai_search привязка предоставляет те же методы экземпляра (search(), chatCompletions(), info(), stats(), items) но не поддерживает операции на уровне пространства имён, такие как list(), create(), или delete().

Несколько пространств имён

Вы можете объявить несколько привязок пространства имён в одном Worker. Каждая привязка сопоставляется с отдельным пространством имён и обеспечивает изолированный доступ к его экземплярам.

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "ai_search_namespaces": [
    {
      "binding": "BLOG_SEARCH",
      "namespace": "blog"
    },
    {
      "binding": "SUPPORT_SEARCH",
      "namespace": "support"
    }
  ]
}
[[ai_search_namespaces]]
binding = "BLOG_SEARCH"
namespace = "blog"

[[ai_search_namespaces]]
binding = "SUPPORT_SEARCH"
namespace = "support"

Публичные конечные точки пространства имён

Пространство имён может предоставлять собственную публичную /search, /chat/completions, а также /mcp эндпойнты. Один URL выполняет поиск сразу по выбранным вами экземплярам в этом пространстве имён и объединяет результаты.

См. Публичные конечные точки пространства имён.

Пространства имён и уникальность экземпляров

Имя экземпляра должно быть уникальным в пределах пространства имён. Это значит, что у вас может быть экземпляр с именем docs как в blog и support пространств имён без конфликтов.