HarmonyOS NEXT SDK
更新时间:2025-07-01
初始化接口
SDK初始化
Plain Text
1let aiAgent = new AIAgentEngine(AIAgentEngineOption)
Plain Text
1interface AIAgentEngineOption {
2/** appid */
3appId: string;
4/** 实例id 服务器端下发,当前调试默认即可 */
5aiAgentInstanceId: number;
6}
SDK初始化
参数
参数 | 类型 | 描述 |
---|---|---|
config | AIAgentEngineOption | 初始化参数 |
返回
AIAgentEngine 实例对象:成功; null:失败;
AIAgent相关接口
开启通话
Plain Text
1call(): void;
开启通话,开始音频采集和音频播放;
参数
无
返回
结束通话
Plain Text
1hangup(): void;
结束通话,停止音频采集和音频播放;
参数
无
返回
无
发送文本
Plain Text
1sendTextToAIAgent(text: string): void;
发送文本消息给智能体,作为query向大模型进行提问;
参数
参数 | 类型 | 描述 |
---|---|---|
text | string | 文本query |
返回
无
发送文本并且打断
Plain Text
1sendTextToAIAgentAndInterrupt(text: string): void;
发送文本消息给智能体,作为query向大模型进行提问,并且立即打断当前播报
参数
参数 | 类型 | 描述 |
---|---|---|
text | string | 文本query |
返回
无
发送文本直接播报
Plain Text
1sendTextToTTS(text: string): void;
发送文本消息给TTS模块直接进行播报
参数
参数 | 类型 | 描述 |
---|---|---|
text | string | TTS播报文本 |
返回
无
主动打断
Plain Text
1interrupt(): void;
打断当前播报内容,停止播放;
参数
无
返回
无
上传文件
Plain Text
1uploadFile(path: string, expire: number): void;
参数
参数 | 类型 | 描述 |
---|---|---|
path | string | 文件路径,必须具有可读权限 |
expire | number | 过期时间 |
返回
无
注意: 暂时仅仅支持 JPEG/PNG/JPG 三种数据格式,并且大小不超过7MB; *当发送视频流数据时,要在之前设置相机打开指令
相机开关指令
Plain Text
1//如果上传视频流数据时,需要将相机指令打开
2handleCamera(status: boolean): void;
参数
参数 | 类型 | 描述 |
---|---|---|
status | boolean | true 开, false 关 |
返回
无
音频相关接口
静音播放
Plain Text
1mutePlayback(isMute: boolean): void;
音频播放声音控制;
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | boolean | 是否静音 |
返回
无
静音麦克风
Plain Text
1muteMic(isMute: boolean): void;
音频采集声音控制;
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | boolean | 是否静音 |
返回
无
事件回调
用户端监听事件
Plain Text
1on(event: string, callback: (info: AIAgentResponse) => void): void;
用户端监听事件, 包含用户端ASR结果回调, AI智能体结果回调,functionCall回调
参数
参数 | 类型 | 描述 |
---|---|---|
event | string | AIAgentEvent.UserAsrSubtitle 返回用户端ASR结果; AIAgentEvent.AIAgentSubtitle 返回AI智能体结果; AIAgentEvent.FunctionCall functionCall回调; AIAgentEvent.DataChannelMessage 服务端响应 |
返回
AIAgentResponse(用户端ASR结果 | AI智能体结果); ESObject(FunctionCall 结果 | AIAgentEvent.DataChannelMessage 服务端响应)
Plain Text
1interface AIAgentResponse {
2 text: string;
3 isFinal: boolean;
4 type: AIAgentType;
5 mediaType?: AIAgentMediaTypeStatus;
6 time?: string;
7 id: string;
8}
用户端ASR结果回调事例:
Plain Text
1 this.aiAgent.on(AIAgentEvent.UserAsrSubtitle, (res: AIAgentResponse) => {
2 console.log(`AIAgentResponse UserAsrSubtitle is ${JSON.stringify(res)}`)
3 })
AI智能体结果回调事例:
Plain Text
1 this.aiAgent.on(AIAgentEvent.AIAgentSubtitle, (res: AIAgentResponse) => {
2 console.log(`AIAgentResponse instantId: ${this.instanceId} AIAgentSubtitle is ${JSON.stringify(res)}`)
3 })
FunctionCall回调事例:
Plain Text
1 this.aiAgent.on(AIAgentEvent.FunctionCall,(info:ESObject)=>{
2 console.log(`FunctionCall is ${info}`)
3 })
服务端响应事例
Plain Text
1 this.aiAgent.on(AIAgentEvent.DataChannelMessage,(info:ESObject)=>{
2 console.log(`DataChannelMessage is ${JSON.stringify(info)}`)
3 })