通过阅读本文,您可以了解如何通过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);
});该文章对您有帮助吗?


