INTEGRITY Документация

Workers Binding

Для работы с Batch API можно использовать Workers Bindings.

Отправка запроса Batch

Отправьте начальный пакетный запрос на инференс, составив JSON-нагрузку, содержащую массив отдельных запросов на инференс и queueRequest: true (именно оно управляет постановкой в очередь).

src/index.ts
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"
}

Вы получите ответ со следующими значениями:

Из них request_id важен, когда вам нужно опрашивать статус пакетной обработки.

Проверка статуса пакета

После постановки пакетного запроса в очередь используйте request_id для опроса его статуса. Во время обработки API возвращает статус 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 который соответствует индексу промпта в вашем исходном запросе.