5.4.2 LLM 模型聊天
功能简介
本模块基于本地部署的大语言模型(LLM, Large Language Model),实现自然语言处理对话能力,支持非流式服务与流式 Action 两种交互模式。
本模块可广泛应用于以下场景:
- 人机自然语言交互
- 智能问答与知识查询
- 多轮对话状态管理
- 指令意图理解与生成
环境准备
安装系统依赖
sudo apt update
sudo apt install -y libopenblas-dev \
portaudio19-dev \
python3-dev \
ffmpeg \
python3-spacemit-ort \
libcjson-dev \
libasound2-dev \
python3-pip \
python3-venv
运行环境配置与依赖安装
# 安装 LLM 模型运行环境(含模型下载与配置)
bash /opt/bros/humble/share/br_chat/llm_setup.sh
# 创建并激活 Python 虚拟环境
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.extra-index-url https://git.spacemit.com/api/v4/projects/33/packages/pypi/simple
python3 -m venv ~/ai_env
source ~/ai_env/bin/activate
# 安装 Python 依赖
pip install -r /opt/bros/humble/share/br_chat/requirements.txt
非流式聊天服务接口
导入环境
source /opt/bros/humble/setup.bash
source ~/ai_env/bin/activate
export PYTHONPATH=~/ai_env/lib/python3.12/site-packages/:$PYTHONPATH
启动服务端
ros2 launch br_chat chat_service.launch.py
默认服务名为:chat_service,服务类型为 jobot_ai_msgs/srv/LLMChat
客户端调用示例
新建 llm_client.py 文件:
import rclpy
from rclpy.node import Node
from jobot_ai_msgs.srv import LLMChat
class LLMClientNode(Node):
def __init__(self):
super().__init__('llm_client')
self.cli = self.create_client(LLMChat, 'chat_service')
while not self.cli.wait_for_service(timeout_sec=1.0):
self.get_logger().info('
