ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

AI陪伴机器人本地把整套系统跑起来-四个进程的启动顺序

AI陪伴机器人本地把整套系统跑起来-四个进程的启动顺序 09-本地把整套系统跑起来-四个进程的启动顺序系列AI 伙伴AI-Partner——具身智能陪伴机器人 · 数据接口部署与二次开发篇09/12一、全景图这套系统到底有几个零件很多新手把后端跑起来了就以为完事大吉结果发现对话没表情、提醒不播报一脸懵。先把账算清楚——AI 伙伴AI-Partner完整跑起来最多涉及四个进程进程技术栈默认端口必须MySQL 数据库MySQL 8.0127.0.0.1:3306必须后端服务云端 Agent 层Spring Boot 3.5.16 JDK178080必须视觉服务FastAPI YOLO11127.0.0.1:8000建议启动聊天功能不需要它MQTT Broker 端侧脚本EMQX/Mosquitto Python1883可选ai.partner.mqtt.enabled默认 false不开不影响主流程一个关键冷知识先给你打个底MQTT 是可插拔的。后端配置里ai.partner.mqtt.enabled默认是 false你不装 Broker、不接板子对话、记忆、提醒管理、情绪健康记录全都照常工作。所以第一步的学习曲线很平先跑通数据库 后端再逐个点亮可选模块。二、前置软件清单软件版本要求用途备注JDK17后端运行环境Spring Boot 3.x 最低要求就是 17Maven3.9后端构建或使用 IDE 内置 MavenMySQL8.0数据存储字符集务必 utf8mb4Python3.10视觉服务建议用 venv 隔离依赖MQTT BrokerEMQX 或 Mosquitto设备通信可选RK3566 开发板Debian 系统端侧硬件可选纯云体验不需要安装就一句话JDK/Maven/MySQL 配好环境变量Python 建议每个项目一个 venv别把依赖装成大杂烩。三、第一步建库导入 init.sqlMySQL 里执行项目文档原文CREATEDATABASEai_partnerDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;然后导入建表脚本mysql-uroot-pai_partnersql/init.sql两点说明utf8mb4 不是可选项。表情符号、生僻字都要 4 字节存储用 utf83 字节迟早炸出乱码。sql/init.sql是纯 DDL8 张表t_user / t_conversation / t_memory / t_reminder / t_emotion_record / t_health_record / t_device / t_alert没有种子数据导完是空库正常。开发期后端jpa.hibernate.ddl-autoupdate就算你不导 init.sql后端第一次启动也会自动建表——但建表脚本是文档的正典导它保持两边一致。四、第二步配置环境变量重点列全后端所有敏感和易变配置都走环境变量覆盖这是 README 的约定。列个全表环境变量必填默认值说明LLM_PROVIDER否deepseekdeepseek / qwen实际按 base-url 走 OpenAI 兼容协议LLM_BASE_URL否DeepSeek 官方地址通义填 DashScope 兼容模式地址LLM_API_KEY强烈建议空不配也能启动对话时返回 401 友好提示LLM_MODEL_NAME否deepseek-chat模型名MYSQL_HOST否127.0.0.1MYSQL_PORT否3306MYSQL_DATABASE否ai_partnerMYSQL_USERNAME否root建议专用账号MYSQL_PASSWORD必填默认 root/rootroot改掉弱口令MQTT_ENABLED否false开设备联动才设 trueMQTT_BROKER_URL否tcp://127.0.0.1:1883MQTT_USERNAME/MQTT_PASSWORD否空Broker 开了鉴权才需要VISION_BASE_URL否http://127.0.0.1:8000视觉服务地址VISION_FALL_THRESHOLD否0.6跌倒置信度阈值SPEECH_PROVIDER否mockmock / qwenDASHSCOPE_API_KEY用 qwen 时必填空语音服务密钥ASR_MODEL/TTS_MODEL/TTS_VOICE否paraformer-realtime-v2 / cosyvoice-v1 / longxiaochun最小可跑配置就三个变量MYSQL_PASSWORD、LLM_API_KEY加上如果你不想用默认 root 账号再补MYSQL_USERNAME。注意没配 LLM_API_KEY 服务照样能启动只是发起对话时会得到大模型 API Key 未配置的 401 提示——这是刻意设计的友好降级方便先调试非 AI 功能。五、第三步启动后端并验证cdbackend mvn spring-boot:run或者打包后运行生产姿势本地也可以这么玩mvn clean package-DskipTestsjava-jartarget/ai-partner-backend.jar看到 Spring 的 banner 和Started AiPartnerApplication后三个自检curlhttp://localhost:8080/api/ping# 期望{code:0,message:success,data:pong}curlhttp://localhost:8080/actuator/health# 期望{status:UP}actuator 只暴露 health 和 infocurl-XPOST http://localhost:8080/api/chat\-HContent-Type: application/json\-d{userId:1,message:你好呀}# 配好 LLM_API_KEY 的话这里能收到一段温暖的回复六、第四步启动视觉服务并自测cdvision python-mvenv venv venv 启用后pipinstall-rrequirements.txt uvicorn app:app--host0.0.0.0--port8000首次运行会自动下载两个 YOLO11 权重各约 5-6 MB等它下完。自测curlhttp://127.0.0.1:8000/health# 期望{status:ok,service:vision}curl-XPOST http://127.0.0.1:8000/detect-Ffiletest.jpg-Ftaskfall# 期望返回 detections 数组label 为 fall 或 standing再从后端侧走一遍完整链路POST /api/vision/detectmultipart 传图能拿到结构化结果说明 8080 → 8000 这条 HTTP 内部调用通了。七、第五步可选MQTT broker 与端侧想体验机器人开口说话和设备联动才需要这一步起 BrokerEMQX 用 docker 起管理台默认账号 admin/public设环境变量MQTT_ENABLEDtrueBroker 有账号就补MQTT_USERNAME/MQTT_PASSWORD重启后端后端自动订阅三个通配主题device//status、device//event、vision//alert有板子就拷端侧脚本、改 config.yaml 里的 broker 地址后运行没板子可以用任意 MQTT 客户端工具模拟设备发心跳、收指令。八、推荐启动顺序与原因① MySQL → ② 后端 → ③ 视觉服务 → ④ MQTT/端侧顺序为什么数据库最先后端启动即连库JPA 还要比对/更新表结构库不在后端直接起不来后端第二依赖数据库同时它要主动调用视觉服务是客户端角色视觉第三独立无状态晚起不影响后端存活后端调用失败会降级服务一起来链路自动恢复端侧最后设备上线即向 Broker 发心跳和状态Broker 和后端必须都就位否则心跳无人接收、状态无人落库一句话记忆先有地基库再有大脑后端再有眼睛视觉最后有手脚设备。停的时候倒序关。九、启动后自检清单检查项方法通过标准ping 接口curl http://localhost:8080/api/pingcode0datapongactuator healthcurl http://localhost:8080/actuator/healthstatusUP数据库连接后端启动日志无连接报错SHOW TABLES8 张表齐全视觉 /healthcurl http://127.0.0.1:8000/healthstatusok视觉推理/api/vision/detect传一张测试图返回 detections 数组MQTT 订阅后端日志出现订阅主题三个 topic 订阅成功开了 MQTT 才查假设备收指令模拟客户端订阅server/RK001/cmd后调/api/devices/control能收到{action,param,ts}十、常见启动失败排查表现象原因解决启动即挂报 MySQL 连接失败密码错 / 库没建 / 端口被占核对MYSQL_PASSWORD执行建库语句netstat查 3306日志提示 Public Key Retrieval 警告导致连不上MySQL 8 认证方式问题连接串已带allowPublicKeyRetrievaltrue确认环境变量没有把 url 改丢对话返回 401 或API Key 未配置LLM_API_KEY没配配上后重启语音检测/图像上传报视觉服务不可用视觉服务没起或 8000 被占先curl /health自测确认VISION_BASE_URL首次启动卡在下载权重网络原因手动把 .pt 文件放进 models 目录MQTT 无响应MQTT_ENABLED忘了设 true / broker 未启动 / 账号密码不匹配三项逐个核对RKNN 相关报错板端工具链版本不匹配rknn-toolkit2 需 x86 Python 3.8~3.10板端用 lite2 且版本严格对应十一、合规小提醒这套系统面向老人与儿童场景本地跑通之后你会接触到情绪、健康类敏感数据。调试期请用虚构用户和假数据别拿真实家庭成员的健康信息喂进去生产环境的数据最小化、授权告知、医疗免责AI 只做善意提醒不做诊断都是上线前必须补的课系列后文的部署篇会专门展开。到这里四个进程齐活一台会聊天、会看、会联动的陪伴机器人骨架就在你机器上立起来了。
返回列表