INTEGRITY Dokumentace

Workers binding

Tento návod vás provede vytvořením instance AI Search a jejím dotazováním z Cloudflare Worker pomocí Workers Binding. Workers Binding používá runtime API která běží uvnitř Workeru a volá AI Search bez nutnosti spravovat API tokeny.

  1. Zaregistrujte si účet Cloudflare ↗.
  2. Nainstalujte Node.js ↗.

Správce verzí Node.js

Použijte správce verzí Node, jako je Volta ↗ nebo nvm ↗ abyste se vyhnuli problémům s oprávněními a mohli měnit verze Node.js. Wrangler, o kterém se dozvíte dále v této příručce, vyžaduje verzi Node 16.17.0 nebo novější.

1. Vytvořte projekt Worker

Vytvořte nový projekt Worker pomocí create-cloudflare CLI (C3). C3 ↗ je nástroj příkazové řádky, který vám pomůže nastavit a nasadit nové aplikace na Cloudflare.

Vytvořte nový projekt s názvem ai-search-tutorial spuštěním:

npm create cloudflare@latest -- ai-search-tutorial

Při nastavení vyberte následující možnosti:

Přejděte do adresáře své aplikace:

cd ai-search-tutorial

Vytvořte vazbu mezi svým Workerem a svou instancí AI Search. Bindings umožňují vašemu Workeru pracovat se zdroji na Cloudflare Developer Platform.

Přidejte následující do svého Konfigurační soubor Wrangler:

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

Tím se naváže default jmenný prostor na env.AI_SEARCH. Instance, které vytvoříte bez zadání jmenného prostoru, patří do default jmenný prostor. remote volba umožňuje wrangler dev předávají požadavky na vaši nasazenou instanci, protože AI Search neběží lokálně. Všechny možnosti bindingu najdete v Referenční dokumentace k vazbě Workers.

3. Vytvořte a dotazujte AI Search z Workeru

Aktualizujte src/index.ts soubor v ai-search-tutorial s následujícím kódem. Exponuje dvě cesty (routes): /setup vytvoří instanci s názvem my-instance a naindexuje ukázkový dokument, který výchozí trasa poté prohledává.

src/index.js
export default {
	async fetch(request, env) {
		const url = new URL(request.url);

		// Visit /setup once to create an instance and index a sample document.
		if (url.pathname === "/setup") {
			const instance = await env.AI_SEARCH.create({ id: "my-instance" });
			const item = await instance.items.uploadAndPoll(
				"getting-started.md",
				"AI Search indexes uploaded content for retrieval.",
			);
			return Response.json({ created: "my-instance", status: item.status });
		}

		// Query the instance.
		const query = url.searchParams.get("q") ?? "What does AI Search do?";

		const results = await env.AI_SEARCH.get("my-instance").search({
			messages: [{ role: "user", content: query }],
			ai_search_options: {
				retrieval: { max_num_results: 3 },
			},
		});

		return Response.json(results.chunks);
	},
};
src/index.ts
export interface Env {
	AI_SEARCH: AiSearchNamespace;
}

export default {
	async fetch(request, env): Promise<Response> {
		const url = new URL(request.url);

		// Visit /setup once to create an instance and index a sample document.
		if (url.pathname === "/setup") {
			const instance = await env.AI_SEARCH.create({ id: "my-instance" });
			const item = await instance.items.uploadAndPoll(
				"getting-started.md",
				"AI Search indexes uploaded content for retrieval.",
			);
			return Response.json({ created: "my-instance", status: item.status });
		}

		// Query the instance.
		const query = url.searchParams.get("q") ?? "What does AI Search do?";

		const results = await env.AI_SEARCH.get("my-instance").search({
			messages: [{ role: "user", content: query }],
			ai_search_options: {
				retrieval: { max_num_results: 3 },
			},
		});

		return Response.json(results.chunks);
	},
} satisfies ExportedHandler<Env>;

4. Vyvíjejte lokálně

Spusťte místní vývojový server:

npx wrangler dev

Wrangler vám poskytne adresu URL (obvykle localhost:8787). Přejděte na /setup jednou, čímž vytvoříte instanci a zaindexujete ukázkový dokument, poté ji dotazujte na /?q=your+search+terms.

5. Nasaďte svůj Worker

Přihlaste se ke svému účtu Cloudflare:

npx wrangler login

Nasaďte svůj Worker, aby byl dostupný na internetu:

npx wrangler deploy
https://ai-search-tutorial.<YOUR_SUBDOMAIN>.workers.dev

Další kroky

Vazba Workers pro Search

Úplná referenční dokumentace k vyhledávání a chatování z Workeru.

Items Workers binding

Nahrávejte, vypisujte a spravujte dokumenty z Workeru.