← Přehled / ai-search / how-to
Vytvoření jednoduchého vyhledávače
Tento návod sestaví vyhledávač, který vrací názvy souborů odpovídající dotazu, a to pomocí search() metodu na Workers binding. Můžete ho upravit tak, aby používal REST API místo toho.
Pro co nejlepší výsledky s tímto vzorem:
- Zakažte přepisování dotazů, aby se přímo porovnával původní dotaz uživatele.
- Nakonfigurujte svou instanci AI Search s malou velikostí částí obsahu (obvykle stačí 256 tokenů).
Předpoklady
- 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ší.
Také potřebujete instanci AI Search, která již obsahuje zaindexovaný obsah. Vytvoření instance a přidání obsahu najdete v Začínáme.
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 search-engine spuštěním:
npm create cloudflare@latest -- search-enginePř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 search-engine2. Propojte Worker s AI Search pomocí vazby
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 namespace na env.AI_SEARCH. remote volba umožňuje wrangler dev předávají požadavky na vaši nasazenou instanci, protože AI Search neběží lokálně.
3. Přidejte kód vyhledávání
Aktualizujte src/index.ts. Tento Worker načte dotaz z URL adresy, prohledá vaši instanci a vrátí název souboru každé odpovídající části obsahu. Nahraďte my-instance s názvem vaší instance.
export default {
async fetch(request, env) {
const url = new URL(request.url);
const userQuery = url.searchParams.get("query") ?? "What is Cloudflare?";
const searchResult = await env.AI_SEARCH.get("my-instance").search({
messages: [{ role: "user", content: userQuery }],
});
return Response.json({
files: searchResult.chunks.map((chunk) => chunk.item.key),
});
},
};export interface Env {
AI_SEARCH: AiSearchNamespace;
}
export default {
async fetch(request, env): Promise<Response> {
const url = new URL(request.url);
const userQuery = url.searchParams.get("query") ?? "What is Cloudflare?";
const searchResult = await env.AI_SEARCH.get("my-instance").search({
messages: [{ role: "user", content: userQuery }],
});
return Response.json({
files: searchResult.chunks.map((chunk) => chunk.item.key),
});
},
} satisfies ExportedHandler<Env>;4. Spusťte a nasaďte
Spusťte místní vývojový server a poté ho dotazujte na /?query=your+search+terms:
npx wrangler devPřihlaste se pomocí svého účtu Cloudflare, poté nasaďte svůj Worker, aby byl dostupný na internetu:
npx wrangler login
npx wrangler deploy