Glint-VL 企业级视觉语言模型 · v1
Glint-VL 多媒体理解 API
通过 OpenAI 兼容接口分析图片或视频,支持同步响应、SSE 流式输出。适用于内容审核、事件检索、OCR 与过程分析等场景。
概览
Glint-VL-Video-8B 是一款企业级视觉语言模型,能够统一理解图像、视频与空间信息。API 采用 OpenAI 兼容格式,可通过自然语言分析远程图片或视频,并返回可直接用于业务流程的文本结果。
GET /v1/models 和 POST /v1/chat/completions 均使用 OpenAI 标准 Bearer 鉴权。媒体分析支持完整 JSON 响应和 SSE 流式响应。
快速开始
先查询可用模型:
curl https://maas.ve2s.ai/v1/models \
-H "Authorization: Bearer $GLINT_API_KEY"使用 Glint-VL-Video-8B 分析一段视频:
curl -X POST https://maas.ve2s.ai/v1/chat/completions \
-H "Authorization: Bearer $GLINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Glint-VL-Video-8B",
"messages": [{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "https://example.com/video.mp4"
}
},
{
"type": "text",
"text": "总结视频中的主要事件和人物行为"
}
]
}],
"stream": false
}'鉴权
两个接口均按照 OpenAI 标准使用 Bearer API Key。请把服务提供方分配的 Key
放入 Authorization 请求头:
Authorization: Bearer <GLINT_API_KEY>
Content-Type: application/json示例代码使用环境变量 GLINT_API_KEY,不要把 Key 提交到公开代码仓库或写入前端页面。
基础地址
https://maas.ve2s.ai/v1本文使用 https://maas.ve2s.ai/v1 作为示例。实际调用时,请替换为服务提供方分配的 API 基础地址。
模型列表接口
获取媒体分析接口支持的模型。
请求
无需请求体,但需要 Bearer API Key:
curl https://maas.ve2s.ai/v1/models \
-H "Authorization: Bearer $GLINT_API_KEY"成功响应
响应采用 OpenAI Models API 格式:
{
"object": "list",
"data": [
{
"id": "Glint-VL-Video-8B",
"object": "model",
"created": 0,
"owned_by": "glint"
},
{
"id": "Glint-VL-SE-8B",
"object": "model",
"created": 0,
"owned_by": "glint"
}
]
}| 模型 ID | 支持的媒体 |
|---|---|
Glint-VL-Video-8B | 图片、视频 |
Glint-VL-SE-8B | 图片 |
返回的 data[].id 可直接作为 POST /v1/chat/completions 请求中的 model 参数。
媒体分析接口
分析图片或视频并支持连续追问。
用途
请求和返回体兼容 OpenAI Chat Completions 格式。首轮请求分析指定媒体;后续可通过 conversation_id 复用服务端会话,也可以由调用方在完整 messages 中维护无状态对话历史。
请求参数
Content-Type: application/json
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | Glint-VL-SE-8B 仅支持图片;Glint-VL-Video-8B 支持图片和视频。 |
messages | array | 是 | — | OpenAI Chat Completions 风格的消息数组。 |
messages[].content[].image_url | object | 图片首轮是 | — | url 支持完整 http/https 图片 URL 或 Base64 Data URL。 |
messages[].content[].video_url | object | 视频首轮是 | — | url 必须是完整 http/https 视频 URL。 |
messages[].content[].text | string | 否 | — | 首轮分析要求或后续追问。 |
conversation_id | string | 否 | — | 使用首轮响应中的不透明会话 ID 复用服务端会话;追问时无需再次发送媒体 URL。 |
stream | boolean | 否 | false | true 时返回 OpenAI Chat Completions 风格 SSE。 |
请求示例
分析图片
Glint-VL-SE-8B 只支持图片;Glint-VL-Video-8B 也可以使用相同的 image_url 结构:
curl -X POST https://maas.ve2s.ai/v1/chat/completions \
-H "Authorization: Bearer $GLINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Glint-VL-SE-8B",
"messages": [{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
},
{
"type": "text",
"text": "详细描述图片并提取文字"
}
]
}],
"stream": false
}'继续追问
使用首轮响应中的 conversation_id 继续追问,无需再次发送媒体。model 应与该会话使用的模型保持一致:
curl -X POST https://maas.ve2s.ai/v1/chat/completions \
-H "Authorization: Bearer $GLINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Glint-VL-Video-8B",
"conversation_id": "conv_xxxxxxxx",
"messages": [{
"role": "user",
"content": "穿红衣服的人后来去了哪里?"
}],
"stream": false
}'完全遵循 OpenAI Chat Completions 的无状态方式时,可以不传 conversation_id,在 messages 中依次重传首轮 user、首轮 assistant 和最新 user 消息。
流式请求
流式请求使用 curl -N 禁用客户端缓冲:
curl -N -X POST https://maas.ve2s.ai/v1/chat/completions \
-H "Authorization: Bearer $GLINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Glint-VL-Video-8B",
"messages": [{
"role": "user",
"content": [{
"type": "video_url",
"video_url": {
"url": "https://example.com/video.mp4"
}
}]
}],
"stream": true
}'成功响应
stream=false 时返回完整的 Chat Completion:
{
"id": "chatcmpl-xxxxxxxx",
"object": "chat.completion",
"created": 1784736000,
"model": "Glint-VL-Video-8B",
"conversation_id": "conv_xxxxxxxx",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "媒体分析结果",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
]
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 本次 Chat Completion 的唯一标识。 |
object | string | 非流式响应固定为 chat.completion。 |
created | number | 响应创建时间戳。 |
model | string | 本次请求使用的公开模型 ID。 |
conversation_id | string | 可用于后续追问的不透明会话 ID。 |
choices[0].message.content | string | 非流式媒体分析正文。 |
choices[0].finish_reason | string | 正常完成时为 stop。 |
SSE 响应
stream=true 时响应类型为 text/event-stream,正文通过 choices[0].delta.content 分段返回,最后发送 data: [DONE]:
data: {"id":"chatcmpl-xxxxxxxx","object":"chat.completion.chunk","created":1784736000,"model":"Glint-VL-Video-8B","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-xxxxxxxx","object":"chat.completion.chunk","created":1784736000,"model":"Glint-VL-Video-8B","choices":[{"index":0,"delta":{"content":"媒体分析结果…"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-xxxxxxxx","object":"chat.completion.chunk","created":1784736000,"model":"Glint-VL-Video-8B","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]错误响应
错误体使用 OpenAI 风格:
{
"error": {
"message": "错误描述",
"type": "invalid_request_error",
"param": "model",
"code": "invalid_model"
}
}| HTTP | error.code | 触发条件 |
|---|---|---|
401 | invalid_api_key | API Key 缺失或错误。 |
400 | model_required / invalid_model / unsupported_model | model 缺失、格式错误或不是受支持模型。 |
400 | messages_required / invalid_request | messages 缺失或结构错误。 |
400 | media_url_required / invalid_image_url / invalid_video_url | 首轮缺少媒体,或 URL / Data URL 非法。 |
400 | model_media_mismatch | Glint-VL-SE-8B 收到了 video_url。 |
400 | invalid_conversation_id / follow_up_message_required | conversation_id 格式错误或缺少追问。 |
404 | conversation_not_found | 会话不存在或不属于媒体分析会话。 |
409 | conversation_busy | 同一会话的上一轮仍在处理中。 |
500 | server_error | 服务端执行媒体分析失败。 |
503 | service_unavailable | 媒体分析服务暂时不可用。 |
504 | request_timeout | 同步等待超时。 |
注意事项
- 接口不接受 multipart 文件上传和本地文件路径;图片使用
image_url,视频使用video_url。 - 图片支持 http/https URL 和 Base64 Data URL;视频只支持 http/https URL。
- 整个 JSON 请求体上限为 10 MB;
Glint-VL-SE-8B的远程图片下载上限为 20 MB。 Glint-VL-SE-8B只允许image_url;Glint-VL-Video-8B允许image_url或video_url。messages[].role支持developer、system、user和assistant;媒体内容块只能出现在user消息中。- 每条
user消息最多包含一个image_url或video_url;文本内容合计最长为 100,000 个字符。 - 使用
conversation_id上传新媒体时,应把新媒体和本轮问题放在最后一条user消息中。 - 非流式正文位于
choices[0].message.content;流式正文位于choices[0].delta.content。 - 服务端最长等待 12 分钟;流式请求在分析期间每 15 秒发送 SSE 心跳注释。
- 流式部署需要关闭反向代理响应缓冲;客户端中途断开不会取消后台分析。
SDK 示例
以下示例均使用 Glint-VL-Video-8B 分析视频。请先把 API Key 写入环境变量
GLINT_API_KEY:
import os
import requests
payload = {
"model": "Glint-VL-Video-8B",
"messages": [{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {"url": "https://example.com/video.mp4"},
},
{
"type": "text",
"text": "总结视频中的主要事件和人物行为",
},
],
}],
"stream": False,
}
response = requests.post(
"https://maas.ve2s.ai/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['GLINT_API_KEY']}"},
json=payload,
timeout=720,
)
response.raise_for_status()
data = response.json()
print(data["choices"][0]["message"]["content"])
print("conversation_id:", data["conversation_id"])常见问题
支持哪些模型和媒体类型?
Glint-VL-SE-8B 仅支持图片,Glint-VL-Video-8B 支持图片和视频。图片可使用 http/https URL 或 Base64 Data URL;视频必须使用 http/https URL。
接口需要 Token 吗?
需要。GET /v1/models 和 POST /v1/chat/completions 均使用
Authorization: Bearer <GLINT_API_KEY>。Key 由服务提供方分配。
如何查询可用模型?
调用 GET /v1/models。响应中的 data[].id 可直接用于媒体分析请求的 model 参数。
接口支持同步和流式响应吗?
支持。stream=false 返回完整 Chat Completion;stream=true 返回 SSE,内容位于 choices[0].delta.content,并以 data: [DONE] 结束。
可以直接上传文件或传本地路径吗?
不可以。接口不接受 multipart 文件或本地路径;图片使用 image_url,视频使用 video_url。
© 2026 VE²S · Glint-VL · 企业级视觉智能模型