星火AI图片理解API文档

ops/2024/9/23 1:46:19/

图片理解 API 文档 | 讯飞开放平台文档中心

接口说明

  • 用户输入一张图片和问题,从而识别出图片中的对象、场景等信息回答用户的问题

  • 部分开发语言demo如下,其他开发语言请参照文档进行开发,也欢迎热心的开发者到 讯飞开放平台社区 分享你们的demo。
    图片理解 demo go语言
    图片理解 demo python语言
    图片理解 demo java语言

  • 集成图像理解时,需按照以下要求:

内容说明
传输方式ws[s] (为提高安全性,强烈推荐wss)
请求地址wss://spark-api.cn-huabei-1.xf-yun.com/v2.1/image
注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用
Content-Typeapplication/json;charset=UTF-8
接口鉴权签名机制,详情请参照签名生成
字符编码UTF-8
响应格式统一采用JSON格式
开发语言任意,只要可以向讯飞云服务发起HTTP请求的均可
适用范围任意操作系统,但因不支持跨域不适用于浏览器

#鉴权说明

在调用业务接口时,请求方需要对请求进行签名,服务端通过签名来校验请求的合法性。

#鉴权方法

详情请参照下方签名生成

#鉴权结果

如果鉴权失败,则根据不同错误类型返回不同HTTP Code状态码,同时携带错误描述信息,详细错误说明如下:

HTTP Code说明错误描述信息解决方法
401缺少authorization参数{"message":"Unauthorized"}检查是否有authorization参数,详情见authorization参数详细生成规则
401签名参数解析失败{“message”:”HMAC signature cannot be verified”}检查签名的各个参数是否有缺失是否正确,特别确认下复制的api_key是否正确
401签名校验失败{“message”:”HMAC signature does not match”}签名验证失败,可能原因有很多。
1. 检查api_key,api_secret 是否正确。
2.检查计算签名的参数host,date,request-line是否按照协议要求拼接。
3. 检查signature签名的base64长度是否正常(正常44个字节)。
403时钟偏移校验失败{“message”:”HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication”}检查服务器时间是否标准,相差5分钟以上会报此错误

时钟偏移校验失败示例:

HTTP/1.1 403 Forbidden
Date: Mon, 22 May 2023 05:44:14 GMT
Content-Length: 116
Content-Type: text/plain; charset=utf-8
{"message": "HMAC signature does not match, a valid date or x-date header is required for HMAC Authentication"
}

#请求参数

在调用业务接口时,都需要在 Http Request Body 中配置以下参数,请求数据均为json字符串。
请求参数示例:

{"header": {"app_id": "123456","uid": "39769795890"},"parameter": {"chat": {"domain": "general","temperature": 0.5,"top_k": 4,"max_tokens": 2028,"auditing": "default"}},"payload": {"message": {"text": [{"role": "user","content": "base64","content_type": "image"},{"role": "user","content": "这张图片是什么内容","content_type": "text"}]}}
}

请求参数说明:

参数名类型必传描述
header.app_idstring应用的app_id,需要在飞云交互平台申请 ,"maxLength":8
header.uidstring每个用户的id,非必传字段,用于后续扩展 ,"maxLength":32
parameter.chatobject用于上传对话的参数信息
parameter.chat.domainstring需要使用的领域,模型:image
parameter.chat.temperaturefloat核采样阈值,向上调整可以增加结果的随机程度,取值范围 (0,1] ,默认值0.5
parameter.chat.top_kint从k个中随机选择一个(非等概率),最小值1,最大值6,默认值4
parameter.chat.max_tokensint回答的tokens的最大长度 ,最小值是1, 最大值是8192,默认值2048
parameter.chat.auditingstring内容审核的严格程度,strict表示严格审核策略;moderate表示中等审核策略;default表示默认的审核程度
parameter.chat.chat_idstring用于关联会话chat ,需要保障用户下唯一
payload.message.textjson/object/array文本数据,受Token限制,有效内容不能超过8192Token
  • 单轮交互示例说明: 单轮交互只需要传递一个user角色的数据
[// 用户的提问{"role": "user", "content": "xxx", "content_type":"image"}, // 首个必须是图片{"role": "user", "content": "你会做什么?"}
]
  • 多轮交互的格式示例: 多轮交互需要将之前的交互历史按照user(image)->user->assistant->user->assistant规则进行拼接,保证最后一条是user的当前问题
[// 拼接对话历史信息:{"role": "user", "content": "xxx", "content_type":"image"}, // 首个必须是图片{"role": "user", "content": "图片里面有几个人"},              // 用户第一个问题   role是user,表示是用户的提问{"role": "assistant", "content": "有三个人"},        // AI的第一个回复  role是assistant,表示是AI的回复// 用户最新的提问{"role": "user", "content": "几条腿?"}
]

字段参数说明:

字段含义数据类型取值范围默认值说明
role角色stringuser, assistantuser表示是用户的问题,assistant表示AI的回复
content文本内容string--该角色的对话内容
  • 图片数据
{"role": "user","content": "base64","content_type": "image",
}

字段参数说明:

字段含义数据类型取值范围默认值说明
role角色stringuser多模的数据上传使用user
content图片的base64数据string--模型自动判断格式,直接传二进制数据即可
content_type数据的类型stringimage、text、audio、videotext图片上传的时候固定使用image

#返回结果

返回参数示例:
成功

{"header": {"code": 0,"message": "Success","sid": "cht000704fa@dx16ade44e4d87a1c802","status": 0},"payload": {"choices": {"status": 2,"seq": 0,"text": [{"content": "这是AI的回复文本","content_type": "text","content_meta": {"desc": "xxxx","url": false,},"index": 0,"role": "assistant"}]},"usage": {"text": {"completion_tokens": 0,"question_tokens": 0,"prompt_tokens": 0,"total_tokens": 0}}}
}

异常

{"header": {"code": 10110,     "message": "xxxx", "sid": "cht00120013@dx181c8172afb0001102","status": 2,}
}

返回参数说明:

参数类型含义
header.codeint服务错误码 , 0表示正常,非0表示出错
header.sidstring会话的sid
header.statusint会话的状态,取值[0,1,2], 其中0表示第一个结果, 1表示中间结果, 2表示最后一个结果
header.messagestring返回消息描述 ,错误码的描述信息
payload.choices.statusint数据状态 ,0:开始, 1:开始, 2:结束(表示文本响应结束)
payload.choices.seqint数据序号,最小值:0, 最大值:9999999
payload.choices.textjson object array文本结果 ,是一个json 数组
payload.usageobjecttoken消耗响应,最后一个结果时,才会有该字段
payload.usage.textjson / object文本数据
payload.usage.text.completion_tokensint回答tokens大小
payload.usage.text.question_tokensint问题不带历史的tokens大小 ,单轮情况下,此数值会略小于prompt_tokens
payload.usage.text.prompt_tokensint问题总tokens大小
payload.usage.text.total_tokensint问题和回答的tokens大小

choices字段参数说明

参数类型含义
contentstring回答的结果
content_typestring数据的类型
indexint结果序号,在多候选中使用
rolestring角色,assistant说明这是AI的回复

#结果格式补充说明

模型结果除了普通文本类型,为了满足排版需求,会出现以下的标记语言,建议集成方进行适配:

  • markdown(表格、列表等)
  • latex(数学公式)

#常见问题

#图片理解的主要功能是什么?

答:用户输入一张图片和问题,从而识别出图片中的对象、场景等信息回答用户的问题。

#图片理解支持什么应用平台?

答:目前支持Web API应用平台。

#图片理解的文本大小限制多少?

答:有效内容不能超过8192Token


http://www.ppmy.cn/ops/114518.html

相关文章

mac python安装库的问题——以requests为例

在 macOS 上安装 Python 的 requests 库,可以通过以下步骤完成: 打开终端: 可以在“应用程序” > “实用工具”中找到“终端”,或者通过 Spotlight 搜索“终端”。 确保已安装 Python: 输入以下命令检查 Python 是…

达梦disql支持上翻历史命令-安装rlwrap

time:2024/09/18 Author:skatexg 一、背景 DM安装完成后使用disql命令行,无法使用上下键引用历史命令,会出现“[[A[[A”的现象。这样的操作包括使用退格Backspace键,上下键,左右键等。解决这个问题,可以使用rlwrap工…

Kalman算法、扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)的比较

目录 一、Kalman算法 Kalman算法优缺点: 二、扩展卡尔曼滤波(EKF) 原理: 扩展Kalman算法优缺点: 步骤简化: 优点简化: 缺点简化: 三、无迹卡尔曼滤波(UKF&#…

WinRAR技巧:如何高效制作RAR分卷压缩文件

RAR分卷压缩是一种将大文件分割成多个较小文件的技术,便于在存储空间有限或网络传输条件受限的情况下传输和存储。本文将详细介绍如何使用WinRAR压缩软件来制作RAR分卷压缩文件。 我们先将压缩包内的文件解压出来,然后查看一下,然后打开WinR…

蓝桥杯2024省C

P10898 [蓝桥杯 2024 省 C] 拼正方形 题目描述 小蓝正在玩拼图游戏,他有 7385137888721个 22的方块和 10470245 个 11 的方块,他需要从中挑出一些来拼出一个正方形,比如用 3 个 22 和 4 个 11 的方块可以拼出一个 44 的正方形,用…

2024“华为杯”中国研究生数学建模竞赛(A题)深度剖析_数学建模完整过程+详细思路+代码全解析

问题一详细解答过程 2. 简化疲劳损伤计算模型 2.1 累积损伤的Palmgren-Miner理论 根据Palmgren-Miner线性累积损伤理论,疲劳损伤是通过在一定的应力循环下累积的。对于给定应力幅值 S i S_i Si​,累积损伤值 D D D 是由经历的应力循环次数 n i n_i…

【Android Studio】使用雷电模拟器调试

文章目录 进入开发者模式使雷电模拟器adb连接PC 进入开发者模式 多次点击版本号 -开区USB调试 使雷电模拟器adb连接PC 写cmd脚本 雷电模拟器端口为5555 ,脚本内容如下: adb.exe connect 127.0.0.1:5555默认使用powershell的建议为: .\a…

Android 源码集成可卸载 APP

android系统包含三类APP: 1、可自由卸载APP安装在 /data/app目录下。 2、系统APP放在 /system/app目录。 3、特权APP放在 /system/priv-app目录。 系统编译后,打包前, /data分区不起作用,因此系统打包前,可以先将APP全部拷贝到 /…