Gemini 批量任务 API
本文档描述通过 XinnetModel 创建、查询与下载 Gemini(Vertex 风格)批量预测任务的接口,适用于大批量异步文本生成场景。
当前支持的模型 ID (创建任务时 model 字段仅支持以下三种):
publishers/google/models/gemini-3.1-pro-previewpublishers/google/models/gemini-3-flash-previewpublishers/google/models/gemini-3-pro-image-preview
认证说明
所有接口支持以下任一方式携带 API Key(请勿在文档或代码中写真实 Key,使用环境变量或配置占位符):
Authorization: Bearer <your_api_key>x-goog-api-key: <your_api_key>
Base URL 示例: https://airouter.xincache.cn。
流程概览
上传输入文件 :将 JSONL 输入文件上传到平台存储(GCS),获得文件标识。
创建批量任务 :提交批量任务,指定模型、输入文件 URI、输出目录前缀。
查询任务状态 :轮询任务状态,直至完成或失败。
下载结果文件 :任务完成后,根据输出目录下载
predictions.jsonl。
1. 上传批量任务输入文件
将批量任务的输入文件(JSONL)上传到平台,用于后续创建任务时作为输入源。
请求
方法 / 路径:
POST /v1/filesContent-Type:
multipart/form-data必填字段:
purpose:固定为batch:gcs(用于 Gemini 批量任务时必须填写)。file:输入文件(JSONL)。
响应
返回 OpenAI 风格文件对象,主要字段:
字段 | 类型 | 说明 |
|---|---|---|
id | string | 文件在存储中的对象名 |
object | string | 固定为 |
bytes | int64 | 文件大小(字节) |
created_at | int64 | 创建时间戳 |
purpose | string | 即请求中的 |
与创建任务的约定 :上传接口返回的 id 为文件在 GCS 中的对象名。创建批量任务时, inputConfig.gcsSource.uris 需填写完整 GCS URI,格式为: gs://<bucket>/<id> ,其中 <bucket> 由平台为批量任务分配,以控制台或当前环境说明为准(例如 gs://gemini-batch-001/<id> )。不可使用数组,仅支持字符串形式的单个 URI。
示例
返回
2. 创建批量任务
请求
方法 / 路径:
POST /v1beta/batchPredictionJobsContent-Type:
application/json
请求体(仅列与 Gemini 批量任务相关字段)
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
displayName | string | 否 | 任务展示名称 |
model | string | 是 | 模型资源名,如 |
inputConfig.instancesFormat | string | 是 | 输入格式,如 |
inputConfig.gcsSource.uris | string | 是 | 输入文件 GCS URI(字符串 ),bucket 必须为gemini-batch-001,即 |
outputConfig.predictionsFormat | string | 是 | 输出格式,如 |
outputConfig.gcsDestination.outputUriPrefix | string | 是 | 输出目录前缀,必须指定 |
响应
返回 Vertex 风格任务对象。成功创建时,响应中会包含 name 字段(可能为长资源名)。服务会将其中最后一段作为 batch_id/job_id 供后续查询与下载使用;客户端可按 name 或服务返回的简短 id 作为任务唯一标识。
示例
返回
3. 查询批量任务状态
请求
方法 / 路径:
GET /v1beta/batchPredictionJobs/:job_id路径参数:
job_id为创建任务后得到的任务 ID(即name中最后一段或接口返回的 id)。
响应
返回 Vertex 风格任务详情,主要字段包括:
字段 | 类型 | 说明 |
|---|---|---|
name | string | 任务资源名或短 id |
state | string | 任务状态,见下方状态码说明 |
outputInfo.gcsOutputDirectory | string | 输出目录(用于下载时作为 file_id) |
completionStats | object | 完成统计(如 successfulCount) |
任务状态码(state)
state 取值 | 含义 |
|---|---|
| 已创建,等待调度 |
| 执行中 |
| 成功完成 |
| 失败 |
| 已取消 |
| 已暂停 |
任务完成后,使用 outputInfo.gcsOutputDirectory 作为下一步下载接口的 file_id (传入的是目录,不是单文件路径)。
示例(Gemini 格式认证)
4. 下载批量任务结果文件
任务状态为完成后,可通过本接口下载该任务的结果文件(固定为 predictions.jsonl)。
请求
方法 / 路径:
GET /v1/batchPredictionJobs/content?file_id=<gcsOutputDirectory>查询参数:
file_id (必填):任务输出目录的 GCS URI(即查询任务接口返回的
outputInfo.gcsOutputDirectory),例如gs://gemini-batch-001/output/prediction-model-2026-03-11T06:15:44.636340Z。服务会在该目录下定位并返回predictions.jsonl,因此传入的是目录,不要传单文件名。
响应
成功:返回
predictions.jsonl文件流(如Content-Type: application/octet-stream或application/jsonl)。失败:返回相应 HTTP 状态码与错误信息。
示例
小结
步骤 | 接口 | 说明 |
|---|---|---|
1 |
| 上传输入文件, |
2 |
| 创建任务, |
3 |
| 查询状态,从响应中取 |
4 |
| 下载结果, file_id 填输出目录 ,服务返回该目录下 predictions.jsonl |