API 概览
PaperBanana HTTP API:将生成、续跑、评测能力统一封装为异步任务接口。 通用流程: 1. 提交任务(POST) 2. 轮询状态(GET /api/v1/tasks/{task_id}) 3. 下载结果(GET /api/v1/tasks/{task_id}/artifact)
服务地址
https://api.paperbanana.me端点数量
7
生成时间
2026-02-26 13:32:41
调用流程:提交任务 -> 轮询状态 -> 下载结果。任务均为异步执行。
鉴权
除心跳检测与文档接口外,业务接口都需要 Bearer Token。
Authorization: Bearer <PAPERBANANA_API_TOKEN>
GET
心跳检测
/health
心跳检测
响应
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
curl -X GET "https://api.paperbanana.me/health"
POST
提交生成任务
需鉴权
/api/v1/tasks/generate
任务接口
请求类型(Content-Type)
application/json
{
"source_context": "我们的方法分为检索、规划、迭代精化三个阶段。",
"communicative_intent": "方法整体流程图",
"refinement_iterations": 3,
"optimize_inputs": true
}
参数说明
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
source_context |
body | string |
是 | 源文本上下文 |
communicative_intent |
body | string |
是 | 图表标题 / 要传达内容 |
refinement_iterations |
body | integer |
否 | 精化迭代次数 |
optimize_inputs |
body | boolean |
否 | 是否启用输入优化 |
auto_refine |
body | boolean |
否 | 是否自动迭代到满意 |
max_iterations |
body | integer |
否 | 最大迭代次数 |
output_format |
body | enum(png, jpeg, webp) |
否 | 输出图片格式(png/jpeg/webp) |
providers |
body | object |
否 | 按任务覆盖供应商与模型配置 |
providers.vlm_provider |
body | string |
否 | 覆盖 VLM 供应商 |
providers.vlm_model |
body | string |
否 | 覆盖 VLM 模型 |
providers.image_provider |
body | string |
否 | 覆盖图像供应商 |
providers.image_model |
body | string |
否 | 覆盖图像模型 |
| 状态码 | 说明 |
|---|---|
| 202 | 请求成功 |
| 422 | 参数校验错误 |
curl -X POST "https://api.paperbanana.me/api/v1/tasks/generate" -H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"source_context": "我们的方法分为检索、规划、迭代精化三个阶段。",
"communicative_intent": "方法整体流程图",
"refinement_iterations": 3,
"optimize_inputs": true
}'
POST
提交统计图任务
需鉴权
/api/v1/tasks/plot
任务接口
请求类型(Content-Type)
application/json
{
"intent": "比较不同模型在三个基准上的准确率",
"raw_data": {
"models": [
"A",
"B",
"C"
],
"mmlu": [
85.2,
88.1,
90.3
],
"arc": [
78.0,
80.5,
82.9
]
},
"refinement_iterations": 2
}
参数说明
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
intent |
body | string |
是 | 图表意图 |
raw_data |
body | any |
是 | 统计图原始数据(JSON) |
source_context |
body | string |
否 | 源文本上下文 |
refinement_iterations |
body | integer |
否 | 精化迭代次数 |
output_format |
body | enum(png, jpeg, webp) |
否 | 输出图片格式(png/jpeg/webp) |
providers |
body | object |
否 | 按任务覆盖供应商与模型配置 |
providers.vlm_provider |
body | string |
否 | 覆盖 VLM 供应商 |
providers.vlm_model |
body | string |
否 | 覆盖 VLM 模型 |
providers.image_provider |
body | string |
否 | 覆盖图像供应商 |
providers.image_model |
body | string |
否 | 覆盖图像模型 |
| 状态码 | 说明 |
|---|---|
| 202 | 请求成功 |
| 422 | 参数校验错误 |
curl -X POST "https://api.paperbanana.me/api/v1/tasks/plot" -H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"intent": "比较不同模型在三个基准上的准确率",
"raw_data": {
"models": [
"A",
"B",
"C"
],
"mmlu": [
85.2,
88.1,
90.3
],
"arc": [
78.0,
80.5,
82.9
]
},
"refinement_iterations": 2
}'
POST
提交续跑任务
需鉴权
/api/v1/tasks/continue
任务接口
请求类型(Content-Type)
application/json
{
"run_id": "run_20260226_120000_ab12cd",
"additional_iterations": 2,
"user_feedback": "把箭头更粗一些,阶段颜色区分更明显。"
}
参数说明
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
run_id |
body | string |
否 | 已有运行 ID |
continue_latest |
body | boolean |
否 | 是否续跑最新 run |
additional_iterations |
body | integer |
否 | 追加迭代次数 |
user_feedback |
body | string |
否 | 用户反馈 |
auto_refine |
body | boolean |
否 | 是否自动迭代到满意 |
max_iterations |
body | integer |
否 | 最大迭代次数 |
output_format |
body | enum(png, jpeg, webp) |
否 | 输出图片格式(png/jpeg/webp) |
providers |
body | object |
否 | 按任务覆盖供应商与模型配置 |
providers.vlm_provider |
body | string |
否 | 覆盖 VLM 供应商 |
providers.vlm_model |
body | string |
否 | 覆盖 VLM 模型 |
providers.image_provider |
body | string |
否 | 覆盖图像供应商 |
providers.image_model |
body | string |
否 | 覆盖图像模型 |
| 状态码 | 说明 |
|---|---|
| 202 | 请求成功 |
| 422 | 参数校验错误 |
curl -X POST "https://api.paperbanana.me/api/v1/tasks/continue" -H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"run_id": "run_20260226_120000_ab12cd",
"additional_iterations": 2,
"user_feedback": "把箭头更粗一些,阶段颜色区分更明显。"
}'
POST
提交评测任务
需鉴权
/api/v1/tasks/evaluate
任务接口
请求类型(Content-Type)
multipart/form-data
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
generated_image |
body | file |
是 | 待评测生成图文件 |
reference_image |
body | file |
是 | 参考图文件 |
source_context |
body | string |
是 | 源文本上下文 |
caption |
body | string |
是 | 图表标题 |
vlm_provider |
body | string |
否 | 评测时覆盖 VLM 供应商 |
vlm_model |
body | string |
否 | 评测时覆盖 VLM 模型 |
| 状态码 | 说明 |
|---|---|
| 202 | 请求成功 |
| 422 | 参数校验错误 |
curl -X POST "https://api.paperbanana.me/api/v1/tasks/evaluate" -H "Authorization: Bearer " \
-F "generated_image=@generated.png" \
-F "reference_image=@reference.png" \
-F "source_context=..." \
-F "caption=..."
GET
查询任务状态
需鉴权
/api/v1/tasks/{task_id}
任务接口
参数说明
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
task_id |
path | string |
是 | 任务 ID |
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 422 | 参数校验错误 |
curl -X GET "https://api.paperbanana.me/api/v1/tasks/{task_id}" -H "Authorization: Bearer "
GET
下载任务结果
需鉴权
/api/v1/tasks/{task_id}/artifact
任务接口
参数说明
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
task_id |
path | string |
是 | 任务 ID |
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 422 | 参数校验错误 |
curl -X GET "https://api.paperbanana.me/api/v1/tasks/{task_id}/artifact" -H "Authorization: Bearer "