# 角色模拟Web API文档(旧版)
# 一、接口要求
内容 | 说明 |
---|---|
传输协议 | https/wss |
接口鉴权 | 签名机制,详情请参照下方鉴权认证 |
字符编码 | UTF-8 |
响应格式 | 统一采用 JSON 格式 |
开发语言 | 任意,只要可以向讯飞云服务发起 HTTP/WebSocket 请求的均可 |
# 二、鉴权认证
在调用业务接口时,请求方需要对请求进行签名,服务端通过签名来校验请求的合法性。
# 鉴权方法
# 1、设置签名
在 HTTP 请求头 Header 或者 WebSocket 接口中设置参数:appId
, timestamp
, signature
示例:
- HTTP接口:在 Http Request Header 中配置以下参数
String appId = "应用ID";
String secret = "应用的秘钥"
Long timestamp = System.currentTimeMillis();
String signature = ApiAuthAlgorithm.getSignature(appId, secret, timestamp);
request.setHeader("appId",appId);
request.setHeader("timestamp",timestamp);
request.setHeader("signature",signature);
- WebSocket接口:通过在请求地址后面加上鉴权相关参数的方式
wss://ai-character.xfyun.cn/api/open/interactivews/{sid}?appId=xxx×tamp=xxx&signature=xxxxxx
签名参数说明:
字段名 | 类型 | 描述 | 必须 |
---|---|---|---|
appId | String | 应用 ID | Y |
timestamp | Long | 时间戳,单位: ms,与服务端时间相差五分钟之内 | Y |
signature | String | 签名 | Y |
# 2、签名(signature)生成规则
首先,用应用 ID(appId)和时间戳(timestamp)通过 MD5 算法生成随机授权参数 auth
再使用授权参数 auth 和接口密钥(secret)基于 HmacSHA1 生产签名 signature
示例:
public class ApiAuthAlgorithm {
private static final char[] MD5_TABLE = {
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f'
};
/**
* 获取签名
*
* @param appId 签名的key
* @param secret 签名秘钥
* @return 返回签名
*/
public String getSignature(String appId, String secret, long ts) {
try {
String auth = md5(appId + ts);
return hmacSHA1Encrypt(auth, secret);
} catch (SignatureException e) {
return null;
}
}
/**
* sha1加密
*
* @param encryptText 加密文本
* @param encryptKey 加密键
* @return 加密
*/
private String hmacSHA1Encrypt(String encryptText, String encryptKey)
throws SignatureException {
byte[] rawHmac;
try {
byte[] data = encryptKey.getBytes(StandardCharsets.UTF_8);
SecretKeySpec secretKey = new SecretKeySpec(data, "HmacSHA1");
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(secretKey);
byte[] text = encryptText.getBytes(StandardCharsets.UTF_8);
rawHmac = mac.doFinal(text);
} catch (InvalidKeyException e) {
throw new SignatureException("InvalidKeyException:" + e.getMessage());
} catch (NoSuchAlgorithmException e) {
throw new SignatureException(
"NoSuchAlgorithmException:" + e.getMessage()
);
}
return new String(Base64.encodeBase64(rawHmac));
}
private String md5(String cipherText) {
try {
byte[] data = cipherText.getBytes();
// 信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// MessageDigest对象通过使用 update方法处理数据, 使用指定的byte数组更新摘要
mdInst.update(data);
// 摘要更新之后,通过调用digest()执行哈希计算,获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char[] str = new char[j * 2];
int k = 0;
for (byte byte0 : md) { // i = 0
str[k++] = MD5_TABLE[byte0 >>> 4 & 0xf]; // 5
str[k++] = MD5_TABLE[byte0 & 0xf]; // F
}
// 返回经过加密后的字符串
return new String(str);
} catch (Exception e) {
return null;
}
}
}
# 鉴权结果
如果鉴权失败,则根据不同错误类型返回不同 HTTP Code 状态码,同时携带错误描述信息,详细错误说明如下:
HTTP Code | 说明 | 错误描述信息 | 解决方法 |
---|---|---|---|
401 | 鉴权参数为空 | Invalid Param, Please check header | 检查是否设置鉴权参数 |
401 | 签名参数解析失败 | Signature cannot be verified | 检查签名的各个参数是否有缺失是否正确,特别确认下复制的secret是否正确 |
401 | 签名校验失败 | Signature required | 签名验证失败,可能原因有很多。 1. 检查 appId、secret 是否正确。 2.检查计算签名的方法是否正确。 3. 检查时间戳是否正确等等 |
403 | 时钟偏移校验失败 | Invalid time or time required | 检查服务器时间是否标准,相差 5 分钟以上会报此错误 |
405 | 应用无效 | Invalid App | 检查该 appId 是否开通授权 |
# 三、接口列表
# 1 创建玩家账号
# 1.1 接口描述
玩家帐号,即与角色对话的终端用户。您需要为每一位使用对话功能的用户创建玩家帐号。 除非您在应用层自定义了特殊逻辑,否则默认情况下,每个玩家都可以与应用下的任意角色进行对话。
# 1.2 接口地址
https://ai-character.xfyun.cn/api/open/player/register
# 1.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
playerName | String | 玩家名称(同一应用下不允许重复),50字符以内 | Y | |
playerType | String | 玩家类型(开发者自定义枚举值),50字符以内 | N | |
description | String | 玩家描述(300字符以内,仅用于查询和展示场景,不对对话效果产生实质影响) | N | |
senderIdentity | String | 玩家职业身份(300字符以内,描述玩家的职业身份、和人格的关系、使命职责等) | N |
示例:
{
"appId":"12345678",
"playerName":"张三",
"description":"张三,一名程序员。",
"playerType":"移动端注册玩家",
"senderIdentity":"张三和李四是同事,在一家公司上班。"
}
# 1.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 新建玩家ID | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!",
"data": "0f1c9c1ab6ce1fc7c2f1731394fdf33e"
}
# 2 编辑玩家账号
# 2.1 接口描述
编辑玩家名称、描述和类型信息。
# 2.2 接口地址
https://ai-character.xfyun.cn/api/open/player/modify
# 2.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
playerId | String | 玩家ID | Y | |
playerName | String | 玩家姓名(同一应用下不允许重复) | Y | |
playerType | String | 玩家用户类型(开发者自定义枚举值) | N | |
description | String | 玩家用户描述 | N | |
senderIdentity | String | 玩家身份标识,300字符以内 | N |
示例:
{
"appId": "12345678",
"playerId": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"playerName": "张三",
"description": "张三是一名程序员。",
"playerType": "网页端注册用户",
"senderIdentity":"张三"
}
# 2.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 结果描述 | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!",
"data": true
}
# 3 删除玩家账号
# 3.1 接口描述
删除玩家帐号,会同步删除该玩家创建的所有人格,人格的所有记忆,以及该玩家参与的所有对话记忆。 删除后可重新注册同名帐号。
# 3.2 接口地址
https://ai-character.xfyun.cn/api/open/player/delete
# 3.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
playerId | String | 玩家账号ID | Y | |
playerName | String | 玩家姓名 | Y |
示例:
{
"appId":"12345678",
"playerId":"0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"playerName":"张三"
}
# 3.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 结果描述 | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!",
"data": true
}
# 4 创建人格
# 4.1 接口描述
角色,即人格。角色必须创建在某个玩家帐号下。您可以使用固定的玩家帐号来集中管理所有角色,也可以允许玩家自定义角色, 将角色创建在不同玩家帐号下。 角色设定信息请以角色名称或第二人称“你”来指代。
# 4.2 接口地址
https://ai-character.xfyun.cn/api/open/agent/edit-character
# 4.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
playerId | String | 玩家ID | Y | |
agentName | String | 人格名称(同一玩家创建的人格不允许重复) | Y | |
agentType | String | 人格类型(由开发者自定义枚举值) | N | |
description | String | 人格描述(仅用于查询和展示场景,不对人格效果产生实质影响) | N | |
identity | String | 社会身份(职业身份、和他人的关系、使命职责等。使用人格名称指代,避免使用“你”“我”代词。) | N | |
personalityDescription | String | 性格描述(身世背景,影响性格的重大事件,体现性格的典型表现等。使用人格名称指代。) | N | |
hobby | String | 爱好(使用人格名称指代) | N | |
speaker | String | 发音人 | N | |
keyPersonality | String | 性格关键词,100字符以内 | N | |
mission | String | 任务目标(虚构一段故事场景,设定角色目标。使用人格名称指代),1000字符以内 | N |
示例:
{
"appId": "12345678",
"playerId": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"agentName": "星巴",
"agentType": "示例人格",
"description": "星巴,星际探险家和宇宙联盟特使。",
"identity": "星巴是一名星际探险家,同时担任宇宙联盟的特使,负责寻找和联络未知星系中的文明。",
"personalityDescription": "星巴出生在一个多星球组成的和平联邦中,自幼对星际旅行充满了无限的憧憬。一次偶然的星际风暴经历让他失去了家人,但也因此被一位神秘的星际旅者所救,从此他决定成为一名探险家,以寻找新的星际文明为己任,希望能够连接更多的世界,促进宇宙间的理解和和平。星巴性格乐观、勇敢且充满好奇心,面对未知从不畏惧,总是第一个冲在前面。在团队中,他以其卓越的领导力和对未知的无畏探索而受到同伴们的尊敬。",
"hobby": "星巴喜欢驾驶飞船欣赏宇宙的浪漫。",
"speaker": "这里写发音人参数vcn", //如果您购买了语音合成,可以设置发音人
"keyPersonality": "勇敢,乐观",
"mission": "在一片未曾有人踏足过的星域,星巴驾驶着他的飞船穿梭于星辰之间。突然,一道异常的空间波动吸引了他的注意,星巴决定前往调查。"
}
# 4.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 新增人格ID | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!",
"data": "513fb8e354a546e75c0c7bda32a408fd"
}
# 5 编辑人格
# 5.1 接口描述
编辑人格的属性。
# 5.2 接口地址
https://ai-character.xfyun.cn/api/open/agent/edit-character
# 5.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
playerId | String | 玩家ID | Y | |
agentId | String | 人格ID | Y | |
agentName | String | 人格名称(同一玩家创建的人格不允许重复) | Y | |
agentType | String | 人格类型(由开发者自定义枚举值) | N | |
description | String | 人格描述(仅用于查询和展示场景,不对人格效果产生实质影响) | N | |
identity | String | 社会身份(职业身份、和他人的关系、使命职责等。使用人格名称指代,避免使用“你”“我”代词。) | N | |
personalityDescription | String | 性格描述(身世背景,影响性格的重大事件,体现性格的典型表现等。使用人格名称指代。) | N | |
hobby | String | 爱好(使用人格名称指代) | N | |
speaker | String | 发音人 | N | |
keyPersonality | String | 性格关键词,100字符以内 | N | |
mission | String | 任务目标(虚构一段故事场景,设定角色目标。使用人格名称指代),1000字符以内 | N |
示例:
{
"appId": "12345678",
"playerId": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"agentId": "513fb8e354a546e75c0c7bda32a408fd",
"agentName": "星巴",
"agentType": "示例人格",
"description": "星巴,星际探险家和宇宙联盟特使。",
"identity": "星巴是一名星际探险家,同时担任宇宙联盟的特使,负责寻找和联络未知星系中的文明。",
"personalityDescription": "星巴出生在一个多星球组成的和平联邦中,自幼对星际旅行充满了无限的憧憬。一次偶然的星际风暴经历让他失去了家人,但也因此被一位神秘的星际旅者所救,从此他决定成为一名探险家,以寻找新的星际文明为己任,希望能够连接更多的世界,促进宇宙间的理解和和平。星巴性格乐观、勇敢且充满好奇心,面对未知从不畏惧,总是第一个冲在前面。在团队中,他以其卓越的领导力和对未知的无畏探索而受到同伴们的尊敬。",
"hobby": "星巴喜欢驾驶飞船欣赏宇宙的浪漫。",
"speaker": "这里写发音人参数vcn", //如果您购买了语音合成,可以设置发音人
"keyPersonality": "勇敢,乐观",
"mission": "在一片未曾有人踏足过的星域,星巴驾驶着他的飞船穿梭于星辰之间。突然,一道异常的空间波动吸引了他的注意,星巴决定前往调查。"
}
# 5.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功=10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 编辑人格ID | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!",
"data": "513fb8e354a546e75c0c7bda32a408fd"
}
# 6 查询人格
# 6.1 接口描述
查询人格的所有属性信息。
# 6.2 接口地址
https://ai-character.xfyun.cn/api/open/agent/get-character
# 6.3 请求参数
GET,application/form-data
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
agentId | String | 人格ID | N | |
agentName | String | 人格名称 | N |
示例:
https://ai-character.xfyun.cn/api/open/agent/get-character?appId=xxxx&agentId=xxxx&agentName=xxxxxx
# 6.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 结果描述 | Y |
data示例:
{
"appId": "12345678",
"playerId": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"agentId": "513fb8e354a546e75c0c7bda32a408fd",
"agentName": "张三",
"agentType": "测试",
"description": "张三是一名程序员。",
"identity": "程序员",
"personalityDescription": "张三待人非常热情。",
"languageStyle": [
{
"scene": "张三在评审需求",
"example": "我觉得这个需求不合理。",
"field": "2"
},
{
"scene": "张三和他人打招呼",
"example": "嗨,朋友~",
"field": "1"
}
],
"hobby": "游泳。",
"speaker": "xxx"
}
# 7 删除人格
# 7.1 接口描述
删除角色,且同步删除角色的所有记忆。
# 7.2 接口地址
https://ai-character.xfyun.cn/api/open/agent/delete-character
# 7.3 请求参数
DELETE,application/form-data
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
agentId | String | 人格ID | Y | |
agentName | String | 人格名称 | Y |
示例:
https://ai-character.xfyun.cn/api/open/agent/get-character?appId=xxxx&agentId=xxxx&agentName=xxxxxx
# 7.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y | |
data | String | 结果描述:成功删除 | Y |
# 8 新增短期记忆
# 8.1 接口描述
用于创建短期记忆,包含对话记忆和观察记忆。 • 对话记忆指玩家和角色经历过的每一轮对话。对话记忆将持续影响角色的后续对话及行为反应。对话记忆由我们的服务自动创建。 • 观察记忆指角色视角下的剧情场景、背景知识、对话人身份信息等。您可以在调用对话接口前,为角色创建一条观察记忆,帮助角色了解场景上下文,并按照剧情展开对话。
# 8.2 接口地址
https://ai-character.xfyun.cn/api/open/interactive/generate
# 8.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
agentId | String | 人格ID | Y | |
interactionType | String | 记忆类型,cnv:对话,obs:观察 | Y | |
description | String | 记忆内容 | Y | |
playerInvolved | String | 记忆内容提及的玩家ID | Y | |
agentInvolved | String | 记忆内容提及的人格ID | Y |
示例:
{
"appId": "12345678",
"agentId": "513fb8e354a546e75c0c7bda32a408fd",
"interactionType": "obs",
"description": "张三正在敲代码,遇到了李四来提需求。"
}
# 8.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!"
}
# 9 对话开启
# 9.1 接口描述
驱动角色主动发言。 为保障人格的发言能接上之前的对话内容,开启会话时需要填写上轮会话ID。
# 9.2 接口地址
wss://ai-character.xfyun.cn/api/open/interactivews/{sid}?appId=xxx&timestamp=xxx&signature=xxxxxx
在请求URL上带上参数:appId, timestamp, signature 鉴权生成见上文接口鉴权,首次连接时,服务器会校验身份凭证及配额。
# 9.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
header.app_id | String | 应用ID | Y | |
header.agent_id | String | 人格ID | Y | |
header.uid | String | 玩家ID | Y | |
parameter.chat.chat_id | String | 当前会话Id(同一应用下不允许重复),和请求接口地址中的sid需一致 | Y | |
parameter.chat. pre_chat_id | String | 首次会话可不填,后续会话必填。 | Y | |
payload.message.text | Array | 使用对话开启功能时,请传空数组 | Y |
示例:
{
"header": {
"app_id": "12345678",
"uid": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"agent_id": "513fb8e354a546e75c0c7bda32a408fd"
},
"parameter": {
"chat": {
"chat_id": "test123456"
}
},
"payload": {
"message": {
"text": []//必须传空数组
}
}
}
# 9.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
header.code | int | 错误码,成功= 0 | Y | 0 |
header.status | int | 状态码,2表示会话完成 | Y | |
header.message | String | 结果描述 | Y | |
header.sid | String | 大模型会话session id | Y | |
payload.usage.agent_current_chars | int | 当前轮次角色输出的字数 | N | |
payload.usage.player_current_chars | int | 当前轮次玩家输入的字数 | N | |
payload.usage.total_current_tokens | int | 当前轮次消耗的总token数 | N | |
payload.usage.system_current_chars | int | 角色设定字数 | N | |
payload.choices.seq | int | 返回片段在回答全句中的次序 | Y | |
payload.choices.status | int | 状态码,2表示会话完成 | Y | |
payload.choices.text | Array | 大模型生成的会话内容 | Y |
示例:
{
"payload": {
"usage": {
"agent_current_chars": 97,
"player_current_chars": 0,
"total_current_tokens": 242,
"system_current_chars": 220
},
"choices": {
"seq": 6,
"status": 2,
"text": [
{
"content": "嗨李四,你是来提需求的吗?",
"role": "assistant"
}
]
}
},
"header": {
"code": 0,
"message": "Success",
"sid": "cht000bf8f0@dx18e4f6b6abab8f2550",
"status": 2
}
}
# 10 对话响应
# 10.1 接口描述
驱动角色回应玩家的发言。
# 10.2 接口地址
wss://ai-character.xfyun.cn/api/open/interactivews/{sid}?appId=xxx&timestamp=xxx&signature=xxxxxx
在请求URL上带上参数:appId, timestamp, signature 鉴权生成见上文接口鉴权,首次连接时,服务器会校验身份凭证及配额。
# 10.3 请求参数
POST,application/json
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
header.app_id | String | 应用ID | Y | |
header.agent_id | String | 人格ID | Y | |
header.uid | String | 玩家ID | Y | |
parameter.chat.chat_id | String | 当前会话Id(同一应用下不允许重复),和请求接口地址中的sid需一致 | Y | |
parameter.chat. pre_chat_id | String | 首次对话不填,后续会话必填。 | Y | |
payload.message. text | Array | 传玩家最新一轮发言即可 | Y |
示例:
{
"header": {
"app_id": "12345678",
"uid": "0f1c9c1ab6ce1fc7c2f1731394fdf33e",
"agent_id": "513fb8e354a546e75c0c7bda32a408fd"
},
"parameter": {
"chat": {
"chat_id": "test1234567",
"pre_chat_id": "test123456"
}
},
"payload": {
"message": {
"text": [
{
"role": "user",
"content": "咱们约个需求评审吧。"
}
]
}
}
}
# 10.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
header.code | int | 错误码,成功= 0 | Y | 0 |
header.status | int | 状态码,2表示会话完成 | Y | |
header.message | String | 结果描述 | Y | |
header.sid | String | 大模型会话session id | Y | |
payload.usage.agent_current_chars | int | 当前轮次角色输出的字数 | N | |
payload.usage.player_current_chars | int | 当前轮次玩家输入的字数 | N | |
payload.usage.total_current_tokens | int | 当前轮次消耗的总token数 | N | |
payload.usage.system_current_chars | int | 角色设定字数 | N | |
payload.choices.seq | int | 返回片段在回答全句中的次序 | Y | |
payload.choices.status | int | 状态码,2表示会话完成 | Y | |
payload.choices.text | Array | 大模型生成的对话内容 | Y |
示例:
{
"payload": {
"usage": {
"agent_current_chars": 46,
"player_current_chars": 5,
"total_current_tokens": 45,
"system_current_chars": 220
},
"choices": {
"seq": 6,
"status": 2,
"text": [
{
"content": "我现在手上有点活,约2点吧。",
"role": "assistant"
}
]
}
},
"header": {
"code": 0,
"message": "Success",
"sid": "cht000b1dfd@dx18e4f704ffd9a4b550",
"status": 2
}
}
# 11 全新对话
# 11.1 接口描述
删除角色记忆缓存中的对话历史。当玩家输入新一轮发言时,角色将不携带任何上文记忆进行响应。 若角色出现重复生成等异常,可调用本接口进行重置。
# 11.2 接口地址
https://ai-character.xfyun.cn/api/open/interactive/clear-cache
# 11.3 请求参数
POST,application/form-data
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
appId | String | 应用ID | Y | |
chatId | String | 当前会话ID | Y |
示例:
https://ai-character.xfyun.cn/api/open/interactive/clear-cache?appId=xxxx&chatId=xxxx
# 11.4 返回参数
字段名 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
code | int | 错误码,成功= 10000 | Y | 10000 |
success | Boolean | 是否成功 | Y | |
message | String | 结果描述 | Y |
示例:
{
"success": true,
"code": 10000,
"message": "操作成功!"
}
# 四、调用示例
部分接口demo如下,其他开发语言请参照 接口调用流程 进行开发,也欢迎热心的开发者到 讯飞开放平台社区 (opens new window) 分享你们的demo。
角色模拟demo java语言 (opens new window)
# 五、错误码
操作成功响应 10000
系统错误码列表
错误码 | 描述 | 处理方式 |
---|---|---|
10001 | 请求错误 | 请检查请求方法或参数 |
10004 | 数据库操作异常 | 请联系管理员 |
10005 | 服务间调用异常 | 请联系管理员 |
10007 | 请求参数类型不匹配 | 检查请求参数类型 |
10008 | 参数超出限制 | 检查参数字符数 |
鉴权错误码列表
错误码 | 描述 | 处理方式 |
---|---|---|
11001 | 鉴权参数不完整 | 检查鉴权是否正确 |
11002 | 无效的appKey | 检查appKey |
11003 | 无效的secret | 检查secret |
接口错误码列表
错误码 | 描述 | 处理方式 |
---|---|---|
20001 | 用户名或密码错误 | 检查入参 |
60001 | 未查询到人格! | 检查入参 |
60002 | 未查询到玩家! | 检查入参 |
60003 | 未查询到会话! | 检查入参 |
60004 | 该应用不存在,请确认AppID是否填写正确! | 检查入参 |
60005 | 该应用已存在(应用ID或应用名称重复)! | 检查入参 |
60006 | 该会话已经存在! | 检查入参 |
70001 | 授权失败 | 排查 |
70002 | 查询授权失败 | 排查 |
70003 | 并发路数不足,请检查路数余量! | 排查 |
70004 | 问答总字数不足,请检查字数余量! | 排查 |
90000 | 请求方式不支持! | 检查入参 |
90001 | 参数非法! | 检查入参 |
90002 | 参数缺失! | 检查入参 |
90003 | 参数重复! | 检查入参 |
90010 | 安全合规封禁! | 排查 |
90011 | 配额不足! | 排查 |
99998 | 请求超时! | 排查 |
99999 | 抱歉,系统繁忙,请稍后重试! | 请稍后重试 |