Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

AI Search

最終更新 Markdown で表示Agent セットアップ

エージェントは AI Search を使い、インデックス済みコンテンツから関連情報を取得し、AI モデルの呼び出し を補強できます。AI Search はインデックス作成、検索、任意のチャット補完まで、検索パイプラインをまとめて管理します。

AI Search は、次のようなときに使います。

  • プロダクトドキュメント、サポートコンテンツ、ユーザーファイル、社内ナレッジベースを検索する。
  • モデルを呼び出す前に、関連するチャンクを取得する。
  • 検索基盤を自前で作らず、マネージドなインデックスを使う。
  • R2 バケット、Web サイト、アップロードしたファイルのコンテンツを問い合わせる。

基本的なパターン

AI Search を Worker にバインドし、エージェントのメソッドからインスタンスをクエリします。

import { Agent, callable } from "agents";

export class SearchAgent extends Agent {
	@callable()
	async searchKnowledge(query) {
		const instance = this.env.AI_SEARCH.get("my-instance");

		const results = await instance.search({
			messages: [{ role: "user", content: query }],
		});

		return results;
	}
}
import { Agent, callable } from "agents";

type Env = {
	AI_SEARCH: AiSearchNamespace;
};

export class SearchAgent extends Agent<Env> {
	@callable()
	async searchKnowledge(query: string) {
		const instance = this.env.AI_SEARCH.get("my-instance");

		const results = await instance.search({
			messages: [{ role: "user", content: query }],
		});

		return results;
	}
}

回答を生成するときは、chatCompletions() で関連コンテンツの取得と応答生成を一度に行います。

const instance = this.env.AI_SEARCH.get("my-instance");

const response = await instance.chatCompletions({
	messages: [{ role: "user", content: "How do I deploy an Agent?" }],
	model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
	ai_search_options: {
		retrieval: {
			max_num_results: 5,
		},
	},
});
const instance = this.env.AI_SEARCH.get("my-instance");

const response = await instance.chatCompletions({
	messages: [{ role: "user", content: "How do I deploy an Agent?" }],
	model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
	ai_search_options: {
		retrieval: {
			max_num_results: 5,
		},
	},
});

設定

エージェントが AI Search インスタンスを名前で参照するときは、ai_search_namespaces バインディングを使います。

{
	"ai_search_namespaces": [
		{
			"binding": "AI_SEARCH",
			"namespace": "default",
			"remote": true
		}
	]
}
[[ai_search_namespaces]]
binding = "AI_SEARCH"
namespace = "default"
remote = true

wrangler dev でのローカル開発中に、デプロイ済みの AI Search インスタンスをクエリするには remote: true を指定します。

関連リソース

AI Search

Web サイト、R2 バケット、アップロードしたファイルに対するマネージドな検索パイプラインを作成します。

役に立ちましたか?