INTEGRITY Dokumentace

Jmenné prostory

Každá instance AI Search patří do namespace. Jmenný prostor je logické seskupení instancí v rámci vašeho účtu.

Příchozí požadavky nájemců
Tenant ATenant BTenant C
Fan-in: každý požadavek nájemce dorazí ke stejnému Workeru Worker: směruje každý požadavek podle ID tenanta prostřednictvím vazby namespace env.AI_SEARCH.get(id)Worker Čára do rozsahu jmenného prostoru
namespace: tenants Rozdělení: vazba získá nebo vytvoří jednu instanci pro každého tenanta Jedna izolovaná instance pro každého nájemce

Proč používat jmenné prostory

Mezi časté důvody pro použití jmenných prostorů patří:

Podrobný návod k izolaci vyhledávání podle tenanta najdete v Multitenancy.

Požadavky

Vazba jmenného prostoru vyžaduje následující minimální verze balíčků pro podporu typů TypeScript a lokálního vývoje.

Balíček Minimální verze
@cloudflare/workers-types 4.20260304.0
wrangler 4.68.1

Jak fungují jmenné prostory

Když přidáte ai_search_namespaces do konfigurace Wrangler určíte, ke kterému jmennému prostoru má vazba přístup. Vazba uděluje plný přístup ke všem instancím v daném jmenném prostoru. Za běhu můžete instance získávat, vypisovat, vytvářet a mazat.

{
  "$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"

Za běhu env.AI_SEARCH je handle jmenného prostoru. Použijte env.AI_SEARCH.get("my-instance") a získáte tak odkaz na konkrétní instanci:

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

get() metoda je synchronní a neprovádí síťové volání. Instance se vyhodnotí líně, až když zavoláte metodu jako search() nebo chatCompletions().

Výchozí jmenný prostor

A default jmenný prostor se automaticky vytvoří pro každý účet. Pokud nepotřebujete více jmenných prostorů, použijte default pro všechny vaše instance.

Můžete také vytvořit vazbu přímo na konkrétní instance ve výchozím jmenném prostoru pomocí ai_search vazba. Tím se každá položka naváže na jedinou již existující instanci, aniž by bylo nutné volat 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 vazba poskytuje stejné metody instance (search(), chatCompletions(), info(), stats(), items) ale nepodporuje operace na úrovni jmenného prostoru, jako je list(), create(), nebo delete().

Více jmenných prostorů

V rámci jednoho Workeru můžete deklarovat více vazeb na jmenné prostory. Každá vazba odpovídá jinému jmennému prostoru a poskytuje izolovaný přístup k jeho instancím.

{
  "$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"

Veřejné endpointy jmenného prostoru

Jmenný prostor může zveřejnit vlastní /search, /chat/completions, a /mcp koncové body. Jedna URL adresa pak prohledá instance, které vyberete v daném jmenném prostoru, a výsledky sloučí.

Viz Veřejné endpointy jmenného prostoru.

Jmenné prostory a jedinečnost instance

Název instance musí být v rámci jmenného prostoru jedinečný. To znamená, že můžete mít instanci s názvem docs v obou blog a support jmenných prostorů bez konfliktu.