Skip to content

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

Workers Binding

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

Workers Binding を使って、Batch API を操作できます。

バッチリクエストを送信する

個別の推論リクエストの配列と、キュー動作を制御する queueRequest: true プロパティを含む JSON ペイロードを組み立てて、最初のバッチ推論リクエストを送信します。

src/index.tsts
export interface Env {
	AI: Ai;
}
export default {
	async fetch(request, env): Promise<Response> {
		const embeddings = await env.AI.run(
			"@cf/baai/bge-m3",
			{
				requests: [
					{
						query: "This is a story about Cloudflare",
						contexts: [
							{
								text: "This is a story about an orange cloud",
							},
							{
								text: "This is a story about a llama",
							},
							{
								text: "This is a story about a hugging emoji",
							},
						],
					},
				],
			},
			{ queueRequest: true },
		);

		return Response.json(embeddings);
	},
} satisfies ExportedHandler<Env>;
{
	"status": "queued",
	"model": "@cf/baai/bge-m3",
	"request_id": "000-000-000"
}

次の値が返ります。

  • status: リクエストがキューに入ったことを示します。
  • request_id: バッチリクエストの一意の識別子です。
  • model: バッチ推論に使ったモデルです。

このうち request_id は、バッチの状態をポーリングする ときに必要です。

バッチの状態をポーリングする

バッチリクエストがキューに入ったら、request_id を使って状態をポーリングします。処理中は、リクエストがまだキューにあるか処理中であることを示す queued または running が返ります。

export interface Env {
	AI: Ai;
}

export default {
	async fetch(request, env): Promise<Response> {
		const status = await env.AI.run("@cf/baai/bge-m3", {
			request_id: "000-000-000",
		});

		return Response.json(status);
	},
} satisfies ExportedHandler<Env>;
{
	"responses": [
		{
			"id": 0,
			"result": {
				"response": [
					{ "id": 0, "score": 0.73974609375 },
					{ "id": 1, "score": 0.642578125 },
					{ "id": 2, "score": 0.6220703125 }
				]
			},
			"success": true,
			"external_reference": "reference-1"
		}
	],
	"usage": { "prompt_tokens": 12, "completion_tokens": 0, "total_tokens": 12 }
}

推論が完了すると、API は最終的な HTTP ステータスコード 200 と、レスポンスの配列を返します。各レスポンスオブジェクトは個別の入力プロンプトに対応し、id で元のリクエスト内のプロンプトのインデックスを識別します。

役に立ちましたか?