← Cloudflare Workers AI / workers-ai / features / batch-api
Workers Binding
Для работы с Batch API можно использовать Workers Bindings.
Отправка запроса Batch
Отправьте начальный пакетный запрос на инференс, составив JSON-нагрузку, содержащую массив отдельных запросов на инференс и queueRequest: true (именно оно управляет постановкой в очередь).
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 для опроса его статуса. Во время обработки 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 который соответствует индексу промпта в вашем исходном запросе.