智能体状态

通过阅读本文,您可以了解如何通过AICallKit SDK获取智能体的当前状态。

使用说明

  • 本示例主要旨在帮助您在不含UI集成的情况下,如何利用API实现该功能。

  • 您需要提前集成AICallkit SDK。如何集成,请参见Android集成SDKiOS集成SDKWeb集成SDK

智能体状态预览

聆听中

智能体正在聆听中,等待当前用户输入。

lQDPJwkbyth3cRHNCMDNBDiwP2pfm310vAsHVyIW5ozbAA_1080_2240

思考中

智能体正在思考中,大模型(LLM)正在生成输出结果。

60a2105a465246cb559d6c07b203365a

讲话中

智能体正在讲话中,该讲话过程可以被打断。

0787e08947b056173106fe33102f7984

说明

该功能以及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);
});