集成RTOS SDK
更新时间:2025-05-07
准备环境
本节将介绍如何创建项目,将BRTC RTOS SDK集成进你们的项目中。
针对不同的芯片平台集成RTOS SDK需要注意芯片类型和芯片的基线版本的差异。
*注:下面是经过验证的开发环境如下:
芯片平台 | 依赖的软件版本 | 描述 |
---|---|---|
乐鑫ESP32S3 | esp-adf版本:v2.7-59-g8301b97d esp-idf版本:v5.3.1 |
集成时建议基线版本不要低于该版本 |
杰里AC79 | AC79NN_SDK_V1.2.0 | 集成时建议基线版本不要低于该版本 |
SDK调用流程图
下面是大模型实时互动RTOS SDK的调用流程图。
实例代码
- 创建大模型实时互动Engine
Plain Text
1 BaiduChatAgentEvent events = {
2 .onError = onErrorCallback,
3 .onCallStateChange = onCallStateChangeCallback,
4 .onConnectionStateChange = onConnectionStateChangeCallback,
5 .onUserAsrSubtitle = onUserAsrSubtitleCallback,
6 .onAIAgentSubtitle = onAIAgentSubtitleCallback,
7 .onAIAgentSpeaking = onAIAgentSpeaking,
8 .onFunctionCall = onFunctionCall,
9 .onAudioPlayerOp = onAudioPlayerOp,
10 .onMediaSetup = onMediaSetup,
11 .onAudioData = onAudioData,
12 .onVideoData = onVideoData,
13 .onLicenseResult = onLicenseResult,
14 };
15 BaiduChatAgentEngine* engine = baidu_create_chat_agent_engine(&events);
- 创建智能体和初始化SDK的参数 2.1 服务端通过http创建智能体,客户端获取服务端返回的参数
Plain Text
1#define JSON_CONFIG_TEMPLATE "{\"app_id\": \"%s\", \"config\" : \"{\\\"llm\\\" : \\\"%s\\\", \\\"llm_token\\\" : \\\"no\\\", \\\"rtc_ac\\\": \\\"g722\\\", \\\"lang\\\" : \\\"%s\\\"}\", \"quick_start\": true}"
2//客户自己的服务端通过https按照上面格式发送请求创建智能体
2.2 客户端初始化SDK参数
Plain Text
1const char* json_str =
2"{"
3 "\"ai_agent_instance_id\": 2230595646193664,"
4 "\"context\": {"
5 "\"cid\": 1,"
6 "\"token\": \"00415f2bd1c3fe5dbc02cc49af726b18d6c6bfc56dc174238426178be806a1742470661\""
7 "}"
8"}"; //这是服务端返回的参数,需要将参数给客户端
9
10void setUserParameters(AgentEngineParams *params) {
11 snprintf(params->agent_platform_url, sizeof(params->agent_platform_url), "%s", SERVER_HOST_ONLINE);
12 snprintf(params->appid, sizeof(params->appid), "%s", BDCloudDefaultRTCAppID);
13 snprintf(params->userId, sizeof(params->userId), "%s", "12345678");//用户ID,可以设置指定人设
14 snprintf(params->cer, sizeof(params->cer), "%s", "./a.cer");
15 snprintf(params->workflow, sizeof(params->workflow), "%s", "VoiceChat");
16 snprintf(params->license_key, sizeof(params->license_key), "%s", "abcdxxx");//向百度购买设备license可以获取到key
17
18 params->instance_id = 10373;
19 params->verbose = false;
20 params->enable_internal_device =false;
21 params->enable_local_agent =false;
22 params->enable_voice_interrupt = true;
23 params->level_voice_interrupt = 80;
24 strncpy(params->llm, "LLMRacing", sizeof(params->llm) - 1);
25 strncpy(params->lang, "zh", sizeof(params->lang) - 1);
26 params->AudioInChannel = 1;
27 params->AudioInFrequency = 16000;
28}
29
30 AgentEngineParams agentParams;
31 memset(&agentParams, 0, sizeof(agentParams));
32 setUserParameters(&agentParams);
33 int result = baidu_chat_agent_engine_init(engine, &agentParams);
- 开始通话
Plain Text
1baidu_chat_agent_engine_call(engine);
- 结束通话
Plain Text
1baidu_chat_agent_engine_destroy(engine);