INTEGRITY Dokumentace

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:

Předpoklady

  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ší.

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-engine

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

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

cd search-engine

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 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.

src/index.js
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),
		});
	},
};
src/index.ts
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 dev

Přihlaste se pomocí svého účtu Cloudflare, poté nasaďte svůj Worker, aby byl dostupný na internetu:

npx wrangler login
npx wrangler deploy

Další kroky

Vazba Workers pro Search

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

Přepis dotazu

Ovládejte, zda AI Search před vyhledáváním přepíše dotaz.