内置功能总览

chatkit 的内置功能遵循一条规则:条件满足就显示,不满足就不显示。本页列出每个功能的显示条件。按需引入的功能不在默认入口里,要从单独的入口引入后才会进包。

没给重新生成的能力函数,就没有重新生成按钮。提供能力函数只表示存在调用入口,不保证请求一定成功;消息是否具有运行记录、当前是否正在生成或加载历史,也会影响按钮是否显示或可用。

显示条件

类别功能显示条件
默认启用消息与 Markdown、复制、思考与工具调用、运行状态、失败与停止、发送排队、划词追问、对话轮次导航按内容和交互状态显示;导航满三轮才显示
需要业务方提供配置附件(upload)、赞踩(onRate)、@ 与 /(候选项配置 mention / slash)、语音输入(recognize)提供对应函数或候选项配置
显式开启输入建议(items)提供非空候选;默认关闭
需要后端支持回答操作(重新生成、编辑后重发)给了适配器对应的能力函数
由应用渲染会话列表(SessionList 组件)应用传入自己的会话数组与当前会话 ID
按需引入OpenUI 渲染(@volcengine/chatkit/openui)、产物预览(@volcengine/chatkit/artifacts)引入对应入口与样式,登记到 renderers

需要后端支持的功能

功能要给的能力函数详见
重新生成regenerate回答操作
编辑后重发edit回答操作

关掉一个功能

features 中的每一项都可以用 false 关掉:

<Chatkit
  sessions={sessions}
  features={{
    edit: false, // 给了编辑后重发的能力函数,但产品不需要
    selectionAsk: false, // 不要划词追问
  }}
/>

features 的开关不能绕过功能所需的回调或后端能力。事件通过 onEvent 接收,不是界面控件,也不在 features 中配置。

会话列表不在 features 里:它是单独的组件 SessionList,不需要时不放它就行,见会话列表。

features 一览

配置项写法默认
attachmentsfalse 或 { upload, maxTotalSize?, accept?, onPreview?, slot? }给了 upload 才显示
promptCompletionfalse 或 { items, rotateIntervalMs?, renderChip?, chipLayout?, onAccept? }提供非空候选才显示;默认关闭
feedbackfalse 或 { onRate, ratings? }给了 onRate 才显示
mentionsfalse 或 { mention?, slash? }给了哪个开哪个
voicefalse 或 { recognize, slot? }给了 recognize 才显示
copyboolean显示
regenerateboolean给了对应的能力函数时显示
editboolean给了对应的能力函数时显示
selectionAskboolean显示

用设置关掉的功能

对话轮次导航用 settings.conversationNavigation: false 关闭;思考用 settings.reasoning.visible: false 隐藏;工具用 settings.toolFlow: 'none' 隐藏;状态行用 settings.runStatus.visible: false 隐藏。这些设置只调整显示,不阻止后端执行。

换位置

带控件的功能(附件按钮、语音按钮)可以用 slot 换位置,或者写 slot: false 后自己摆放。见调整内置功能。

不在内置范围里的功能

技能选择、连接器、知识库、收藏与分享、定时任务这类功能需要业务方和自己的后端约定数据与接口,chatkit 不内置。 它们用插槽、onSend 和公开 hooks 实现,见业务做法。