← Přehled / ai-search / how-to
Přidejte na web vyhledávání
Tento tutoriál vytvoří instanci AI Search, která zaindexuje váš web, a poté do frontendu vašeho webu přidá funkční vyhledávací panel, chatovací bublinu a vyhledávací modální okno. Používá přitom Úryvky UI, předpřipravené webové komponenty, které se připojí k veřejnému koncovému bodu vaší instance, takže vyhledávání přidáte jen několika řádky kódu na straně frontendu.
Co vytvoříte: Instance AI Search, která indexuje váš web, spolu s vyhledávacím panelem, chatovací bublinou a vyhledávacím modálním oknem, jež se přidají do frontendu vašeho webu a dotazují se na tento obsah.
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ší.
Tento tutoriál přidá vyhledávání do existující aplikace React. Pokud začínáte nový projekt, nejprve si ho vytvořte pomocí Průvodce frameworkem React, poté postupujte podle dalších kroků. Úryvky kódu jsou webové komponenty nezávislé na frameworku, takže stejný postup funguje i v jiných frameworcích nebo v čistém HTML, jak je ukázáno v Úryvky UI.
1. Vytvořte instanci AI Search
Vytvořte instanci pomocí Wrangler CLI. Chcete-li zaindexovat web, který vlastníte, připojte ho jako zdroj dat, aby ho AI Search automaticky procházela a indexovala:
npx wrangler ai-search create my-search --type web-crawler --source <YOUR_DOMAIN>Nahraďte <YOUR_DOMAIN> s doménou onboardovaný do vašeho účtu Cloudflare. Chcete-li vytvořit instanci bez zdroje dat a nahrávat soubory sami, spusťte npx wrangler ai-search create my-search --type builtin a přidejte obsah z dashboard.
Kontrola průběhu indexování:
npx wrangler ai-search stats my-searchJakmile indexování dokončí, můžete dotaz otestovat z příkazové řádky:
npx wrangler ai-search search my-search --query 'What is this site about?'2. Povolte veřejný endpoint
Úryvky UI se připojují k vaší instanci prostřednictvím jejího veřejného endpointu.
-
Přejděte na AI Search na Cloudflare dashboardu.
Přejděte na AI Search ↗ -
Vyberte svůj
my-searchinstance. -
Přejděte na Nastavení > Veřejný koncový bod.
-
Zapněte Povolte veřejný endpoint.
-
Zkopírujte ID veřejného endpointu z adresy URL,
https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/. Použijete ho v dalších krocích.
3. Nainstalujte knihovnu snippetů
V projektu svého webu nainstalujte Knihovna úryvků UI pro AI Search:
npm i @cloudflare/ai-search-snippet4. Přidejte komponenty vyhledávání
Naimportujte knihovnu snippetů do jedné ze svých komponent a přidejte značky tam, kde se má zobrazit vyhledávání. Jednorázový import balíčku zaregistruje komponenty v prohlížeči. Následující příklad přidává vyhledávací panel, plovoucí bublinu chatu a vyhledávací modální okno, které se otevře pomocí Cmd/Ctrl+K do kořenové komponenty aplikace. Nahraďte <PUBLIC_ENDPOINT_ID> s ID veřejného endpointu z kroku dva.
import type { CSSProperties } from "react";
import "@cloudflare/ai-search-snippet";
export default function App() {
return (
<div>
<search-bar-snippet
api-url="https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/"
placeholder="Search..."
max-results={50}
max-render-results={10}
show-url="true"
show-date="true"
/>
<chat-bubble-snippet
api-url="https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/"
style={
{
"--search-snippet-primary-color": "#F6821F",
} as CSSProperties
}
/>
<search-modal-snippet
api-url="https://<PUBLIC_ENDPOINT_ID>.search.ai.cloudflare.com/"
placeholder="Search documentation..."
shortcut="k"
show-url="true"
show-date="true"
/>
</div>
);
}Přidejte deklarace TypeScriptu pro vlastní elementy
Balíček úryvků obsahuje typové deklarace pro své třídy, ale neříká TypeScriptu, že <search-bar-snippet> a ostatní značky jsou platné prvky JSX. Vývojový server Vite neprovádí kontrolu typů, takže aplikace běží i bez tohoto kroku, ale přidání souboru s deklaracemi udržuje .tsx typové kontroly a editory, aby nehlásily chyby u vlastních značek.
Vytvořte deklarační soubor, například src/ai-search-snippet.d.ts:
import type { HTMLAttributes } from "react";
// Register the snippet web components as valid JSX elements. The index
// signature allows their custom attributes (such as api-url and placeholder).
type SnippetElement = HTMLAttributes<HTMLElement> & {
[attribute: string]: unknown;
};
declare module "react" {
namespace JSX {
interface IntrinsicElements {
"search-bar-snippet": SnippetElement;
"chat-bubble-snippet": SnippetElement;
"search-modal-snippet": SnippetElement;
}
}
}Tím se značky typují volně, takže je povolen libovolný atribut. Přísnější typy pro jednotlivé komponenty najdete v Deklarace React dema ↗ v repozitáři úryvků.
5. Povolte lokální origin
Veřejný endpoint používá CORS k řízení toho, které weby ho mohou volat. Přidejte origin, na kterém váš web během místního vývoje běží, aby se prohlížeč mohl k endpointu dostat. Aplikace Vite běží na http://localhost:5173.
- Ve své instanci AI Search přejděte na Nastavení > Veřejný koncový bod.
- V části Autorizovaní hostitelé, přidejte svůj lokální origin, například
http://localhost:5173. - Vyberte Save.
6. Otestujte to
Spusťte svůj vývojový server:
npm run devOtevřete svůj web v prohlížeči (aplikace Vite běží na http://localhost:5173). Napište do vyhledávacího pole a výsledky uvidíte v rozbalovací nabídce, klikněte na chatovací bublinu v rohu a položte otázku, nebo stiskněte Cmd/Ctrl+K a otevřete tak vyhledávací modální okno. Úplný přehled komponent, atributů a možností vzhledu najdete v Úryvky UI.
7. Přejděte do produkčního prostředí
Úryvky fungují všude, kde je váš web dostupný. Jakmile web nasadíte na produkční doménu, vraťte se do Nastavení > Veřejný koncový bod a přidejte tento origin do Autorizovaní hostitelé (jako v kroku pět), aby prohlížeč mohl v produkčním prostředí endpoint kontaktovat.