API Path
/aipaas/teleOmni/v1/silicon/active
请求协议
HTTPS
请求方法
POST
请求头部 :
| 头部标签 | 必填 | 说明 | 类型 | 数据字典 | 限制 | 头部内容 | 示例 |
|---|---|---|---|---|---|---|---|
| Content-Type | 是 | application/json | [string] | application/json | application/json | ||
| X-APP-ID | 是 | 控制台-应用管理-创建应用-AppID,公网鉴权,公网调用时必传 | [string] | ||||
| Authorization | 是 | 公网鉴权,公网调用时必传 | [string] | ||||
| Device-Uuid | 否 | 设备管理-设备uuid | [string] |
请求参数 Json
Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| traceId | 接口跟踪ID,每次调用需不同,可使用UUID, 用于日志排除、链路跟踪 | 否 | [string] | |||
| timestamp | 当前时间戳 | 否 | [int] | |||
| messages | 对话内容,对话内容必须严格按照user-> assistant-> user 的格式传参 | 是 | [array] | |||
| messages>>role | 角色 system:系统消息 user: 用户消息 assistant: 助手消息 | 是 | [string] | |||
| messages>>content | 系统、用户、助手、工具、函数消息, content中文本信息是必填的,图片信息不是必填的,当角色为system时该参数为string类型 | 是 | [array] | “content”:”你好” “content”:[{“type”:”text”,”text”:”你好”}] | ||
| messages>>content>>type | 数据类型text、image_url | 是 | [string] | |||
| messages>>content>>text | 当type为text时,必填 | 否 | [string] | |||
| messages>>content>>image_url | 当type为image_url时,必填,数据为一个key-value对,key为"url", value 为图片的base64编码,可以带上"data:image/jpeg;base64,",也可以不带 | 否 | [object] | |||
| model | 要使用的模型的ID, 默认:TeleAI/TeleMM,不按要求填写可能会导致请求异常或者结果不符合预期 | 否 | [string] | |||
| frequency_penalty | 默认值为 0.0,在 -2.0 到 2.0 之间。正值会基于新生成词在已有文本中的频率进行惩罚,降低模型重复同一行文本的可能性。(算法不支持) | 否 | [double] | |||
| max_tokens | 最大生成词元数量。输入词元和生成词元的总长度受模型上下文长度 | 否 | [int] | |||
| n | 默认值为 1, 为每条输入消息生成多少个聊天补全选项。注意,您将根据所有选项中生成的词元数量收费。将n保持为1以最小化成本 | 否 | [int] | |||
| stream | 默认值为 false,如果设置,部分消息增量将被发送 | 否 | [boolean] | |||
| stream_options | 流式响应的选项。仅当您设置stream: true时才设置此项 | 否 | [object] | "stream_options":{"include_usage": true} | ||
| temperature | 默认值为 0.001,使用的采样温度,建议范围在 0 到 1 之间。较高的值如 0.8 会使输出更随机,而较低的值如 0.2 会使输出更集中且具有确定性。大于1时,可能会导致结果变差。 | 否 | [double] | |||
| top_p | 默认值为 0.7,取值范围为0-1之间,作为温度采样的替代方法,称为核采样,该方法中模型考虑具有top_p 概率质量的词元结果 | 否 | [double] | |||
| top_k | 作用:随机候选数(不建议修改) 取值范围:12b模型:[1,120000] | 否 | [int] |
响应内容 :
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| data | 是 | [object] | ||||
| data>>id | 聊天补全的唯一标识符。 | 是 | [string] | |||
| data>>choices | 聊天补全选项的列表。如果参数 n 大于 1,则可以有多个选项。 | 是 | [array] | |||
| data>>choices>>finish_reason | 模型停止生成词元的原因。可能值包括: stop: 模型达到了自然停止点或提供的停止序列。 length: 达到请求中指定的最大词元数。 content_filter: 由于我们的内容过滤器的标记,内容被省略。 tool_calls: 模型调用了一个工具。 function_call (已弃用): 模型调用了一个函数。 | 是 | [string] | |||
| data>>choices>>index | 选项在选项列表中的索引 | 是 | [int] | |||
| data>>choices>>logprobs | 未生效 | 是 | [null] | |||
| data>>choices>>delta | 模型生成的聊天补全消息。 | 是 | [object] | |||
| data>>choices>>delta>>content | 消息的内容 | 是 | [string] | |||
| data>>choices>>delta>>role | 此消息作者的角色。 | 是 | [string] | |||
| data>>choices>>delta>>refusal | 未生效 | 是 | [null] | |||
| data>>choices>>delta>>function_call | 未生效 | 是 | [null] | |||
| data>>choices>>delta>>tool_calls | 未生效 | 是 | [array] | |||
| data>>created | 聊天补全创建的Unix时间戳(以秒为单位)。 | 是 | [int] | |||
| data>>model | 用于聊天补全的模型。 | 是 | [string] | |||
| data>>object | 对象类型,始终为 chat.completion。 | 是 | [string] | |||
| data>>service_tier | 未生效 | 是 | [null] | |||
| data>>system_fingerprint | 未生效 | 是 | [null] | |||
| data>>usage | 补全请求的使用统计信息。(如果请求中stream_options为true,在最后一个返消息中返回相关信息 ) | 是 | [object] | |||
| data>>usage>>prompt_tokens | 提示中的词元数量。 | 是 | [int] | |||
| data>>usage>>completion_tokens | 在生成的补全中的词元数量。 | 是 | [int] | |||
| data>>usage>>total_tokens | 请求中使用的总词元数(提示 + 补全)。 | 是 | [int] | |||
| data>>usage>>completion_tokens_details | 未生效 | 是 | [null] | |||
| data>>usage>>prompt_tokens_details | 未生效 | 是 | [null] |
> 非流式响应结果-成功 (200)
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| id | 聊天补全的唯一标识符。 | 是 | [string] | |||
| choices | 聊天补全选项的列表。如果参数 n 大于 1,则可以有多个选项。 | 是 | [array] | |||
| choices>>finish_reason | 模型停止生成词元的原因。可能值包括: stop: 模型达到了自然停止点或提供的停止序列。 length: 达到请求中指定的最大词元数。 content_filter: 由于我们的内容过滤器的标记,内容被省略。 tool_calls: 模型调用了一个工具。 function_call (已弃用): 模型调用了一个函数。 | 是 | [string] | |||
| choices>>index | 选项在选项列表中的索引 | 是 | [int] | |||
| choices>>logprobs | 未生效 | 是 | [null] | |||
| choices>>stop_reason | 未生效 | 是 | [null] | |||
| choices>>message | 模型生成的聊天补全消息。 | 是 | [object] | |||
| choices>>message>>content | 消息的内容 | 是 | [string] | |||
| choices>>message>>role | 此消息作者的角色。 | 是 | [string] | |||
| choices>>message>>refusal | 未生效 | 是 | [null] | |||
| choices>>message>>audio | 未生效 | 是 | [null] | |||
| choices>>message>>function_call | 未生效 | 是 | [null] | |||
| choices>>message>>tool_calls | 未生效 | 是 | [array] | |||
| choices>>message>>reasoning_content | 未生效 | 是 | [null] | |||
| created | 聊天补全创建的Unix时间戳(以秒为单位)。 | 是 | [int] | |||
| model | 用于聊天补全的模型。 | 是 | [string] | |||
| object | 对象类型,始终为 chat.completion。 | 是 | [string] | |||
| usage | 补全请求的使用统计信息。 | 是 | [object] | |||
| usage>>prompt_tokens | 提示中的词元数量。 | 是 | [int] | |||
| usage>>completion_token | 在生成的补全中的词元数量。 | 是 | [int] | |||
| usage>>total_tokens | 请求中使用的总词元数(提示 + 补全)。 | 是 | [int] | |||
| usage>>completion_tokens_details | 未生效 | 是 | [null] | |||
| usage>>prompt_tokens_details | 未生效 | 是 | [null] | |||
| prompt_logprobs | 未生效 | 是 | [null] |
成功示例[Mock API] :
data: {
"id": "277fd1f21c9e4b15bbbc6f28b0fc62ab",
"choices": [{
"finish_reason": null,
"index": 0,
"delta": {
"content": "",
"role": "assistant",
"refusal": null
},
"logprobs": null
}],
"created": 1729666765,
"system_fingerprint": null,
"model": "aichat",
"object": "chat.completion.chunk"
}
data: {
"id": "277fd1f21c9e4b15bbbc6f28b0fc62ab",
"choices": [{
"finish_reason": null,
"index": 0,
"delta": {
"content": "你好"
},
"logprobs": null
}],
"created": 1729666765,
"model": "aichat",
"system_fingerprint": null,
"object": "chat.completion.chunk"
}
........中间省略消息块
data: {
"id": "277fd1f21c9e4b15bbbc6f28b0fc62ab",
"choices": [{
"finish_reason": null,
"index": 0,
"delta": {
"content": "?"
},
"logprobs": null
}],
"created": 1729666765,
"model": "aichat",
"system_fingerprint": null,
"object": "chat.completion.chunk"
}
data: {
"id": "277fd1f21c9e4b15bbbc6f28b0fc62ab",
"choices": [{
"finish_reason": null,
"index": 0,
"delta": {
"content": ""
},
"logprobs": null
}],
"created": 1729666765,
"model": "aichat",
"system_fingerprint": null,
"object": "chat.completion.chunk"
}
data: {
"id": "277fd1f21c9e4b15bbbc6f28b0fc62ab",
"choices": [{
"finish_reason": "stop",
"index": 0,
"delta": {},
"logprobs": null
}],
"created": 1729666765,
"model": "aichat",
"system_fingerprint": null,
"object": "chat.completion.chunk"
}
data: {
"id": "c86aff51e90442ed8c7e1ab5296189a8",
"choices": [],
"created": 1729666822,
"model": "aichat",
"system_fingerprint": null,
"object": "chat.completion.chunk",
"usage": {
"completion_tokens": 40,
"prompt_tokens": 23,
"total_tokens": 63,
"completion_tokens_details": {
"reasoning_tokens": 0
}
}
}
此消息块在stream_option生效时产生
data: [DONE]
多模态理解大模型旨在处理和理解包含多种模态数据的信息,实现对不同模态数据的融合分析。
该算法用于替换之前的 多模态理解对话接口(算法编码:2202065)。
服务接口调用时需要严格遵循服务鉴权规则
公网服务调用鉴权规则请参见:开发指南 - 接口签名认证
通用状态码请参见【状态码】中的【网关认证】,其余状态码如下:
| 响应码 | 描述信息 |
|---|---|
| 100 | 请求认证参数缺失 |
| 101 | 认证参数错误 |
| 102 | 模型连接错误 |
| 103 | 参数错误 |
请求示例:
{
"traceId": "955B307469CE4C749F0A964FEBAA6D1A",
"timestamp": 1713234271,
"model": "TeleAI/TeleMM",
"stream": true,
"stream_options": {
"include_usage": true
},
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What’s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "base64....."
}
}
]
}
]
}
响应示例
只有第一个 数据 chunk 会带上 "role": "assistant"
data: {
"id": "019295a5fb21485754a347e4d23f8268",
"object": "chat.completion.chunk",
"created": 1729087536,
"model": "TeleAI/TeleMM",
"choices": [
{
"index": 0,
"delta": {
"content": "",
"role": "assistant"
},
"finish_reason": null,
"content_filter_results": {
"hate": {
"filtered": false
},
"self_harm": {
"filtered": false
},
"sexual": {
"filtered": false
},
"violence": {
"filtered": false
}
}
}
],
"system_fingerprint": "",
"usage": {
"prompt_tokens": 283,
"completion_tokens": 0,
"total_tokens": 283
}
}
data: {
"id": "019295a5fb21485754a347e4d23f8268",
"object": "chat.completion.chunk",
"created": 1729087536,
"model": "TeleAI/TeleMM",
"choices": [
{
"index": 0,
"delta": {
"content": "The"
},
"finish_reason": null,
"content_filter_results": {
"hate": {
"filtered": false
},
"self_harm": {
"filtered": false
},
"sexual": {
"filtered": false
},
"violence": {
"filtered": false
}
}
}
],
"system_fingerprint": "",
"usage": {
"prompt_tokens": 283,
"completion_tokens": 1,
"total_tokens": 284
}
}
最后一个数据 chunk 必须返回有效的 usage 用来计费:
data: {
"id": "019295a5fb21485754a347e4d23f8268",
"object": "chat.completion.chunk",
"created": 1729087536,
"model": "TeleAI/TeleMM",
"choices": [
],
"system_fingerprint": "",
"usage": {
"prompt_tokens": 283,
"completion_tokens": 46,
"total_tokens": 329
}
}
最后一个 chunk 得是 data: [DONE]
data: [DONE]
请求示例:
{
"traceId": "955B307469CE4C749F0A964FEBAA6D1A",
"timestamp": 1713234271,
"stream": false,
"temperature": 0.7,
"model": "TeleAI/TeleMM",
"top_p": 0.95,
"top_k": 50,
"frequency_penalty": 0.5,
"n": 1,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What’s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAUABQDAREAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAQcICQD/xAAnEAACAQMDBAICAwAAAAAAAAABAgMEBREGBxIAEyExCCJBgRVC0f/EABgBAAMBAQAAAAAAAAAAAAAAAAADBAIB/8QAJxEAAgIBAgILAAAAAAAAAAAAAAECAxESMRNBBCEkQlFhkaGx4fH/2gAMAwEAAhEDEQA/ANGdd6ztmgLFU6pvlXFFb6KGaaZWdRLMUieQRQhmHOVgjBUHkn9kyXPpCur4STh3s8l4r8GQ4emWrfkJLY/5LboboaxlserdoaHTVrrKuqprXX0V4e4HlDTxzlZ1MUa4KO4EsbFe5EUIAaNnLZ2WLs7WU8Pqzj4238zarVabsXuvv12KQBx6J6rECs+UFvhrthdZ1L29Kqa12yS50zF+DwSw/buxt+JFTucR/YniQQxB6nhmJrVFojvZC/6sue9ehrdtfpH+LqmsK3F1qaSShiazs0YNS7MgMsTiPt8RnkWRl+yBgyTi0TVRsUss0X8ZPHOM+M+8dKLDvR8EjB/H7/zoAHEZzgZ9Zx56ACBnoA//2Q=="
}
}
]
}
]
}
响应示例
{
"id": "01929537baf4b30025d3e926c06214ba",
"object": "chat.completion",
"created": 1729080310,
"model": "TeleAI/TeleMM",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "This image features a cute ginger tabby kitten with a fluffy coat. The kitten has large, expressive eyes and is sitting on a carpeted floor. The background is blurred, drawing attention to the kitten's face and front paws."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 283,
"completion_tokens": 47,
"total_tokens": 330
}
}
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class Example {
public static void main(String[] args) {
example();
}
/**
* 方法中使用到的 JSONUtil、HttpRequest、HttpResponse均来自Hutool工具类。
* 具体maven依赖为:
*
* cn.hutool
* hutool-all
* 5.8.29
*
*/
public static void example() {
try {
String url = "算法调用地址";
// 设置请求头
Map headers = new HashMap();
//公网调用鉴权
headers.put("X-APP-ID", "yourAppId");
headers.put("Authorization", "yourAuthorization");
headers.put("Content-Type", "application/json");
String requestString = "{"traceId":"955B307469CE4C749F0A964FEBAA6D1A","timestamp":1713234271,"model":"TeleAI/TeleMM","stream":true,"stream_options":{"include_usage":true},"messages":[{"role":"user","content":[{"type":"text","text":"What’s in this image?"},{"type":"image_url","image_url":{"url":"base64....."}}]}]}";
// 发起HTTP请求
HttpResponse response =
HttpRequest.post(url)
.headerMap(headers, true)
.body(requestString)
.execute();
// 输出响应结果
System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import urllib.request
import urllib.error
import json
from typing import Dict, Any
def send_multimodal_request_urllib(url: str, headers: Dict[str, str],
request_data: Dict[str, Any]):
"""
使用urllib发送多模态AI请求(Python标准库版本)
:param url: API端点地址
:param headers: 请求头字典
:param request_data: 请求数据字典
:return: 响应内容字符串
:raises: Exception 当请求失败时抛出异常
"""
# 将字典转换为JSON字符串
json_string = json.dumps(request_data, ensure_ascii=False)
data = json_string.encode('utf-8')
# 创建请求对象
request = urllib.request.Request(url, data=data)
# 设置请求头
for key, value in headers.items():
request.add_header(key, value)
request.add_header("Content-Length", str(len(data)))
try:
# 发送请求并获取响应
with urllib.request.urlopen(request, timeout=30) as response:
result = response.read().decode('utf-8')
print(f"响应状态码: {response.getcode()}")
return result
except urllib.error.HTTPError as e:
raise RuntimeError(f"HTTP错误 {e.code}: {e.reason}")
except urllib.error.URLError as e:
raise RuntimeError(f"URL错误: {e.reason}")
# 使用示例
if __name__ == "__main__":
url = "https://your-api-endpoint.com/v1/chat/completions"
headers = {
"X-APP-ID": "yourAppId",
"Authorization": "yourAuthorization",
"Content-Type": "application/json"
}
request_data = {
"traceId": "955B307469CE4C749F0A964FEBAA6D1A",
"timestamp": 1713234271,
"model": "TeleAI/TeleMM",
"stream": True,
"stream_options": {"include_usage": True},
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "base64....."}}
]
}
]
}
try:
response = send_multimodal_request_urllib(url, headers, request_data)
print(f"响应内容: {response}")
except Exception as e:
print(f"请求执行失败: {e}")