INTEGRITY Dokumentace

Migrace vazby Workers

env.AI.autorag() binding je starší API pro AI Search. Bude fungovat i nadále, ale všechny nové funkce a vylepšení jsou dostupné pouze prostřednictvím nových vazeb AI Search.

Co se změnilo

Zde je přehled klíčových rozdílů mezi starším a novým bindingem:

Legacy New
Konfigurace Wrangler ai binding ai_search nebo ai_search_namespaces binding
Vzor přístupu env.AI.autorag("name") env.MY_INSTANCE nebo env.AI_SEARCH.get("name")
Formát vyhledávání query string messages array nebo query string
Formát odpovědi data pole chunks pole

AI Search bindingy

AI Search poskytuje dva nové bindingy:

Vazba instance (ai_search) se váže přímo na jednu instanci. Toto je nejjednodušší způsob migrace z env.AI.autorag().

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

Vazba jmenného prostoru (ai_search_namespaces) vám poskytuje přístup ke všem instancím v rámci jmenného prostoru. Použijte jej, pokud potřebujete dynamickou správu instancí, vyhledávání napříč instancemi nebo Items API.

// wrangler.jsonc
{
	"ai_search_namespaces": [
		{
			"binding": "AI_SEARCH",
			"namespace": "default",
		},
	],
}

Podrobnosti o rozdílu najdete v Jmenné prostory.

Požadavky

Nové vazby vyžadují 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

Krok 1: Aktualizujte konfiguraci Wrangler

Stávající instance se nacházejí ve výchozím jmenném prostoru. Pro jednoduchý postup upgradu použijte vazbu instance. Informace o vazbě jmenného prostoru najdete v AI Search bindingy.

Před:

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "ai": {
    "binding": "AI"
  }
}
[ai]
binding = "AI"

Poté:

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

[[ai_search]]
binding = "MY_INSTANCE"
instance_name = "my-instance"

Krok 2: Aktualizujte definici typu

Aktualizujte Env rozhraní, abyste mohli použít nový typ vazby.

Před:

export interface Env {
	AI: Ai;
}

Poté:

export interface Env {
	MY_INSTANCE: AiSearchInstance;
}

Krok 3: Aktualizujte volání vyhledávání

Nahraďte env.AI.autorag() volání novou vazbou.

Před:

const result = await env.AI.autorag("my-instance").search({
	query: "What is Cloudflare?",
});

Poté:

const result = await env.MY_INSTANCE.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
});

Krok 4: Aktualizujte zpracování odpovědi

Tvar odpovědi se změnil z data array na chunks pole.

Mapování položek

Staré pole Nové pole
data[] chunks[]
data[].file_id chunks[].id
data[].filename chunks[].item.key
data[].score chunks[].score
data[].content[].text chunks[].text
data[].attributes.modified_date chunks[].item.timestamp

Změny chování streamování

Ve starší vazbě streamování pomocí env.AI.autorag().aiSearch({ stream: true }) vracela pouze streamovanou odpověď bez získaných chunků.

Nová vazba odesílá získané chunky nejprve jako chunks událost, po které následuje streamovaná odpověď. Díky tomu můžete zdrojové chunky zobrazit ihned, zatímco se generovaná odpověď streamuje.

Změny formátu filtru

Nová vazba používá filtrování metadat ve stylu Vectorize. Filtry se nyní předávají uvnitř ai_search_options.retrieval.filters.

Starý formát Nový formát
eq $eq (nebo implicitní)
ne $ne
gt $gt
gte $gte
lt $lt
lte $lte
$in (nové)
$nin (nové)

Příklady

Jednoduchý filtr

Filtrování podle jediné položky metadat pomocí implicitní rovnosti:

Před:

const result = await env.AI.autorag("my-instance").search({
	query: "What is Cloudflare?",
	filters: {
		type: "eq",
		key: "folder",
		value: "customer-a/",
	},
});

Poté:

const result = await env.MY_INSTANCE.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
	ai_search_options: {
		retrieval: {
			filters: { folder: "customer-a/" },
		},
	},
});

Složený filtr (AND)

Kombinujte více podmínek, které musí být splněny všechny:

Před:

const result = await env.AI.autorag("my-instance").search({
	query: "What is Cloudflare?",
	filters: {
		type: "and",
		filters: [
			{ type: "eq", key: "folder", value: "customer-a/" },
			{ type: "gte", key: "timestamp", value: "1735689600000" },
		],
	},
});

Poté:

const result = await env.MY_INSTANCE.search({
	messages: [{ role: "user", content: "What is Cloudflare?" }],
	ai_search_options: {
		retrieval: {
			filters: {
				folder: "customer-a/",
				timestamp: { $gte: 1735689600 },
			},
		},
	},
});

Zpětná kompatibilita

env.AI.autorag() bude fungovat i nadále bez omezení. Migraci nemusíte provádět okamžitě.

Referenci staršího API najdete v Vazba Workers (starší).