AI API 聚合平台:190+ 大模型、图像与视频模型

APIMart OpenAI 兼容 API 怎么接?

更新于 2026-10-28 · apimart.cyou

简答:APIMart OpenAI 兼容 API 的最小接法是:准备当前账户可用的 API Key,将 SDK 的 Base URL 填为 <code>https://api.apimart.ai/v1</code>,模型 ID 从当前模型目录或可访问模型列表复制,再调用 <code>/chat/completions</code>。先记住三点:不要把 <code>/v1</code> 重复拼接,模型 ID 必须来自当前账户,<code>apimart.ai</code>、<code>docs.apimart.ai</code> 与 API 域名不要混用未经核验的 Key 或价格信息。本文为独立整理的接入指南,不代表 APIMart 官方。

定义:OpenAI 兼容 API 是一种沿用 OpenAI SDK 请求结构的接口形式,通常可以复用聊天请求代码,但 Responses、工具调用、图像、视频、模型权限和计费规则仍需按具体端点与模型逐项核验。

先试这一步:三行配置与最小闭环

公开 Cookbook 给出的 Base URL 是 https://api.apimart.ai/v1,认证头使用 Authorization: Bearer YOUR_API_KEY,聊天请求路径为 /v1/chat/completions。如果 SDK 会自动拼接路径,客户端只填写 Base URL;手写 HTTP 请求时才使用完整地址。相关配置可在APIMart Cookbook中交叉核对。github.com

APIMart OpenAI 兼容 API 最小核验表
项目客户端填写手写请求成功判定
Base URLhttps://api.apimart.ai/v1不单独发送最终地址没有出现 /v1/v1
认证环境变量中的 API KeyAuthorization: Bearer $APIMART_API_KEY只做非空或脱敏检查
模型当前账户可访问的模型 IDJSON 中的 model不返回模型不存在或无权限
聊天端点chat.completions.createPOST /v1/chat/completions响应可解析且存在文本字段

最小测试只发送一条短文本,不要同时加入流式输出、工具调用、图像输入和自定义参数。先确认 HTTP 状态正常、响应可解析、文本字段存在,再逐项恢复高级能力。

账户准备、充值、创建 Key 与模型核验

  1. 创建账户:根据当前可访问的 APIMart 页面完成账户创建。公开页面将流程概括为创建账户、添加 credits、生成 API Key;固定注册入口、菜单名称和地区限制可能变化,因此不要把旧截图当成当前操作路径。apimart.ai
  2. 添加余额:进入当前控制台的 Billing、Credits 或余额相关区域,先确认可用余额和计费单位,再决定是否发起请求。具体充值方式、退款规则和账户权限以当前页面为准,本文不写未经核验的套餐或折扣。
  3. 创建 API Key:在控制台查找 API Keys 或 API Key Management,创建后只在本地环境变量或服务端密钥管理器中保存。公开 Cookbook 明确给出 API Key 管理入口提示,但页面菜单可能调整。github.com
  4. 核对模型:优先查看当前模型目录,或运行 Cookbook 中的模型发现示例,确认某个 Key 实际可访问的精确 ID。模型会新增、修改、重命名或下线,服务条款也提示模型目录可能变化。apimart.ai
  5. 记录核验信息:把模型 ID、端点、计价单位、账户余额和核验日期写入项目文档;不要仅保存模型展示名。

模型选择可以按任务拆分:聊天问答先看文本模型,代码任务重点验证工具调用和上下文长度,图像任务核对图像端点与尺寸参数,视频任务则按异步任务处理。公开模型页提供按类别、模型和价格查看的目录,但具体价格应以当前模型详情页为准。apimart.ai

按场景选择模型的核验方法,不是性能排名
场景先核对什么不要直接假设什么
普通聊天模型 ID、消息格式、输出字段所有模型都支持相同参数
代码与 Agent工具调用、JSON 输出、上下文限制函数调用格式完全等同
图像输入content 数组、图片 URL 或上传端点每个聊天模型都支持视觉输入
图像生成图像端点、尺寸、返回格式和计价单位一定同步返回图片 URL
视频生成提交参数、任务状态、结果字段和下载方式可以套用聊天响应结构

Python、Node.js 与 cURL:可复制的最小请求

下面示例使用服务端环境变量,不打印完整 Key。Node.js 示例适用于本地或服务端,不建议把 API Key 放在浏览器前端。模型名使用环境变量,避免把可能变化的模型 ID 固定在代码中。

Python:

import os from openai import OpenAI api_key = os.getenv("APIMART_API_KEY") model = os.getenv("APIMART_MODEL") if not api_key or not model: raise RuntimeError("请设置 APIMART_API_KEY 和 APIMART_MODEL") client = OpenAI(api_key=api_key, base_url="https://api.apimart.ai/v1", timeout=30.0) try: result = client.chat.completions.create( model=model, messages=[{"role": "user", "content": "只回复:连接测试成功"}] ) text = result.choices[0].message.content if result.choices else None if not text: raise RuntimeError("响应缺少可用文本字段") print(text) except Exception as exc: print(f"请求失败:{type(exc).__name__}: {exc}") raise

Node.js:

import OpenAI from "openai"; const apiKey = process.env.APIMART_API_KEY; const model = process.env.APIMART_MODEL; if (!apiKey || !model) throw new Error("请设置 APIMART_API_KEY 和 APIMART_MODEL"); const client = new OpenAI({ apiKey, baseURL: "https://api.apimart.ai/v1", timeout: 30000 }); try { const result = await client.chat.completions.create({ model, messages: [{ role: "user", content: "只回复:连接测试成功" }] }); const text = result.choices?.[0]?.message?.content; if (!text) throw new Error("响应缺少可用文本字段"); console.log(text); } catch (error) { console.error(`请求失败:${error.name}: ${error.message}`); process.exitCode = 1; }

cURL(macOS/Linux):

curl --fail-with-body --max-time 30 https://api.apimart.ai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $APIMART_API_KEY" \ -d "{\"model\":\"$APIMART_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"只回复:连接测试成功\"}]}"

迁移现有 OpenAI SDK 时,通常先改三项:API Key、Base URL、模型 ID;聊天消息结构可以先保持不变。Cookbook 还列出了流式输出、工具调用和模型发现示例,但这表示存在示例,不代表每个模型都支持相同能力。github.com

兼容性验收:流式、工具调用、Responses、Embeddings 与多模态

功能定位与核验结论
能力当前公开资料能确认什么接入时怎么验收
Chat Completions公开 Cookbook 列出非流式和流式聊天端点先测普通请求,再加入 stream=true,逐块读取并处理结束标记
工具调用Cookbook 提供 function/tool calling 示例验证工具声明、模型返回的 tool calls 和本地执行闭环
Responses API公开端点表列出 POST /v1/responses不要直接把 Chat Completions 的解析器复用到所有响应字段
Anthropic Messages公开端点表列出 POST /v1/messages按对应消息格式、模型和权限单独测试
Embeddings本次核验的公开端点表未列出 Embeddings 端点标记为未核实,不要把聊天端点改写成 Embeddings 请求
图像输入公开集成文档展示多模态消息示例确认模型支持、图片 URL 可访问、响应字段与上下文限制
图像生成公开端点表列出 POST /v1/images/generations按具体模型文档核对尺寸、格式、同步或异步返回

流式输出的最小验证方式是在已经成功的聊天请求中只增加 stream=true,并为每个数据块做空值检查;如果服务端返回错误 JSON、普通 JSON 或不同的结束标记,应先记录状态码和字段名,再按当前文档调整解析器。函数调用同理:先验证模型是否返回工具调用,再执行本地函数,最后把工具结果作为后续消息发送,不能只看 HTTP 200。

与其他接入路线比较时,重点不是“谁最好”,而是治理边界:直接调用单一模型提供商通常减少中间层,但模型范围集中;聚合路由适合需要统一 Key、模型切换和账单视图的团队;自建 LLM Gateway 适合能自行维护路由、日志、权限和供应商凭据的团队。APIMart 是否适合你的项目,应以兼容性验收、价格核验、数据处理边界和故障回滚结果决定,不使用未经统一测试的速度、稳定性或价格排名。

图像与视频:完整的异步提交、轮询和失败处理思路

公开 Kling v3 文档明确说明视频生成采用异步处理,提交 POST https://api.apimart.ai/v1/videos/generations 后返回包含 status 和 task_id 的数据。Kling v3 视频生成文档还列出了视频参数和任务查询说明。docs.apimart.ai

提交与轮询的 Python 示例:

import os, time, requests key = os.getenv("APIMART_API_KEY") if not key: raise RuntimeError("请设置 APIMART_API_KEY") headers = {"Authorization": f"Bearer {key}", "Content-Type": "application/json"} payload = { "model": "kling-v3", "prompt": "A golden cat running on a sunlit meadow", "mode": "std", "duration": 5, "aspect_ratio": "16:9" } r = requests.post("https://api.apimart.ai/v1/videos/generations", headers=headers, json=payload, timeout=30) r.raise_for_status() body = r.json() data = body.get("data") or [] if not data or not data[0].get("task_id"): raise RuntimeError("提交响应缺少 task_id") task_id = data[0]["task_id"] for _ in range(60): q = requests.get( "https://api.apimart.ai/v1/tasks/status", headers={"Authorization": f"Bearer {key}"}, params={"task_id": task_id}, timeout=30 ) q.raise_for_status() result = q.json() item = (result.get("data") or [{}])[0] status = item.get("status") if status in {"completed", "succeeded"}: print(result) break if status in {"failed", "error", "cancelled"}: raise RuntimeError(f"任务失败:{result}") time.sleep(5) else: raise TimeoutError("轮询超过上限")

上例中的任务状态集合和结果字段仍应与当前模型文档核对;如果查询接口要求把 task_id 放在路径或 JSON 中,应以该模型页面为准。图像接口不能直接套用视频轮询,也不能假设所有模型同步返回图片 URL。成功判定应包括:提交成功、获得任务 ID、轮询状态进入完成、结果字段存在、下载地址返回预期 Content-Type。

价格、适用场景与 401/429 排查清单

公开资料显示,模型目录和价格页按模型展示价格,Cookbook 将计费描述为按量付费;但具体模型版本、输入输出方向、token 或图片/视频计价单位、账户等级和当前余额都可能影响实际费用,因此不要用旧文章中的单价替代当前模型详情页。apimart.ai

错误分支与处理顺序
现象先检查下一步
401Key 是否为空、是否含空格、Bearer 是否正确、域名是否与 Key 匹配重新读取环境变量,只做脱敏检查,不打印完整 Key
403 或模型无权限模型 ID、账户权限、模型是否仍在目录中从当前模型列表选择可访问模型
429请求频率、并发、账户额度和响应头中的 Retry-After降低并发并使用有限指数退避;RPM、TPM 和并发上限未核实
402 或余额错误余额、Credits、模型计价单位先查看当前账户余额和模型价格,不把它等同于 401
超时客户端 timeout、网络、请求体大小、任务是否应异步设置上限;长任务使用提交加轮询
响应字段缺失端点类型、模型返回格式、SDK 版本记录非敏感字段名,按具体文档解析

生产上线前建议完成一张兼容性验收表:普通聊天、流式输出、工具调用、JSON 输出、图像输入、图像生成、视频任务、429 重试和回滚配置各测试一次。未完成的能力标记为“未核实”,不要用“兼容”二字替代实际验收。

常见问题

APIMart OpenAI 兼容 API 的 Base URL 是什么?

公开 Cookbook 和集成文档使用 <code>https://api.apimart.ai/v1</code>。SDK 客户端通常只填写这个 Base URL,手写聊天请求时使用 <code>https://api.apimart.ai/v1/chat/completions</code>;如果当前文档显示不同值,应以当前页面为准。

从 OpenAI SDK 迁移到 APIMart 要改哪些地方?

先改 API Key、Base URL 和模型 ID。聊天调用结构可以先保持不变,再分别测试流式输出、工具调用、JSON 输出、Responses、图像和视频任务,避免一次迁移所有高级参数。

APIMart 怎么注册、充值和创建 API Key?

公开页面给出的流程是创建账户、添加 credits、在控制台生成 API Key。由于菜单名称和账户权限可能变化,实际操作应以当前控制台的账户、Billing/Credits、API Keys 区域为准;不要把未核实的固定入口写进代码或文档。

APIMart 支持哪些模型?

公开模型目录按文本、图像、视频和音频等类别展示模型,并提供模型 ID 与价格信息。模型目录会变化,最稳妥的方式是从当前模型目录或模型发现示例复制可访问 ID,而不是照抄旧文章中的模型名。

APIMart 的价格和计费方式怎么确认?

先确认模型版本、输入输出方向、计价单位、账户等级和核验日期,再查看当前模型详情页或价格页。公开 Cookbook 将其描述为按量付费,但具体金额和计费规则以当前账户页面与模型文档为准。

流式输出、函数调用和 Embeddings 是否都兼容?

公开 Cookbook 提供流式和工具调用示例,并列出 Responses、Anthropic Messages 等端点;本次核验的公开端点表没有列出 Embeddings,因此 Embeddings 应标记为未核实。每个模型仍需单独测试参数和返回结构。

视频生成为什么不能直接读取聊天响应?

公开 Kling v3 文档显示视频生成是异步任务,提交后返回 <code>task_id</code>,需要通过任务状态端点轮询,再读取完成后的结果字段。图像和视频都应按具体模型文档核对同步或异步行为。

401 和 429 应该怎么排查?

401 先检查 Key、Bearer、Base URL 和模型权限;429 先检查频率、并发、账户额度和 Retry-After,再降低并发并使用有限指数退避。不要打印完整密钥,也不要把所有 429 都归因于余额不足。

相关阅读

参考资料

  1. APIMart Cookbook:OpenAI 兼容 API、模型发现、流式和工具调用示例
  2. APIMart 公开主页:统一 API、账户流程与模型类别说明(apimart.ai)
  3. APIMart 模型目录:模型类别、模型 ID 与价格入口(apimart.ai)
  4. APIMart 价格页:按模型查看计价信息(apimart.ai)
  5. APIMart 服务条款:模型目录变化与 API Key 责任说明(apimart.ai)
  6. Kling v3 视频生成文档:异步提交、task_id 与任务查询说明(docs.apimart.ai)
  7. APIMart Gemini CLI 集成文档:环境变量、Base URL 与调用示例(docs.apimart.ai)
  8. apimart.ai(apimart.ai)
  9. apimart.ai(apimart.ai)