Appearance
GeeDo 开发者文档
更新时间:2026-09-03
API 地址:https://api.gee-do.com
控制台:https://gee-do.com/console
GeeDo 提供兼容 OpenAI、Anthropic 和 Gemini 常用协议的 AI API,以及图片、音频、视频、模型价格和用量查询能力。
目录
1. 快速开始
1.1 创建 API Token
登录 GeeDo 控制台,在令牌页面创建 API Token。
Linux 或 macOS:
bash
export GEEDO_API_KEY="[REDACTED_SECRET]"
export GEEDO_BASE_URL="https://api.gee-do.com"PowerShell:
powershell
$env:GEEDO_API_KEY="[REDACTED_SECRET]"
$env:GEEDO_BASE_URL="https://api.gee-do.com"1.2 获取可用模型
bash
curl "$GEEDO_BASE_URL/v1/models" \
-H "Authorization: Bearer $GEEDO_API_KEY"响应:
json
{
"object": "list",
"data": [
{
"id": "MODEL_NAME",
"object": "model",
"created": 1626777600,
"owned_by": "provider"
}
]
}请求中的 model 使用 data[].id 返回的值。
1.3 发起对话
bash
curl "$GEEDO_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"messages": [
{"role": "user", "content": "用一句话介绍 GeeDo。"}
]
}'响应:
json
{
"id": "chatcmpl_ID",
"object": "chat.completion",
"created": 1785984000,
"model": "MODEL_NAME",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "GeeDo 是一个统一调用多种 AI 模型的 API 平台。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 16,
"completion_tokens": 20,
"total_tokens": 36
}
}2. 认证
2.1 Bearer Token
大多数接口使用:
http
Authorization: Bearer [REDACTED_SECRET]JSON 请求同时发送:
http
Content-Type: application/json
Accept: application/json2.2 Anthropic 请求头
POST /v1/messages 支持:
http
x-api-key: [REDACTED_SECRET]
anthropic-version: 2023-06-01
content-type: application/json2.3 Gemini 请求头
Gemini 原生接口支持:
http
x-goog-api-key: [REDACTED_SECRET]API Token 应保存在服务端,不要写入浏览器代码、公开仓库或 URL。
2.4 请求 ID
GeeDo 在响应头返回:
http
X-Oneapi-Request-Id: REQUEST_ID请求失败时,请保留请求时间、接口路径、模型名称、HTTP 状态码和 REQUEST_ID。
3. 模型与价格
3.1 模型列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/models | OpenAI 风格模型列表 |
| GET | /v1/models/ | 单个模型 |
| GET | /v1beta/models | Gemini 风格模型列表 |
| GET | /v1beta/openai/models | Gemini OpenAI 兼容模型列表 |
模型可能随账号分组和平台配置变化,调用前以 /v1/models 的实时结果为准。
3.2 价格目录
bash
curl "https://api.gee-do.com/api/pricing" \
-H "Accept: application/json"响应中的常用字段:
json
{
"success": true,
"data": [
{
"model_name": "MODEL_NAME",
"quota_type": 0,
"model_ratio": 1,
"model_price": 0,
"completion_ratio": 1,
"enable_groups": ["GROUP_NAME"],
"supported_endpoint_types": ["openai"],
"display_billing_unit": "request"
}
],
"supported_endpoint": {
"openai": {
"method": "POST",
"path": "/v1/chat/completions"
},
"openai-response": {
"method": "POST",
"path": "/v1/responses"
},
"anthropic": {
"method": "POST",
"path": "/v1/messages"
},
"gemini": {
"method": "POST",
"path": "/v1beta/models/{model}:generateContent"
},
"image-generation": {
"method": "POST",
"path": "/v1/images/generations"
}
},
"pricing_version": "PRICING_VERSION"
}| 字段 | 说明 |
|---|---|
| model_name | 调用时使用的模型 ID |
| quota_type | 0 为 Token/倍率计费,1 为固定价格类计费 |
| model_ratio | 输入倍率 |
| completion_ratio | 输出倍率 |
| model_price | 固定价格类模型的基础价格 |
| display_billing_unit | request、second 等计价单位 |
| supported_endpoint_types | 模型支持的接口类型 |
| supported_endpoint | 接口类型对应的方法和路径 |
| pricing_version | 价格目录版本 |
只有模型声明支持对应 endpoint type 时,才调用该接口。
3.3 额度换算
bash
curl "https://api.gee-do.com/api/status"读取响应中的 quota_per_unit 和 quota_display_type。展示类型为 USD 时:
text
消费金额(USD) = quota / quota_per_unit最终消费以用量日志中的 quota 为准。
4. Chat Completions
接口:
http
POST /v1/chat/completions4.1 非流式请求
json
{
"model": "MODEL_NAME",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello"}
],
"temperature": 0.7,
"stream": false
}响应正文位于 choices[0].message.content,用量位于 usage。
4.2 流式请求
json
{
"model": "MODEL_NAME",
"messages": [
{"role": "user", "content": "Hello"}
],
"stream": true,
"stream_options": {
"include_usage": true
}
}响应类型为 text/event-stream:
text
data: {"id":"chatcmpl_ID","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hel"},"finish_reason":null}]}
data: {"id":"chatcmpl_ID","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"lo"},"finish_reason":"stop"}]}
data: {"choices":[],"usage":{"prompt_tokens":12,"completion_tokens":3,"total_tokens":15}}
data: [DONE]按 SSE 事件解析 data,并以结束事件确认本次响应完成。
5. Responses API
接口:
http
POST /v1/responses5.1 请求
bash
curl "https://api.gee-do.com/v1/responses" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"input": "Explain this API briefly.",
"stream": false
}'5.2 响应
json
{
"id": "resp_ID",
"object": "response",
"created_at": 1785984000,
"status": "completed",
"model": "MODEL_NAME",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Response text."
}
]
}
],
"usage": {
"input_tokens": 8,
"output_tokens": 4,
"total_tokens": 12
}
}流式请求设置 stream=true。常见事件包括:
text
response.created
response.output_text.delta
response.completedResponses Compaction:
http
POST /v1/responses/compact6. Anthropic 与 Gemini
6.1 Anthropic Messages
bash
curl "https://api.gee-do.com/v1/messages" \
-H "x-api-key: $GEEDO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
]
}'响应:
json
{
"id": "msg_ID",
"type": "message",
"role": "assistant",
"model": "MODEL_NAME",
"content": [
{"type": "text", "text": "Hello!"}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 8,
"output_tokens": 3
}
}流式请求设置 stream=true。
6.2 Gemini GenerateContent
bash
curl "https://api.gee-do.com/v1beta/models/MODEL_NAME:generateContent" \
-H "x-goog-api-key: $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "Hello"}]
}
]
}'流式生成:
http
POST /v1beta/models/MODEL_NAME:streamGenerateContent?alt=sseGemini Embedding:
http
POST /v1beta/models/MODEL_NAME:embedContent7. 图片音频和向量
7.1 图片生成
bash
curl "https://api.gee-do.com/v1/images/generations" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"prompt": "A quiet city street after rain",
"n": 1,
"size": "1024x1024",
"response_format": "url"
}'响应:
json
{
"created": 1785984000,
"data": [
{
"url": "https://MEDIA_HOST/path/image.png",
"b64_json": "",
"revised_prompt": "A quiet city street after rain"
}
]
}response_format=b64_json 时,图片正文位于 data[].b64_json。尺寸、质量、数量和输出格式以模型能力为准。
7.2 图片编辑
bash
curl "https://api.gee-do.com/v1/images/edits" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-F "model=MODEL_NAME" \
-F "prompt=Replace the sky with stars" \
-F "image=@./input.png" \
-F "mask=@./mask.png"7.3 音频
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /v1/audio/transcriptions | 语音转写 |
| POST | /v1/audio/translations | 语音翻译 |
| POST | /v1/audio/speech | 文字转语音 |
语音转写:
bash
curl "https://api.gee-do.com/v1/audio/transcriptions" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-F "file=@./audio.mp3" \
-F "model=MODEL_NAME" \
-F "response_format=json"文字转语音:
bash
curl "https://api.gee-do.com/v1/audio/speech" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"voice": "alloy",
"input": "Hello from GeeDo",
"response_format": "mp3"
}' \
--output speech.mp37.4 Embeddings
bash
curl "https://api.gee-do.com/v1/embeddings" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"input": ["first text", "second text"],
"encoding_format": "float"
}'7.5 Rerank
http
POST /v1/rerankjson
{
"model": "MODEL_NAME",
"query": "What is an API gateway?",
"documents": ["document one", "document two"],
"top_n": 2,
"return_documents": true
}8. 视频生成
视频接口采用异步任务模式。
8.1 提交任务
bash
curl "https://api.gee-do.com/v1/video/generations" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME",
"prompt": "A cinematic aerial shot of a city",
"duration": 5,
"ratio": "16:9",
"resolution": "720p"
}'响应:
json
{
"id": "TASK_ID",
"object": "video",
"model": "MODEL_NAME",
"status": "queued",
"progress": 0,
"created_at": 1785984000
}8.2 查询任务
bash
curl "https://api.gee-do.com/v1/video/generations/TASK_ID" \
-H "Authorization: Bearer $GEEDO_API_KEY"状态值:
| 状态 | 说明 |
|---|---|
| queued | 已入队 |
| in_progress | 正在生成 |
| completed | 已完成 |
| failed | 生成失败 |
| unknown | 未知状态 |
完成响应:
json
{
"id": "TASK_ID",
"object": "video",
"model": "MODEL_NAME",
"status": "completed",
"progress": 100,
"created_at": 1785984000,
"completed_at": 1785984060,
"expires_at": 1786070460,
"seconds": "5",
"size": "1280x720",
"metadata": {
"url": "https://api.gee-do.com/v1/videos/TASK_ID/content"
}
}建议每 3 至 5 秒查询一次,直到 completed 或 failed。
8.3 下载视频
bash
curl "https://api.gee-do.com/v1/videos/TASK_ID/content" \
-H "Authorization: Bearer $GEEDO_API_KEY" \
--output output.mp4需要长期保存的视频应在 expires_at 前下载。
9. 用量查询
9.1 Token 累计用量
bash
curl "https://api.gee-do.com/api/usage/token/" \
-H "Authorization: Bearer $GEEDO_API_KEY"响应:
json
{
"code": true,
"message": "ok",
"data": {
"object": "token_usage",
"name": "TOKEN_NAME",
"total_granted": 100000,
"total_used": 23000,
"total_available": 77000,
"unlimited_quota": false,
"model_limits": {},
"model_limits_enabled": false,
"expires_at": 0
}
}9.2 Token 消费日志
bash
curl "https://api.gee-do.com/api/log/token" \
-H "Authorization: Bearer $GEEDO_API_KEY"响应:
json
{
"success": true,
"message": "",
"data": [
{
"created_at": 1785984000,
"type": 2,
"token_name": "TOKEN_NAME",
"model_name": "MODEL_NAME",
"quota": 1200,
"prompt_tokens": 850,
"completion_tokens": 320,
"use_time": 4,
"is_stream": true,
"request_id": "REQUEST_ID"
}
]
}type=2 表示消费。对账使用 request_id、quota、prompt_tokens 和 completion_tokens。
9.3 控制台指标说明
| 指标 | 含义 |
|---|---|
| 用量 | 所选时间范围内的累计消费额度 |
| RPM | 最近 60 秒产生的消费请求数 |
| TPM | 最近 60 秒输入和输出 Token 总数 |
历史用量大于 0 而 RPM、TPM 为 0,表示最近 60 秒没有新的已入账消费。
9.4 OpenAI 兼容余额接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/dashboard/billing/subscription | 额度信息 |
| GET | /v1/dashboard/billing/usage | 累计使用量 |
精确对账优先使用 /api/usage/token/ 和 /api/log/token。
10. 错误与重试
10.1 错误格式
json
{
"error": {
"message": "ERROR_MESSAGE (request id: REQUEST_ID)",
"type": "invalid_request_error",
"param": null,
"code": "invalid_request"
}
}10.2 HTTP 状态码
| 状态码 | 说明 | 处理 |
|---|---|---|
| 200 | 成功 | 解析响应 |
| 202 | 异步任务已接收 | 保存任务 ID |
| 206 | 分段媒体响应 | 按 Content-Range 处理 |
| 400 | 参数错误 | 修正请求 |
| 401 | Token 无效 | 检查 Token |
| 403 | 权限不足 | 检查账号和模型权限 |
| 404 | 模型、任务或媒体不存在 | 检查 ID |
| 413 | 请求体过大 | 缩小输入 |
| 429 | 请求过快或容量不足 | 退避后重试 |
| 500、502、503 | 服务暂时异常 | 有限重试 |
429 优先遵循 Retry-After。网络超时或 5xx 后重试 POST 可能产生重复调用和重复计费,调用方应限制重试次数。
11. SDK 示例
11.1 Python
安装:
bash
pip install openaipython
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GEEDO_API_KEY"],
base_url="https://api.gee-do.com/v1",
)
response = client.chat.completions.create(
model="MODEL_NAME",
messages=[
{"role": "user", "content": "Hello from GeeDo"}
],
)
print(response.choices[0].message.content)Responses API:
python
response = client.responses.create(
model="MODEL_NAME",
input="Summarize this API in one sentence.",
)
print(response.output_text)11.2 JavaScript
安装:
bash
npm install openaijavascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.GEEDO_API_KEY,
baseURL: "https://api.gee-do.com/v1",
});
const response = await client.chat.completions.create({
model: "MODEL_NAME",
messages: [
{ role: "user", content: "Hello from GeeDo" },
],
});
console.log(response.choices[0].message.content);12. 接口索引
所有接口均以 https://api.gee-do.com 为根地址。
12.1 模型和价格
| 方法 | 路径 | 鉴权 |
|---|---|---|
| GET | /v1/models | API Token |
| GET | /v1/models/ | API Token |
| GET | /v1beta/models | API Token |
| GET | /v1beta/openai/models | API Token |
| GET | /api/pricing | 无 |
| GET | /api/status | 无 |
12.2 文本
| 方法 | 路径 |
|---|---|
| POST | /v1/chat/completions |
| POST | /v1/responses |
| POST | /v1/responses/compact |
| POST | /v1/completions |
| POST | /v1/messages |
| POST | /v1beta/models/{model}:generateContent |
| POST | /v1beta/models/{model}:streamGenerateContent |
| POST | /v1beta/models/{model}:embedContent |
| GET | /v1/realtime |
12.3 图片音频和向量
| 方法 | 路径 |
|---|---|
| POST | /v1/images/generations |
| POST | /v1/images/edits |
| POST | /v1/audio/transcriptions |
| POST | /v1/audio/translations |
| POST | /v1/audio/speech |
| POST | /v1/embeddings |
| POST | /v1/rerank |
| POST | /v1/moderations |
12.4 视频
| 方法 | 路径 |
|---|---|
| POST | /v1/video/generations |
| GET | /v1/video/generations/ |
| GET | /v1/videos/{task_id}/content |
| POST | /v1/videos/{video_id}/remix |
12.5 用量
| 方法 | 路径 |
|---|---|
| GET | /api/usage/token/ |
| GET | /api/log/token |
| GET | /v1/dashboard/billing/subscription |
| GET | /v1/dashboard/billing/usage |