本项目实现了基于大语言模型(LLM)的机器狗以及机器人交互系统,支持语音对话、动作控制等功能。
- 小狗dog支持串口通信,动作输出;
- 机器人robot支持记忆功能,在console里文字交互;
- 如想单独测试记忆功能模块,可在此链接里测试:https://github.com/lng205/agent
- 集成大语言模型,实现自然语言理解与生成
- 支持多轮对话记忆
- 动作指令解析与执行
相关文件:
project/llm_interaction/interact_with_llm.py
- LLM接口实现project/llm_interaction/interact_with_memory.py
- LLM记忆功能实现project/llm_interaction/memory_robot.py
- 记忆字段存储project/llm_interaction/prompt_design_dog.py
- 小狗提示词设计project/llm_interaction/prompt_design_robot.py
- 机器人提示词设计project/llm_interaction/prompt_action_list.py
- 动作指令列表
- 语音识别(Speech-to-Text)
- 服务器端语音处理
相关文件:
project/utils/speech_processing/speech_to_text.py
- 语音转文本实现
- 动作控制接口
- 硬件通信
- 状态管理
相关文件:
project/dog_class.py
- 机器狗类实现project/utils/send_command.py
- 硬件通信接口
project/
├── api_info.py # API密钥配置文件
├── requirements.txt # 项目依赖
├── README.md # 项目说明文档
├── dog_class.py # 机器狗核心类
├── main_dog.py # 机器狗主程序入口
├── main_robot.py # 机器人主程序入口
│
├── llm_interaction/ # LLM交互模块
│ ├── interact_with_llm.py # LLM接口
│ ├── interact_with_memory.py # LLM记忆功能
│ ├── memory_robot.py # 记忆字段存储
│ ├── prompt_design_dog.py # dog提示词设计
│ ├── prompt_design_robot.py # robot提示词设计
│ ├── prompt_action_list.py # 动作指令列表
│ └── unused/ # 未使用的历史文件
│ ├── old_prompt_action_list.py
│ └── dog_tools_json.py
│
├── utils/ # 工具模块
│ ├── speech_processing/ # 语音处理
│ │ ├── __init__.py
│ │ ├── speech_to_text.py # 语音转文本
│ │ └── audio_config.py # 音频配置
│ │
│ ├── ParseTools.py # 解析工具
│ ├── json_operation.py # JSON操作
│ ├── print_format.py # 输出格式化
│ └── send_command.py # 硬件通信
│
├── memory/ # 记忆数据存储
│ └── chroma/ # 向量数据库存储
│
└── tests/ # 测试目录
├── __init__.py
├── test_dog_class.py # 机器狗类测试
├── test_llm.py # LLM功能测试
└── test_memory.py # 记忆功能测试
- Linux环境下可能需要安装额外的依赖库,已知的额外依赖包括:
- 用于音频处理的pyaudio需要依赖
portaudio
库:sudo apt install portaudio19-dev python3-dev
。 - 用于给机器狗发送命令的脚本使用了
tkinter
库生成GUI界面,可能需要安装tkinter
库:sudo apt install python3-tk
。
- 用于音频处理的pyaudio需要依赖
pip install -r requirements.txt
python -m project.main_dog
-
语音交互:
- 启动后系统自动开启语音识别
- 说出指令即可与机器狗对话
-
文本交互:
- 直接在控制台输入文本指令
- 系统将解析并执行相应动作
interact_with_llm.py
: 实现与大语言模型的通信interact_with_memory.py
: 实现LLM记忆功能memory_robot.py
: 记忆字段存储prompt_design_dog.py
: 定义小狗的对话模板和提示词prompt_design_robot.py
: 定义机器人的对话模板和提示词prompt_action_list.py
: 管理可执行动作列表
dog_class.py
:Bittle类
: 机器狗核心控制类action()
: 执行具体动作random_action()
: 随机动作生成create_dialog()
: 对话管理
speech_to_text.py
: 实现语音识别功能- 支持实时语音输入转换
json_operation.py
: JSON数据处理print_format.py
: 输出格式化send_command.py
: 硬件通信接口
-
首次使用需配置API密钥:
- 在
api_info.py
中配置LLM API密钥 - 配置语音识别服务密钥
- 在
-
硬件连接:
- 确保机器狗已正确连接
- 检查串口通信状态
-
内存管理:
- 系统会自动管理对话历史
- 可在配置中调整记忆容量
在prompt_action_list.py
中添加新的动作指令:
random_actions = {
"sit": "坐下",
"stand": "站立",
//添加新动作...
}
在prompt_design_dog.py
中修改对话模板:
DOG_PROMPT = """
你是一只可爱的机器狗...
"""
- OPENAI KEY:https://openai.com/api/
- GROQ KEY(回复快速):https://groq.com/
- ZHIPU KEY(国内大模型,无需翻墙):https://www.zhipuai.cn/
- 讯飞语音转写:https://www.iflyrec.com/