使用扣子 OpenAPI 或 SDK 和扣子智能体或应用对话时,扣子平台会将使用同一个访问密钥的对话看做同一个用户。如果业务侧不同的用户使用同一个扣子访问密钥鉴权,用户看到的对话记录中可能会夹杂其他用户的对话历史。
如需实现 Chat SDK 会话隔离,需要使用 OAuth JWT 鉴权方式,并在签署 JWT 时,在 payload 字段中添加 session_name 字段。session_name 中应指定用户在业务侧的 UID,String 类型。UID 由业务侧自行定义,扣子仅透传这个字段并用于签署 JWT、区分不同 session_name 的会话。详细说明可参考如何实现会话隔离。
不可以,web-view 方式无法加载第三方的域名。
建议在 Chat SDK config 属性中设置 isIframe = false,以非 iframe 的方式打开聊天框。通过该方式可以规避小程序中 webview 的域名限制。
扣子智能体发布到 Chat SDK 后,如果打开时会获取到别人的聊天记录,即使已设置 userInfo 参数也无效,这通常是由于未进行会话隔离所导致的。为避免不同账号的聊天记录互相可见,需要进行会话隔离。思路如下:
auth 的 token 参数设置为用户对应的 Token,确保每位用户在与智能体对话时,都使用各自的JWT Token。详细步骤可参考如何实现会话隔离。移动端支持 isNeedAudio 参数的语音输入功能,若设置后不生效,请检查集成环境是否已使用 HTTPS 协议。该功能需要在 HTTPS 环境下使用。
Chat SDK 悬浮球的位置默认在页面右下角,不支持移动,如果需要调整悬浮球的位置,你可以隐藏默认的悬浮球,自定义悬浮球的位置和样式。实现方法如下:
ui.asstBtn.isNeed=false,隐藏悬浮球。
// 在WebChatClient参数中,添加ui.asstBtn配置
const cozeWebSDK = new CozeWebSDK.WebChatClient({
config: {
botId: '740849137970326****',
isIframe: false,
},
auth: {
type: 'token',
token: 'pat_zxzSAzxawer234zASNElEGALlq7hcOqMcPFV3wEVDiqjrg****',
onRefreshToken: async () => 'pat_zxzSAzxawer2OqMcPFV3wEVDiqjrg****',
},
ui: {
// 悬浮球配置
asstBtn: {
isNeed: false // 隐藏悬浮球
}
}
});
<!-- 自定义悬浮球按钮 -->
<button
id="custom-asst-btn"
style="position: fixed; right: 50px; bottom: 50px; z-index: 9999;"
onclick="cozeWebSDK.showChatBot();"
>
</button>
<button onclick="cozeWebSDK.showChatBot();">显示聊天框</button>
<button onclick="cozeWebSDK.hideChatBot();">隐藏聊天框</button>
</body>
个人免费版账号使用 Chat SDK 的免费额度为 100 次对话/账号。即使你账号中还有剩余资源点,当累计对话次数超过该额度后,账号将无法继续使用扣子 Chat SDK。
若智能体中已设置开场白,且希望在 Chat SDK 中正常显示开场白,请确保将该智能体同时发布至 API 渠道和 Chat SDK 渠道。
若仅发布 Chat SDK 渠道而未发布 API 渠道,可能导致 Chat SDK 无法获取智能体的开场白配置。