主题
获取 Gemini LLM 响应的已完成任务
GET /v3/ai_optimization/gemini/llm_responses/tasks_ready
本接口使用 GET 方法,路径为:
GET https://api.seermartech.cn/v3/ai_optimization/gemini/llm_responses/tasks_ready
用于获取尚未领取结果的已完成任务列表。
当您使用标准任务提交方式且未设置 postback_url 时,可通过本接口获取所有已完成任务的 id,再调用对应的任务结果获取接口领取任务结果。
处理说明
- 标准方式提交的任务最长可能需要 72 小时完成。
- 如果任务在 72 小时未完成,将被标记为失败,预扣费用会退还。
- 如果账户余额为负,即使任务已经成功完成,也无法获取任务结果。
- 已完成任务队列可能存在短暂延迟,处理大量任务时明显。
- 每个任务在成功领取前都会保留在列表中。
- 每分钟最多调用本接口 20 次。
- 每次调用最多返回过去 3 天完成的 1000 个任务。
- 已经领取的任务不会再次返回。
- 任务完成 3 天仍未领取时,将从列表中移除。
- 如果任务设置了
postback_url,正常不会出现在本列表中。当向您的服务器发送回调失败,且服务器返回的 HTTP 状态码小于200或大于300时,任务才可能出现在列表中。 - 如果系统每分钟需要领取 1000 个任务,建议优使用回调通知机制,并通过本接口补查询回调失败的任务。
计费
获取已完成任务列表不收取费用。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求
请求方式
http
GET /v3/ai_optimization/gemini/llm_responses/tasks_ready请求头
http
Authorization: Bearer smt_live_YOUR_KEY
Content-Type: application/json本接口无需请求参数,也无需请求体。
响应结构
服务端返回 JSON 数据 tasks 数组任务集合及已完成任务信息。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用响应状态码。完整错误码请参考错误码文档 |
status_message | string | 通用状态说明 |
time | string | 请求执行耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务集合数量 |
tasks_error | integer | tasks 数组中返回错误的任务集合数量 |
tasks | array | 任务集合数组 |
tasks 数组字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务集合标识,UUID 格式 |
status_code | integer | 任务集合状态码,通常在 10000 至 60000 范围 |
status_message | string | 任务集合状态说明 |
time | string | 任务集合处理耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量 |
path | array | 请求路径信息 |
data | object | 请求中传递的参数 |
result | array | 已完成任务列表 |
tasks[].data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
api | string | API 模块名称,通常为 ai_optimization |
function | string | 功能名称,通常为 llm_responses |
se | string | 使用的模型或搜索引擎标识,Gemini 任务为 gemini |
tasks[].result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 已完成任务的唯一标识,UUID 格式 |
se | string | 创建任务时指定的 LLM 模型 |
function | string | 任务类型 |
date_posted | string | 任务提交时间,使用 UTC 格式 |
tag | string | 用户自定义任务标识 |
endpoint | string | 获取该任务结果的 URL,可使用此地址继续领取结果 |
响应示例
json
{
"version": "0.1.20250526",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1220 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "6f2c4d8e-7c2c-4cfb-9a4a-0f6a4e3f8c10",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0010 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"ai_optimization",
"gemini",
"llm_responses",
"tasks_ready"
],
"data": {
"api": "ai_optimization",
"function": "llm_responses",
"se": "gemini"
},
"result": [
{
"id": "4a1e1b12-9db5-4fd6-8d1a-9d3b6f7c2e11",
"se": "gemini",
"function": "llm_responses",
"date_posted": "2025-05-26 08:15:30 +00:00",
"tag": "seo-report-001",
"endpoint": "https://api.seermartech.cn/v3/ai_optimization/gemini/llm_responses/task_get"
}
]
}
]
}调用示例
cURL
bash
curl --location --request GET \
"https://api.seermartech.cn/v3/ai_optimization/gemini/llm_responses/tasks_ready" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
url = "https://api.seermartech.cn/v3/ai_optimization/gemini/llm_responses/tasks_ready"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
if data.get("status_code") == 20000:
for task_group in data.get("tasks", []):
for task in task_group.get("result", []):
print(f"已完成任务:{task.get('id')}")
print(f"结果地址:{task.get('endpoint')}")
else:
print(
f"请求失败,状态码:{data.get('status_code')},"
f"消息:{data.get('status_message')}"
)TypeScript
typescript
import axios from "axios";
async function getReadyTasks() {
const response = await axios.get(
"https://api.seermartech.cn/v3/ai_optimization/gemini/llm_responses/tasks_ready",
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const data = response.data;
if (data.status_code !== 20000) {
throw new Error(
`请求失败,状态码:${data.status_code},消息:${data.status_message}`
);
}
for (const taskGroup of data.tasks ?? []) {
for (const task of taskGroup.result ?? []) {
console.log(`已完成任务:${task.id}`);
console.log(`结果地址:${task.endpoint}`);
}
}
return data;
}
getReadyTasks().catch((error) => {
console.error("获取已完成任务失败:", error.message);
});错误处理建议
建议根据以下字段实现异常处理:
- 检查顶层
status_code是否为成功状态。 - 检查
tasks_error,识别返回异常的任务集合。 - 检查任务集合中的
status_code和status_message。 - 处理
tasks为空的,该表示当前没有符合条件的已完成任务。 - 领取结果前确认
endpoint不为空。 - 记录任务
id、tag和错误信息,便于重试和问题追踪。
实用场景
- 轮询已完成的 Gemini分析任务,及时领取批量生成结果并更新 SEO生产流程。
- 补偿回调失败的任务,通过查询任务 ID 重新获取未成功推送到业务服务器的结果,数据丢失。
- 构建任务状态看板,统计已完成、失败和领取任务数量,帮助运营团队掌握批量任务进度。
- 按
tag管理业务任务,将已完成结果到项目、客户、页面或报告批次,提升数据归档效率。 - 控制高并发结果领取节奏,每分钟 20 次调用和单次最多 1000 个任务的限制设计轮询策略,降低请求失败率。