通过阅读本文,您可以了解如何通过AICallKit SDK获取智能体的当前状态。
使用说明
本示例主要旨在帮助您在不含UI集成的情况下,如何利用API实现该功能。
您需要提前集成AICallkit SDK。如何集成,请参见Android集成SDK、iOS集成SDK、Web集成SDK。
智能体状态预览
聆听中 智能体正在聆听中,等待当前用户输入。 | 思考中 智能体正在思考中,大模型(LLM)正在生成输出结果。 | 讲话中 智能体正在讲话中,该讲话过程可以被打断。 |
说明
该功能以及UI界面均在含UI集成方案中内置。含UI集成方案详情,请参见含UI集成方案。
获取智能体状态
智能体状态说明
状态值 | 说明 |
Listening | 表示智能体正在聆听中,等待当前用户输入。如果用户有讲话,可以在这个状态下显示用户的音量条。 |
Thinking | 表示智能体正在思考中,当前大模型(LLM)正在生成输出结果。该过程可以被中断,并在中断时返回聆听状态。 |
Speaking | 表示智能体正在讲话中,播报大模型(LLM)输出的结果。该过程可以被中断,并在中断时返回聆听状态。 |
示例代码
Android
// 给引擎添加设置回调
mARTCAICallEngine.setEngineCallback(mCallEngineCallbackWrapper);
// 回调处理(仅示例相关的回调操作)
ARTCAICallEngine.IARTCAICallEngineCallback mCallEngineCallbackWrapper = new ARTCAICallEngine.IARTCAICallEngineCallback() {
@Override
public void onAICallEngineRobotStateChanged(ARTCAICallEngine.ARTCAICallRobotState oldRobotState, ARTCAICallEngine.ARTCAICallRobotState newRobotState) {
// 通过newRobotState更新当前UI状态
}
@Override
public void onVoiceVolumeChanged(String uid, int volume) {
// 如果当前智能体是聆听状态时,显示用户的音量条
}
}
iOS
// 给引擎添加设置回调
self.engine.delegate = self
func onAgentStateChanged(state: ARTCAICallAgentState) {
// 智能体状态改变,通过state更新当前UI状态
}
func onVoiceVolumeChanged(uid: String, volume: Int32) {
// 如果当前智能体是聆听状态时,显示用户的音量条
}
Web
engine.on('agentStateChange', (state) => {
// 智能体状态变化,通过state更新当前UI状态
console.log('AICallAgentStateChange to:', state);
});
engine.on('speakingVolumeChanged', (userId, volume) => {
// 智能体当前说话音量
// userId 为空字符串代表当前本地用户音量
console.log('AICallSpeakingVolumeChanged', volume);
});
文档内容是否对您有帮助?