使用文档:API 接入
llmgate 兼容 OpenAI `/v1` 调用方式。业务侧只需要替换 API Key 和 base_url,模型名仍使用平台公开的标准模型名。
API 入口
https://api.llmgate.shop/v1文本示例模型
doubao-seed-2-0-pro-260215图片示例模型
doubao-seedream-5-0-liteIntegration
API 接入流程
01
管理员创建账号并充值
由后台管理员创建账号后完成钱包充值,所有 API Key 共用同一个用户钱包。
02
创建 API Key
在控制台生成 sk-lg-*,业务侧使用同一个 Key 走统一鉴权。
03
替换 base_url
当前 API 入口为 https://api.llmgate.shop/v1。
04
发送测试请求
用公开模型名发起一次最小请求,再到控制台调用记录核对 requestId、token 和扣费。
OpenAI-compatible
API 支持接口
业务系统只需要接入下列入口;控制台、后台和支付回调使用的 `/api/*` 属于站内接口,不作为第三方集成入口。
/v1/models无需 API Key返回模型列表、可调用状态、能力、产品渠道和当前价格,供业务系统接入前查询。/v1/chat/completionsBearer sk-lg-*业务系统主调用入口,兼容 OpenAI Chat Completions 的 model、messages、stream 和 tools。/v1/images/generationsBearer sk-lg-*图片生成入口,JSON 请求。不同图片模型支持的 size、resolution、参考图和返回格式不一样,按下方模型参数表接入。/v1/images/editsBearer sk-lg-*图片编辑入口,multipart/form-data 请求,支持 image 原图、mask、prompt、model、n、size、response_format、output_format、output_compression、input_fidelity、partial_images 和 stream。/v1/videos/generationsBearer sk-lg-*视频生成同步入口,JSON 请求;当前异步视频线路(Seedance、HappyHorse)只要返回可轮询 `task_id` 就统一进入 `status=running`,即使响应里已经带 usage 也不会立刻成功扣费;只有拿到可交付视频 URL 才能是成功终态。/v1/videos/generations/{task_id}Bearer sk-lg-*查询同步视频入口返回的公开视频任务状态;异步视频线路(Seedance、HappyHorse)的 `{task_id}` 兼容上游 task_id 和本次 request_id。响应同样统一顶层 `id`、`task_id`、`status` 和 `video_urls`。已知还在生成中的任务遇到一次上游轮询 5xx 会继续返回 `status=running`,只有 `status=failed` 才代表最终失败。异步任务不要用这个接口,改用 /tasks/{taskId}。/v1/images/generations/asyncBearer sk-lg-*图片生成异步入口,复用同步图片生成 JSON 请求体和对应模型参数规则;创建成功返回 202 和 generation.task。/v1/images/generations/tasks/{taskId}Bearer sk-lg-*查询图片生成异步任务状态和结果,只返回当前 API Key 所属账户的任务。/v1/images/generations/tasks/{taskId}Bearer sk-lg-*取消尚未提交到上游的图片生成异步任务;已提交或运行中的任务会返回 409。/v1/images/edits/asyncBearer sk-lg-*图片编辑异步入口,复用同步图片编辑 multipart/form-data 请求体;任务接口不返回 SSE,创建任务时会忽略 stream 和 partial_images。/v1/images/edits/tasks/{taskId}Bearer sk-lg-*查询图片编辑异步任务状态和结果,只返回当前 API Key 所属账户的任务。/v1/images/edits/tasks/{taskId}Bearer sk-lg-*取消尚未提交到上游的图片编辑异步任务;已提交或运行中的任务会返回 409。/v1/videos/generations/asyncBearer sk-lg-*视频生成异步入口,复用同步视频生成 JSON 请求体;推荐长耗时视频任务使用。/v1/videos/generations/tasks/{taskId}Bearer sk-lg-*查询视频生成异步任务状态和结果,平台 worker 负责上游轮询和媒体转存。/v1/videos/generations/tasks/{taskId}Bearer sk-lg-*取消尚未提交到上游的视频生成异步任务;已提交或运行中的任务会返回 409。/v1/usageBearer sk-lg-*查询当前账户自己的调用日志列表,支持按时间、request_id、模型、状态和 API Key 过滤。/v1/usage/{request_id}Bearer sk-lg-*按 request_id 查询单次调用的 token、扣费、状态、用户可见错误信息,以及同步视频异步收口耗时摘要。Image Generation
生图模型参数
生图参数按模型看,不同模型不要混用。同步和异步图片生成使用同一套 JSON 请求体。
OpenAI GPT Image2
gpt-image-2 / gpt-image-2-llm内部可见的 Image2 使用说明,适合高质量文生图、参考图生成和编辑式生成。当前平台低价和标准渠道按张固定计费。
model必填,传 gpt-image-2 或 gpt-image-2-llm。gpt-image-2-llm 是产品侧别名,能力和路由口径与 gpt-image-2 保持一致。
prompt必填,图片生成提示词,字符串。
size可选。官方标准是 auto、1024x1024、1536x1024 或 1024x1536;平台额外兼容 1K/2K/4K 档位、自定义 WIDTHxHEIGHT 像素尺寸和 16:9、1:1 等比例写法。兼容写法会先归一成平台第一层标准尺寸,再按命中线路适配最终上游参数;同步 generations、异步 generations 和 direct edits 使用同一套 Image2 尺寸口径。
resolution可选,平台兼容字段。支持 1k、2k、4k,优先级高于从 size 推断出的档位。
quality可选,支持 low、medium、high、auto。
image / images / reference_images可选参考图,支持公网图片 URL 或 data URL。OpenAI 官方 Image API 的参考图写法是 /v1/images/edits multipart 的 image 文件字段;reference_images 是平台 JSON 兼容别名,平台会转成官方 edits 请求,不会原样透传给上游 /v1/images/generations。
n可选,生成张数;平台按实际生成张数计费。
response_format可选,常用 url 或 b64_json,实际返回格式以当前线路能力为准。
partial_images可选,配合 stream=true 使用,请求上游在最终图片前返回部分图片事件;不支持的上游会按失败 fallback 处理。
stream可选,传 true 时返回图片流式事件;生成接口归一为 image_generation.partial_image / image_generation.completed,编辑接口归一为 image_edit.partial_image / image_edit.completed,图片内容以 b64_json 或 url 交付。
无参考图时,平台按文生图请求处理;带 image、images 或 reference_images 时,平台按 OpenAI 官方参考图口径改走 edits 请求。
Image2 的对外标准参数以 GPT 官方口径为准:公开模型仍是 gpt-image-2 / gpt-image-2-llm,不会把内部上游专用模型 ID 暴露给用户。size 接受官方参考尺寸 auto、1024x1024、1536x1024、1024x1536,也接受符合 Image2 约束的像素尺寸,例如 3840x2160;16:9、9:16、1K/2K/4K 和 resolution 是平台兼容输入,会先归一成第一层标准像素尺寸再进路由。
通过 resolution、1K/2K/4K、比例或自定义像素触发归一且未传 quality 时,平台会按档位补默认质量;只传官方参考尺寸且不传 quality 时不强行补。
参考图 URL 必须是公网可访问的 http 或 https 图片;内网、本机和私有地址会被拒绝。data URL 支持直接内联小图。
响应会返回 llmgate_image,包含用户提交参数和平台第一层标准参数;真实上游线路和内部 fallback 不在使用说明里展示。
GPT Image2 带参考图生成
curl https://api.llmgate.shop/v1/images/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Create a clean product photo using the cup in the reference image",
"size": "16:9",
"resolution": "4k",
"quality": "high",
"reference_images": ["https://example.com/reference-cup.png"],
"n": 1,
"response_format": "url"
}'Doubao Seedream 5.0 Lite
doubao-seedream-5-0-lite公开生图模型,适合常规文生图和参考图生成。当前平台标准渠道按张计费。
model必填,使用当前小节的公开模型名。
prompt必填,图片生成提示词,字符串。
size可选。可传清晰度档位、比例或像素尺寸;平台会按当前模型的官方尺寸规则归一后再请求上游。
resolution可选,平台兼容字段。传了它就按它决定清晰度档位;没传时平台从 size 推断。
image / reference_images / images可选参考图,支持 URL 或 data URL;image 适合单张参考图,数组字段适合多张参考图。
use_reference_image_size可选布尔值。只对 Seedream 生图生效;显式传了非空 size 时以 size 为准。未传 size 且带参考图时,平台读取第一张 data URL 或公网 URL 参考图宽高作为尺寸来源;缺参考图、URL 不安全或读不到宽高会返回 HTTP 400。
n可选,生成张数;按实际生成张数计费。
response_format可选,常用 url 或 b64_json,实际返回格式以当前线路能力为准。
watermark可选,是否添加 AI 生成水印,布尔值;传 false 时不加水印。
size / resolution values2K、3K、4K;也可传 1:1、16:9、9:16 等比例或 WIDTHxHEIGHT。1K 会按平台兼容规则归一到 Seedream 可接收的尺寸。
未传 size 或 resolution 时,平台默认按 2K 请求。
自定义像素必须能归一到模型可接受的范围;不支持的 size 或 resolution 会直接返回 HTTP 400,不会扣费。
官网有但当前平台线路不开放/未确认的参数
stream官网有流式相关能力;当前 Seedream 公开线路按同步结果或异步任务推进,不承诺图片流式响应。
sequential_image_generation官网有连续生图能力;当前公开 Seedream 图片线路未验收,不作为用户侧可用参数。
sequential_image_generation_options官网有连续生图配置;依赖连续生图能力,当前公开线路不开放。
tools官网有工具能力,例如联网搜索;当前公开 Seedream 图片线路未验收,不承诺生效。
optimize_prompt_options官网有提示词优化配置;当前公开线路未验收,不开放给用户端依赖。
Seedream 5.0 Lite 图片生成
curl https://api.llmgate.shop/v1/images/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5-0-lite",
"prompt": "A clean product photo of a ceramic coffee cup",
"size": "3K",
"image": "https://example.com/reference.png",
"n": 1,
"response_format": "url"
}'Doubao Seedream 4.5
doubao-seedream-4-5公开生图模型,适合高质量文生图和参考图生成。当前平台标准渠道按张计费。
model必填,使用当前小节的公开模型名。
prompt必填,图片生成提示词,字符串。
size可选。可传清晰度档位、比例或像素尺寸;平台会按当前模型的官方尺寸规则归一后再请求上游。
resolution可选,平台兼容字段。传了它就按它决定清晰度档位;没传时平台从 size 推断。
image / reference_images / images可选参考图,支持 URL 或 data URL;image 适合单张参考图,数组字段适合多张参考图。
use_reference_image_size可选布尔值。只对 Seedream 生图生效;显式传了非空 size 时以 size 为准。未传 size 且带参考图时,平台读取第一张 data URL 或公网 URL 参考图宽高作为尺寸来源;缺参考图、URL 不安全或读不到宽高会返回 HTTP 400。
n可选,生成张数;按实际生成张数计费。
response_format可选,常用 url 或 b64_json,实际返回格式以当前线路能力为准。
watermark可选,是否添加 AI 生成水印,布尔值;传 false 时不加水印。
size / resolution values2K、4K;也可传 1:1、16:9、9:16 等比例或 WIDTHxHEIGHT。3K 不属于当前模型公开支持档位。
未传 size 或 resolution 时,平台默认按 2K 请求。
doubao-seedream-4-5 不写 3K,避免业务侧按另一个模型的能力误传参数。
官网有但当前平台线路不开放/未确认的参数
stream官网有流式相关能力;当前 Seedream 公开线路按同步结果或异步任务推进,不承诺图片流式响应。
sequential_image_generation官网有连续生图能力;当前公开 Seedream 图片线路未验收,不作为用户侧可用参数。
sequential_image_generation_options官网有连续生图配置;依赖连续生图能力,当前公开线路不开放。
tools官网有工具能力,例如联网搜索;当前公开 Seedream 图片线路未验收,不承诺生效。
optimize_prompt_options官网有提示词优化配置;当前公开线路未验收,不开放给用户端依赖。
Seedream 4.5 图片生成
curl https://api.llmgate.shop/v1/images/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5",
"prompt": "A clean product photo of a ceramic coffee cup",
"size": "4K",
"image": "https://example.com/reference.png",
"n": 1,
"response_format": "url"
}'Video Generation
生视频模型参数
生视频参数也按模型看。长耗时任务建议走异步接口,再轮询任务状态。
Doubao Seedance 2.0
doubao-seedance-2-0公开生视频模型,支持文生视频、图生视频和多模态参考素材。长耗时任务建议走异步接口。
model必填,使用当前小节的公开模型名。
content必填,官方内容数组。至少包含一个文本提示词或一个参考素材块;参考图、视频、音频分别使用 image_url、video_url、audio_url。素材 URL 必须能被当前上游线路读取。
duration可选,视频时长,按模型和上游当前能力取值。
ratio可选,Seedance 官方画面比例枚举:16:9、4:3、1:1、3:4、9:16、21:9 或 adaptive。Seedance 2.0 / 2.0 fast 不传时,平台按官方默认补齐为 adaptive 再提交上游,模型会根据参考素材和输入内容选择画幅;需要强制横屏、竖屏或方图时再传固定枚举。
resolution可选,Seedance 官方分辨率字段,建议使用 480p、720p、1080p 或 4k;不传时按 720p 判档。平台额外兼容 video_resolution、videoResolution 和 size 作为分辨率别名,但推荐新接入只传 resolution。
generate_audio可选,是否生成音频,布尔值。
watermark可选,是否加水印,布尔值。
seed可选,随机种子,整数。
return_last_frame可选,是否返回尾帧,布尔值。
tools可选。需要联网搜索时传 [{"type":"web_search"}];不用搜索时不要传。
首尾帧用 role: "first_frame" / role: "last_frame";普通参考图用 role: "reference_image"。尾帧不能单独使用,必须同时有首帧。
公开 /v1/videos/generations 和 /v1/videos/generations/async 当前不会代建上游素材组或素材,也不开放素材库 CRUD。API 客户只按 content 提交普通参考素材 URL,不要传 asset://、控制台素材 ID、素材组 ID、上游素材 ID、上游任务 ID 或供应商专用审核参数。网页控制台使用持久平台素材库,并在生成时按最终实际线路自动选择短期签名 URL 或隔离的上游素材副本。
同步入口可能直接返回视频,也可能返回上游任务;异步视频线路(Seedance、HappyHorse)会把不同上游的任务包装统一成顶层 id、task_id、status 和 video_urls。只要响应里有可轮询 task id,就按 status=running 返回并创建内部收口任务,即使上游同时返回 usage 也不会立即成功扣费;如果提交阶段某条异步视频上游 HTTP 200 但没有 task id 也没有视频 URL,会按 UPSTREAM_VIDEO_RESULT_MISSING 记当前线路失败并继续 fallback,所有候选都不可交付时才失败。已知运行中的同步视频查询遇到临时上游轮询 5xx 时继续返回 status=running;任务已经成功落到平台媒体后,查询优先返回平台转存后的视频地址。平台异步入口会由 worker 负责轮询、转存和结算。
官网有但当前平台线路不开放/未确认的参数
callback_url官网有回调地址;平台公开异步任务不开放客户回调,统一由平台 worker 轮询、转存和结算,客户查询 /tasks/{taskId}。
Seedance 2.0 视频生成
curl https://api.llmgate.shop/v1/videos/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"content": [
{"type": "text", "text": "A short cinematic shot of a coffee cup on a wooden desk"},
{"type": "image_url", "image_url": {"url": "https://example.com/reference.png"}, "role": "reference_image"}
],
"duration": 5,
"ratio": "16:9",
"resolution": "1080p",
"generate_audio": true,
"watermark": false
}'Seedance 2.0 首尾帧视频生成
curl https://api.llmgate.shop/v1/videos/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"content": [
{"type": "text", "text": "Make a smooth cinematic transition from the first image to the second image"},
{"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/first-frame.png"}},
{"type": "image_url", "role": "last_frame", "image_url": {"url": "https://example.com/last-frame.png"}}
],
"duration": 5,
"ratio": "16:9",
"resolution": "1080p",
"generate_audio": false,
"watermark": false,
"return_last_frame": true
}'Doubao Seedance 2.0 Fast
doubao-seedance-2-0-fast公开生视频模型,优先速度。请求体和 Seedance 2.0 保持同一套官方内容数组写法。
model必填,使用当前小节的公开模型名。
content必填,官方内容数组。至少包含一个文本提示词或一个参考素材块;参考图、视频、音频分别使用 image_url、video_url、audio_url。素材 URL 必须能被当前上游线路读取。
duration可选,视频时长,按模型和上游当前能力取值。
ratio可选,Seedance 官方画面比例枚举:16:9、4:3、1:1、3:4、9:16、21:9 或 adaptive。Seedance 2.0 / 2.0 fast 不传时,平台按官方默认补齐为 adaptive 再提交上游,模型会根据参考素材和输入内容选择画幅;需要强制横屏、竖屏或方图时再传固定枚举。
resolution可选,Seedance 官方分辨率字段,建议使用 480p、720p、1080p 或 4k;不传时按 720p 判档。平台额外兼容 video_resolution、videoResolution 和 size 作为分辨率别名,但推荐新接入只传 resolution。
generate_audio可选,是否生成音频,布尔值。
watermark可选,是否加水印,布尔值。
seed可选,随机种子,整数。
return_last_frame可选,是否返回尾帧,布尔值。
Fast 模型不要照搬图片模型的 prompt + image 写法;视频请求用 content 数组。首尾帧同样使用 first_frame / last_frame 角色。
公开 /v1/videos/generations 和 /v1/videos/generations/async 当前不会代建上游素材组或素材,也不开放素材库 CRUD。API 客户只按 content 提交普通参考素材 URL,不要传 asset://、控制台素材 ID、素材组 ID、上游素材 ID、上游任务 ID 或供应商专用审核参数。网页控制台使用持久平台素材库,并在生成时按最终实际线路自动选择短期签名 URL 或隔离的上游素材副本。
平台当前按 output token 结算视频生成;创建阶段先返回任务状态,最终扣费等任务完成后推进。
官网有但当前平台线路不开放/未确认的参数
callback_url官网有回调地址;平台公开异步任务不开放客户回调,统一由平台 worker 轮询、转存和结算,客户查询 /tasks/{taskId}。
tools官网同系列存在联网搜索工具写法;Fast 线路当前未验收,不写入公开支持参数。需要联网搜索时优先使用 doubao-seedance-2-0。
Seedance 2.0 Fast 视频生成
curl https://api.llmgate.shop/v1/videos/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-fast",
"content": [
{"type": "text", "text": "A short cinematic shot of a coffee cup on a wooden desk"},
{"type": "image_url", "image_url": {"url": "https://example.com/reference.png"}, "role": "reference_image"}
],
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
"watermark": false
}'Seedance 2.0 Fast 首尾帧视频生成
curl https://api.llmgate.shop/v1/videos/generations \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-fast",
"content": [
{"type": "text", "text": "Make a smooth cinematic transition from the first image to the second image"},
{"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/first-frame.png"}},
{"type": "image_url", "role": "last_frame", "image_url": {"url": "https://example.com/last-frame.png"}}
],
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": false,
"watermark": false,
"return_last_frame": true
}'Generation
生成接口接入方式
同步生成接口保持原有 OpenAI-compatible 接入方式:请求直接等待上游返回,不创建公开异步任务,也不受异步队列影响。当前异步视频同步入口(Seedance、HappyHorse)不要求客户解析不同上游的原始任务包装,客户只依赖顶层 id、task_id、status 和 video_urls;拿到上游 task id 时一律先返回 status=running,最终扣费等平台拿到可交付视频后再收口。已知还在生成中的任务遇到一次上游轮询 5xx 仍保持 status=running,不能把临时轮询失败当成最终失败;提交阶段某条异步视频上游 HTTP 200 但没有 task id 也没有视频 URL 会按 UPSTREAM_VIDEO_RESULT_MISSING 记当前线路失败并继续 fallback,所有候选都不可交付时才失败,不会成功扣用户费用。
异步生成接口是在原路径后追加 /async:创建任务返回 HTTP 202,客户端拿 id 或 status_url 轮询 /tasks/{taskId}。
轮询接口只读平台任务状态,不直接打上游;排队、上游提交、视频轮询、媒体转存和最终结算都由后台 worker 推进。
任务状态包括 queued、submitted、running、storing_media、succeeded、failed、expired 和 cancelled;内部并发等待原因不会暴露给用户。
Async Example
创建任务并轮询
curl https://api.llmgate.shop/v1/images/generations/async \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5-0-lite",
"prompt": "A clean product photo of a ceramic coffee cup",
"size": "3K",
"n": 1
}'
# Use the returned id, for example task_xxx.
curl https://api.llmgate.shop/v1/images/generations/tasks/task_xxx \
-H "Authorization: Bearer sk-lg-your-key-here"创建成功响应
{
"id": "task_xxx",
"object": "generation.task",
"kind": "image_generation",
"status": "queued",
"status_url": "/v1/images/generations/tasks/task_xxx",
"request_id": null,
"llmgate_image": {
"requested": {
"model": "doubao-seedream-5-0-lite",
"size": "3K",
"n": 1
},
"standard": {
"model": "doubao-seedream-5-0-lite",
"size": "3k",
"image_size_tier": "3K",
"n": 1
}
},
"result": null,
"error": null
}Dashboard
控制台指南
这部分只放网页控制台操作流程,API 接入继续看上面的模型卡片和接口模式。
Dashboard Workflow
控制台参考素材与首尾帧
这部分只说明网页控制台操作,不代表公开视频 API 会代建素材库。控制台会把上传内容转换成 Seedance 需要的参考角色,并按最终实际线路处理素材。
在控制台打开 视频生成,模型选择 doubao-seedance-2-0 或 doubao-seedance-2-0-fast。
参考模式切到 首尾帧;这个模式只收图片,不接收参考视频或参考音频。
上传第 1 张图作为首帧;需要尾帧时再上传第 2 张图。只有尾帧、没有首帧的任务不能提交。
网页控制台提供持久 Seedance 素材库:上传一次后可以查询、复用、重命名和删除。原文件保存在平台私有存储,提交视频时平台才按本次最终实际线路选择短期签名 URL 或隔离的上游素材副本。用户不填写 asset://、素材组 ID 或上游素材 ID。
Minimum Setup
API 最小接入参数
请求头使用 Authorization: Bearer sk-lg-your-key-here。
Python OpenAI SDK 设置 base_url,Node.js OpenAI SDK 设置 baseURL。
聊天补全请求发送到 /chat/completions,完整地址会由 base_url 拼接。
请求模型使用平台模型名,例如 doubao-seed-2-0-pro-260215。
调用完成后在控制台调用记录核对 requestId、token、扣费和产品渠道。
https://api.llmgate.shop/v1from openai import OpenAI
client = OpenAI(
api_key="sk-lg-your-key-here",
base_url="https://api.llmgate.shop/v1",
)
response = client.chat.completions.create(
model="doubao-seed-2-0-pro-260215",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Video Input
聊天视频输入
`/v1/chat/completions` 支持受控视频理解。公开标准 content part 使用 `type=video`、`uri` 或 `data`、以及 `mime_type`;模型需要在 `/v1/models` 的 `capabilities.video_input` 里显示支持。真实线路不支持视频输入时,平台会继续 fallback 到其它可用候选。
curl https://api.llmgate.shop/v1/chat/completions \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "请按时间顺序描述这段视频。"},
{"type": "video", "uri": "https://example.com/video.mp4", "mime_type": "video/mp4"}
]
}
]
}'Internal Mode
Claude CLI 内部接入
这部分只给内部排查和受控用户使用,不进入公开导出的 Markdown。下面按 Windows 和 macOS 分开写,从打开终端、安装工具、生成配置到验证调用一步步走。
开始前先准备 2 件事
在 llmgate 控制台创建一把 API Key,形如 sk-lg-...。
确认账户有余额;Claude CLI 当前走 https://api.llmgate.shop,域名上线后再改成 https://api.llmgate.shop。
Windows
用 PowerShell,一步步复制命令
1. 打开 PowerShell
PowerShell,打开它。第一次安装失败时,再右键选择“以管理员身份运行”。2. 看电脑有没有 Node.js
检查 Node.js
node --version检查 npm
npm --version3. 安装 Node.js
安装 Node.js LTS
winget install OpenJS.NodeJS.LTS4. 安装 Claude CLI
安装 Claude CLI
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com检查 Claude CLI
claude --version5. 生成并写入 llmgate 配置
Windows PowerShell 配置命令
6. 启动并验证
重新打开 PowerShell 或 IDE 终端
关掉刚才的窗口,重新打开一个新的 PowerShell 或 IDE 终端,这样新配置才会生效。
确认自己在项目目录里
Claude CLI 会读取当前目录。你要在哪个项目里用它,就先打开到哪个项目目录。
启动 Claude CLI
复制下面这一条命令执行。
启动 Claude CLI
claude第一次弹出目录授权时选择允许
如果看到下面这种提示,意思是问你是否信任当前项目目录、是否允许 Claude CLI 读取这个目录。输入下面这个数字并回车,它对应
Yes, continue。如果没看到这个提示,直接跳过。终端里可能会看到类似这些问题
Prompt
Do you trust the files in this folder?
Options
- 1. Yes, continue
- 2. No, exit
看到这类“trust / folder / continue”的提示,就选
1。不同版本的英文可能略有差异,但意思一样。首次授权选择
1发送一句测试消息
进入 Claude CLI 后,复制下面这句话发送。
发送测试消息
你好回 llmgate 控制台核对记录
打开调用记录,确认能看到 requestId、模型、token、扣费和状态。能看到这些,就说明 Claude CLI 已经走 llmgate 了。
macOS
用终端 Terminal,一步步复制命令
1. 打开终端
Command + Space,输入 Terminal 或“终端”,回车打开。2. 看电脑有没有 Node.js
检查 Node.js
node --version检查 npm
npm --version3. 如果没有 Homebrew,先安装 Homebrew
检查 Homebrew
brew --version安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"4. 安装 Node.js
安装 Node.js
brew install node5. 安装 Claude CLI
安装 Claude CLI
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com权限不够时使用
sudo npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com检查 Claude CLI
claude --version6. 生成并写入 llmgate 配置
macOS Terminal 配置命令
7. 启动并验证
重新打开终端或 IDE 终端
关掉刚才的窗口,重新打开一个新的终端或 IDE 终端,这样新配置才会生效。
确认自己在项目目录里
Claude CLI 会读取当前目录。你要在哪个项目里用它,就先打开到哪个项目目录。
启动 Claude CLI
复制下面这一条命令执行。
启动 Claude CLI
claude第一次弹出目录授权时选择允许
如果看到下面这种提示,意思是问你是否信任当前项目目录、是否允许 Claude CLI 读取这个目录。输入下面这个数字并回车,它对应
Yes, continue。如果没看到这个提示,直接跳过。终端里可能会看到类似这些问题
Prompt
Do you trust the files in this folder?
Options
- 1. Yes, continue
- 2. No, exit
看到这类“trust / folder / continue”的提示,就选
1。不同版本的英文可能略有差异,但意思一样。首次授权选择
1发送一句测试消息
进入 Claude CLI 后,复制下面这句话发送。
发送测试消息
你好回 llmgate 控制台核对记录
打开调用记录,确认能看到 requestId、模型、token、扣费和状态。能看到这些,就说明 Claude CLI 已经走 llmgate 了。
Internal Mode
Codex CLI 内部接入
这部分只给内部或指定客户接入使用,不进入公开导出的 Markdown。Codex CLI 走 Responses API,最终请求会落到 /v1/responses。
在 Codex CLI 的 config.toml 里写入下面配置;base_url 填平台 /v1 API 入口。
在 Codex CLI 的 auth.json 里把 OPENAI_API_KEY 换成平台生成的 sk-lg-*。
重新打开终端,在项目目录运行 codex,发送一条测试消息。
回平台调用记录里核对 requestId、模型、token、扣费和状态。
~/.codex/config.toml
model_provider = "OpenAI"
model = "gpt-5.5"
review_model = "gpt-5.5"
model_reasoning_effort = "xhigh"
disable_response_storage = true
network_access = "enabled"
windows_wsl_setup_acknowledged = true
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://api.llmgate.shop/v1"
wire_api = "responses"
requires_openai_auth = true
[features]
goals = true~/.codex/auth.json
{
"OPENAI_API_KEY": "sk-lg-your-key-here"
}Internal Mode
Responses 上下文压缩
Responses 上下文压缩只给内部或指定客户使用,目前已验收模型为 gpt-5.4 和 gpt-5.5。该能力只适用于 /v1/responses 和 /v1/responses/compact,不能通过 /v1/chat/completions 开启;公开普通文档不展示。
压缩能力按平台分组和模型验收,不按模型名默认开启。自动压缩与主动压缩是两项独立能力,只会选择明确开启本次所需能力的候选线路;不支持的线路在请求上游前跳过并继续 fallback。
方式一是 /v1/responses 自动压缩:请求里显式传 context_management:[{type:"compaction",compact_threshold:100000}]。context_management 使用数组,compact_threshold 使用整数 token 阈值;100000 只是接入示例,不是统一推荐值,生产值应按上下文窗口和预留输出空间设置,避免阈值过低。
方式二是 /v1/responses/compact 主动压缩:把完整历史上下文放进 input。平台返回的压缩项统一使用官方 type=compaction。收到 object=response.compaction 后,把完整 output 数组原样作为下一次 /v1/responses.input 的起始内容,再追加新的用户消息;不要只提取单个压缩项,也不要拆解或改写 encrypted_content。
用户文档只说明调用方式和可见错误,不展示真实上游、平台分组、内部 fallback 链路、验收 requestId 或成本信息。
方式一:自动压缩
请求仍走 /v1/responses,只是在 body 里带 context_management。compact_threshold 必须是整数 token 阈值;示例 100000 不是统一推荐值,生产值应按上下文窗口和预留输出空间设置,避免过低阈值频繁压缩。
curl https://api.llmgate.shop/v1/responses \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"input": [
{"role": "user", "content": "Summarize the project state and keep the ticket code RIVER-LANTERN."}
],
"context_management": [
{"type": "compaction", "compact_threshold": 100000}
]
}'方式二:手动压缩
/v1/responses/compact 返回的是给下一次 Responses 调用续接用的压缩窗口,压缩项统一使用官方 type=compaction。把完整 output 数组原样放在下一次 input 的开头,再追加新用户消息;不要只取单个压缩项,也不要展示、拆解或改写加密内容。
curl https://api.llmgate.shop/v1/responses/compact \
-H "Authorization: Bearer sk-lg-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"input": [
{"role": "user", "content": "Long history window part 1. Keep the ticket code RIVER-LANTERN."},
{"role": "assistant", "content": "Noted. I will preserve RIVER-LANTERN."},
{"role": "user", "content": "Long history window part 2. Compress this before continuing."}
]
}'Usage Notice
Claude 缓存读写显示说明
部分 Claude 线路为了兼容 Claude Code CLI 官方形态、降低上游风控和首轮上下文不一致风险,会在上游请求侧按官方 Claude Code CLI 形态补齐或透传官方 system prompt 和 tool 定义。这个过程可能让上游原始 usage 里出现较大的 cache creation / cache read 数值。
如果平台判断这些缓存 token 来自 Claude Code CLI 官方兼容层,而不是客户主动传入的缓存参数,用户可见的缓存创建和缓存读取会显示为 0,也不会按这部分向客户计费。
显示为 0 只是账单和日志展示口径,不代表缓存没有创建或没有读取,也不会影响实际请求、上下文命中或上游缓存行为。
平台只会按 Claude Code CLI 官方形态补齐或透传官方 system prompt 和 tool 定义,不会混入平台自定义业务提示词、广告、隐藏任务或客户请求无关内容,也不会改写客户正文。
客户侧只展示和结算客户可归因的缓存用量;平台内部兼容层产生的缓存不展示、不结算;上游原始 usage 仅内部保留用于对账和排查。
给客户的一句话:缓存创建和缓存读取显示为 0,是平台把 Claude Code CLI 官方兼容层产生的缓存 usage 从客户账单口径里剔除了;这不会影响实际缓存效果,也不会额外夹带非官方内容。
Streaming Notice
流式请求中途超时说明
少量流式请求可能在已经返回部分正文后,上游长时间没有继续输出。为避免请求一直挂起,平台会触发流式空闲超时保护,并把本次请求标记为失败。
如果正文已经开始返回,平台不会在同一次流式响应里自动切换其它线路续写,避免出现内容重复、断裂或上下文不一致。
这类失败请求不会向用户计费;控制台调用记录会显示失败状态和对应的 requestId,方便排查。
如果业务仍需要完整结果,请重新发起请求。重新请求会产生新的 requestId,不能把原 requestId 改成成功。
建议接入侧把流式失败当作一次失败请求处理,并按业务需要重新生成;不要假设平台会在同一个流里无感续写。