← Přehled / ai-search / concepts
Jmenné prostory
Každá instance AI Search patří do namespace. Jmenný prostor je logické seskupení instancí v rámci vašeho účtu.
Proč používat jmenné prostory
Mezi časté důvody pro použití jmenných prostorů patří:
- Oddělení domén: Rozdělte instance podle oblasti produktu, například
blog,support, adocs. - Izolace tenanta: Každému tenantovi přiřaďte vlastní jmenný prostor, aby se názvy instancí mezi tenanty nekřížily.
- Izolace agenta: Dejte každému agentovi vlastní jmenný prostor pro nezávislou správu kontextu.
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.