跳到正文
GitHub·· 5 天前AI 评分18

soenneker.blazor.cloudflare.aisearch:Cloudflare AI Search 的 Blazor 组件库

soenneker/soenneker.blazor.cloudflare.aisearch

AI 导读

soenneker.blazor.cloudflare.aisearch 提供 Cloudflare AI Search 的 Blazor 组件,包含搜索栏、搜索弹窗、聊天气泡和整页对话搜索四种形态。

正文

Blazor components for Cloudflare AI Search's search bar, search modal, chat bubble, and full-page chat snippets.

Cloudflare setup

In the AI Search instance, enable its public endpoint and add the application's origin to Authorized hosts. Use that public endpoint in the component; do not put Cloudflare API tokens or other secrets in a Blazor application.

Installation and registration

dotnet add package Soenneker.Blazor.Cloudflare.AiSearch
using Soenneker.Blazor.Cloudflare.AiSearch.Registrars;

builder.Services.AddCloudflareAiSearchInteropAsScoped();

Search bar

@using Soenneker.Blazor.Cloudflare.AiSearch
@using Soenneker.Blazor.Cloudflare.AiSearch.Configuration

<CloudflareAiSearchBar Configuration="_search" />

@code {
    private readonly CloudflareAiSearchBarConfiguration _search = new()
    {
        ApiUrl = "https://your-instance.search.ai.cloudflare.com/",
        HideSubmitButton = true,
        Placeholder = "Search the documentation...",
        MaxResults = 50,
        MaxRenderResults = 10,
        DebounceMilliseconds = 250,
        ShowUrl = true,
        ShowDate = true
    };
}

The component loads Cloudflare's ES module after its first render. ApiUrl must be an absolute HTTPS endpoint without credentials, a query, or a fragment. Loopback HTTP is accepted for local development.

Available components

Component Configuration Use
CloudflareAiSearchBar CloudflareAiSearchBarConfiguration Inline search input and results
CloudflareAiSearchModal CloudflareAiSearchModalConfiguration Search dialog, including keyboard shortcut options
CloudflareAiSearchChatBubble CloudflareAiSearchChatBubbleConfiguration Floating conversational search
CloudflareAiSearchChatPage CloudflareAiSearchChatPageConfiguration Full-page conversational search

All configurations support Theme, Placeholder, HideBranding, and JSON Translations. Search configurations add result limits, debounce, URL/date display, grouping, and JSON RequestOptions. Chat configurations add JSON ChatQueryRewrite.

Snippet version and hosting

By default, the module URL is built from the public endpoint and snippet version 0.0.25:

private readonly CloudflareAiSearchBarConfiguration _search = new()
{
    ApiUrl = "https://your-instance.search.ai.cloudflare.com/",
    ScriptVersion = "0.0.25"
};

Set ScriptUrl to an absolute module URL when self-hosting or pinning a different distribution:

ScriptUrl = "https://static.example.com/cloudflare/search-snippet.es.js"

The module URL must use HTTPS, except for loopback HTTP development URLs. It is executable browser code, so only configure an origin you trust and allow it in the application's Content Security Policy. Search queries and chat messages are sent to the configured public endpoint; apply appropriate disclosure and consent for the indexed content and user input.

来源:GitHub · github.com