← Přehled / ai-search / get-started
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.
- Zaregistrujte si účet Cloudflare ↗.
- 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-tutorialPři nastavení vyberte následující možnosti:
- Pro S čím byste chtěli začít?, vyberte
Hello World example. - Pro Jakou šablonu chcete použít?, vyberte
Worker only. - Pro Jaký jazyk chcete použít?, vyberte
TypeScript. - Pro Chcete používat git pro správu verzí?, vyberte
Yes. - Pro Chcete nasadit svou aplikaci?, vyberte
No(před nasazením provedeme ještě několik změn).
Přejděte do adresáře své aplikace:
cd ai-search-tutorial2. Připojte svůj Worker k AI Search
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 = trueTí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á.
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);
},
};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 devWrangler 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 loginNasaďte svůj Worker, aby byl dostupný na internetu:
npx wrangler deployhttps://ai-search-tutorial.<YOUR_SUBDOMAIN>.workers.dev