大模型功能


目 录

  1. 大模型链路示意图
  2. 结果解析说明
    payload.cbm_tidy
    payload.cbm_semantic
    payload.nlp
    payload.tts
  3. 自定义参数
  4. 个性化参数
  5. 落域判断
  6. 风格化回复
  7. 分段合成
  8. 自定义设备人设
  9. 文档问答指定标签
  10. 常见问题解答

1. 大模型链路示意图

1705457441654

2. 主要结果解析说明

注意:
text字段需要base64解码,示例是解码后的结果

payload.cbm_tidy

说明:V2.1协议开始提供,取代cbm_intent_split 结果。

语义规整结果:请求包含多个问题时,大模型会拆分,示例:

{
    "payload": {
        "cbm_tidy": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "{\"query\":\"合肥今天的天气?明天呢\",\"intent\":[{\"index\":0,\"value\":\"合肥今天的天气\"},{\"index\":1,\"value\":\"合肥明天的天气\"}]}",
            "seq": 0,
            "status": 2
        }
    },
    "header": {}
}

text:base64解码后的内容
status: 结果状态 0-开始、 1-中间、2-长句结束,3-短句结束
seq:结果序号,0、1、2……

payload.cbm_semantic

通用语义结果:多个结果时 payload.cbm_meta.text 中intent指定了具体意图。另外判断该结果是否正确理解,除解析rc=0外,还需要解析大模型落域判断,详见下方说明。
注意:
文档问答是大模型能力,非通用语义。具体见下方文档问答使用

{
    "payload": {
        "cbm_meta": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "{\"cbm_semantic\":{\"intent\":0}}",
            "seq": 0,
            "status": 3
        },
        "cbm_semantic": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "{\"answer\":{\"text\":\"合肥全天晴......"}",
            "seq": 0,
            "status": 3
        }
    },
    "header": {}
}

payload.nlp

语义理解的结果,流式下发:

{
    "payload": {
        "cbm_meta": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "{\"nlp\":{\"intent\":0,\"nlp_origin\":\"cbm_knowledge\"}}",
            "seq": 0,
            "status": 0
        },
        "nlp": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "吾之所知",
            "seq": 0,
            "status": 0
        }
    },
    "header": {}
}

payload.tts

合成结果:大模型结果建议分段合成,减少等待耗时。

特别说明:
AIUI平台的语义后合成,仅支持音频流下发,不支持url;下发url需主动请求合成。

{
    "payload": {
        "tts": {
            "sample_rate": 16000,
            "channels": 1,
            "audio": "aHR0cHM6Ly9haXVpL...",
            "encoding": "lame",
            "bit_depth": 16,
            "frame_size": 0,
            "seq": 1,
            "status": 2
        }
    },
   "header": {}
}

3. 上传自定义参数

1、构建自定义参数json字符串示例为 {"key":"value"} ,base64编码后为 eyJrZXkiOiJ2YWx1ZSJ9
2、构建新json字符串 :{"userparams":"eyJrZXkiOiJ2YWx1ZSJ9"},base64编码后为 eyJ1c2VycGFyYW1zIjoiZXlKclpYa2lPaUoyWVd4MVpTSjkifQ== ,赋值给 payload.cbm_semantic.text 取值,请求示例:

{
    "payload": {
        "cbm_semantic": {
            "compress": "raw","format": "json","encoding": "utf8",
            "text": "eyJ1c2VycGFyYW1zIjoiZXlKclpYa2lPaUoyWVd4MVpTSjkifQ==",
            "status": 3
        },
        "text": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "5aSp56m65Li65LuA5LmI5piv6JOd6Imy55qE",
            "status": 3
        }
    },
    "parameter": {
        "nlp": {
            "nlp": {
                "compress": "raw","format": "json","encoding": "utf8"
            },
            "sub_scene": "cbm_v45",
            "richness": "concise",
            "new_session": false
        }
    },
    "header": {
        "uid": "1234567890",
        "appid": "a44e0f36",
        "stmid": "text-1",
        "status": 3,
        "scene": "main_box"
    }
}

4. 个性化参数

1、构建个性化生效参数json字符串示例为 {"uid":"1234567890"}
2、构建新json字符串 :{"pers_param":"{\"uid\":\"1234567890\"}"},再经过base64编码后为 eyJwZXJzX3BhcmFtIjoie1widWlkXCI6XCIxMjM0NTY3ODkwXCJ9In0=,赋值给 payload.cbm_semantic.text ,示例如下:

注意:
1、当同时需要透传个性化参数和自定义参数时,两者在同一个json中使用,示例:{"userparams":"eyJrZXkiOiJ2YWxZSJ9","pers_param":"{\"uid\":\"1234567890\"}"}
2、用户级uid取值保持和请求参数中header.sn 一致即可

{
    "payload": {
        "cbm_semantic": {
            "compress": "raw","format": "json","encoding": "utf8",
            "text": "eyJwZXJzX3BhcmFtIjoie1widWlkXCI6XCIxMjM0NTY3ODkwXCJ9In0=",
            "status": 3
        },
        "text": {...}//同第3节,上传自定义参数
    },
    "parameter": {...},//同第3节
    "header": {...}//同第3节
}

5. 落域判断

大模型存在 cbm_semantic 通用结果被官方技能误吸收。此时通过落域判断来决定该通用语义是否使用:
解析 payload.cbm_meta.text,若包含 untrusted 字段(详见下方示例),则此次通用语义结果不可信,直接丢弃结果。
注意:
当落域判断失败时,结果包含untrusted:true;当落域正确时,不下发该字段。

{
    "payload": {
        "cbm_meta": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "{\"cbm_semantic\":{\"intent\":0,\"untrusted\":true}}",
            "seq": 0,
            "status": 3
        },
        "cbm_semantic": {...}
    },
    "header": {...}
}

6. 风格化回复

大模型可以自定义风格来控制内容生成,示例:
1、构建json数组: [{“type”:”宠溺男友”,”value”:”温柔体贴:无微不至地照顾人”}],然后进行base64编码
2、将编码后的字符串赋值给 payload.cbm_reply.text 取值,示例如下:
更多需求请联系aiui_support@iflytek.com

字段 含义 取值
type 类型标签,开发者自定义 人物名称,例:宠溺男友
value 风格描述,开发者自定义 基于人物性格给予详细描述
{
    "payload": {
        "cbm_reply": {
            "compress": "raw","format": "json","encoding": "utf8",
            "text": "W3sidHlwZSI6IuWuoOa6uueUt+WPiyIsInZhbHVlIjoi5rip5p+U5L2T6LS077ya5peg5b6u5LiN6Iez5Zyw54Wn6aG+5Lq6In1d",
            "status": 3
        },
        "text": {...}  //与第3节,上传自定义参数一样
    },
    "parameter": {...}, //同第3节
    "header": {...}  //同第3节
}

7. 分段合成

aiui平台打开合成,云端会基于nlp结果自动合成下发音频流。注意:不支持下发url。

分段合成是一种主动合成策略:
1、nlp结果字句切分:先拼接合成文本,在根据标点符号“,。;!?:”进行切分,获取子句。
2、最小合成长度判断:子句长度>n(开发者自定义最小长度n) 就合成;否则拼接下一条子句再次判断。如果已经是最后一条子句,那就直接合成。

8. 自定义设备人设

可配置设备人设信息来指定相关人设问题回答:
1、构建json内容,指定人人设问题和内容进行详细编辑,示例:
{"human":{"expand_persona":true,"persona":"{\"父亲|爸爸\":\"科大讯飞\",\"姓名|名字|称呼\":\"小飞\"}"}}
2、将json转字符串赋值给 parameter.nlp.env 取值。字段说明:

参数 类型 说明 示例
human.expand_persona boolean 扩展人设开关,取值 true、false true
human.persona string 自定义人设问题和答案,以键值对形式添加。 {"父亲|爸爸":"科大讯飞","姓名|名字|称呼":"小飞"}

请求示例:文本语义请求

{
    "header": {...}, //与第3节,上传自定义参数一样
    "parameter": {
        "nlp": {
            "nlp": {
                "compress": "raw","format": "json","encoding": "utf8"
            },
            "sub_scene": "cbm_v45",
            "new_session": false,
            "richness": "concise",
            "env": "{\"human\":{\"expand_persona\":true,\"persona\":\"{\\\"父亲|爸爸\\\":\\\"科大讯飞\\\",\\\"姓名|名字|称呼\\\":\\\"小飞\\\"}\"}}"
        }
    },
    "payload": {
        "text": {
            "compress": "raw","format": "plain","encoding": "utf8",
            "text": "5omT55S16K+d57uZ5byg5LiJ",
            "status": 3
        }
    }
}

9. 文档问答指定标签

大模型加载文档问答时,如需对引用的文档进行区分使用,可以通过下面的标签参数进行配置使用,方式为:
1、构建json: {“tags”:{“must”:[“aaa”,”bbb”,”ccc”]}},然后进行base64编码
2、将编码后的字符串赋值给 payload.cbm_knowledge.text 取值,示例如下:
更多需求请联系aiui_support@iflytek.com

字段 含义 取值
tags 检索知识的标签 可以设置三种标签类型(可以同时设置),具体见下面参数说明
tags.must 检索结果必须包含这些标签 string[] 格式,如 [“a”,”b”]
tags.should 检索结果至少包含这些标签中的一个 string[] 格式,如 [“a”,”b”]
tags.mustNot 检索结果必须不包含这些标签 string[] 格式,如 [“a”,”b”]
{
    "payload": {
        "cbm_knowledge": {
            "compress": "raw","format": "json","encoding": "utf8",
            "text": "eyJ0YWdzIjp7Im11c3QiOlsi56eR5oqA5oql56ysMeeJiCIsIuenkeaKgOaKpeesrDLniYgiXX19",
            "status": 3
        },
        "text": {...}
    },
    "parameter": {...},
    "header": {...}
}

说明:创建的文档问答标签,可以自定义设置,具体位置见下图

10. 常见问题解答

  • AIUI平台的交互认知大模型和讯飞开放平台的大模型区别

    AIUI平台的大模型以星火通用大模型为底座,在人机交互场景下对知识问答、闲聊类做定向训练,提升交互场景效果。

  • 为什么老应用无法切换到星火交互认知大模型?

AIUI应用(2022-06 月份以后创建的应用)新增 APISECRET 字段。无法切换的原因有:
1、AIUI应用属于老应用,应用没有 APISECRET 信息,无法切换。 — 建议新建应用接入。
2、支持切换的应用由于有过通用链路的服务授权,无法切换。 — 建议新建应用接入或联系商务沟通。

  • AIUI星火交互认知大模型如何收费?

    测试授权每天提供500次交互次数、20万大模型token;正式授权可以邮件aiui_support@iflytek.com申请或联系讯飞商务。

  • 大模型接入方式有哪些?

    SDK版本需要为 6.6.xxx 以上版本;
    API对接的websocket协议也是新接口,不能与原来的通用语义链路websocket协议混用。
    另外需要注意:大模型websocket是长链接,即在一次链接中可以持续不断的进行不同交互。端侧需要控制每次请求的stmid参数取值更改。超过一分钟无交互,云端自动断开。

  • AIUI星火交互认知大模型链路和通用语义链路可以来回更改吗?

在测试阶段(没有正式授权添加服务次数)支持任意切换,不过需要注意:端侧集成需要相应做对接方式切换。

  • 不同情景模式可以配置不同的交互链路吗?

支持,例如A情景用通用语义模型,B情景选择大模型。不过AIUI平台建议在正式商用应用上,单个应用做单一能力配置选择,减少授权问题排查难度。

  • 通过SDK接入端侧可以做动态交互链路接入切换吗?

不支持。SDK初始化后交互链路就已经固定了,做交互链路切换需要销毁对象重新加载新的配置文件初始化。

  • 大模型是否还支持原来的技能配置?

支持。后期规划下线部分通用知识工具类技能,如计算、时间等,由大模型进行内容生成回复。

  • 新增的文档问答怎么使用或本地的知识文档如何对接大模型?

在技能工作室 –> 我的问答库 下创建文档问答,按照格式要求上传文档,平台服务会进行知识点拆分解析,等解析完成后点击构建发布。这样一个问答库就构建好了,页面右侧栏也提供体验对话入口,可以结合展示的知识点拆分做修改,如给相关内容加上问题描述。最后配置到AIUI应用下语义理解中进行配置。

  • 文档库中上传的内容包含图片,怎么在交互中获取?

此模块(cbm_knowledge)默认未开放,如需要请联系aiui_support@iflytek.com 或商务申请。

  • AIUI星火交互认知大模型链路有并发限制吗?

默认 3 qps,正式合作联系商务增加qps。

  • 大模型链路中用户个性化数据如何上传?

开发中,完成后会更新开发文档。


admin 2025年3月7日 18:27 收藏文档