当前位置: 首页 > news >正文

Rasa总体目录架构介绍

详细讲解一下每个主要文件/目录的作用,以及之后如何一步步使用它们来训练和运行你的聊天机器人。


📁 Rasa 项目结构说明(初始化后生成的主要文件)

.
├── actions/
│   └── actions.py         # 自定义 action 的地方(Python 脚本,和数据库/接口交互等)
├── data/
│   ├── nlu.yml            # 训练 Rasa NLU 的数据(意图识别 + 实体抽取)
│   ├── rules.yml          # 规则驱动对话的定义
│   ├── stories.yml        # 示例对话路径(训练对话管理策略)
├── models/
│   └── *.tar.gz           # Rasa 训练后的模型文件(train 后生成)
├── tests/
│   └── test_stories.yml   # 对话测试用例(可选)
├── config.yml             # Rasa 配置文件(NLU管道和对话策略)
├── credentials.yml        # 外部服务的凭据,如 Slack, Telegram 等
├── domain.yml             # 聊天机器人的“知识图谱”:意图、实体、响应、action等定义
└── endpoints.yml          # 定义 action server 和 tracker store 等地址

🚀 文件作用详解 + 示例

1. nlu.yml:意图和实体识别训练数据
version: "3.1"
nlu:
- intent: greet
  examples: |
    - hello
    - hi
    - hey there

- intent: goodbye
  examples: |
    - bye
    - see you

你可以在这里添加更多意图和训练样本。


2. domain.yml:定义意图、响应、实体、action 等

这里放了一个文件内容详细介绍的文章(点击超链接即可)

version: "3.1"

intents:
  - greet
  - goodbye

responses:
  utter_greet:
    - text: "Hello! How can I help you?"
  utter_goodbye:
    - text: "Goodbye! Have a nice day."

actions:
  - utter_greet
  - utter_goodbye

utter_* 是 Rasa 默认的响应方式,如果需要自定义逻辑(如查数据库),就写在 actions.py 里。


3. stories.yml:对话流程训练数据(像“剧本”)
version: "3.1"
stories:
- story: say hello and goodbye
  steps:
  - intent: greet
  - action: utter_greet
  - intent: goodbye
  - action: utter_goodbye

这个故事会训练你的机器人识别完整的对话流程。


4. rules.yml:规则(可选)
version: "3.1"
rules:
- rule: say hello anytime someone greets
  steps:
  - intent: greet
  - action: utter_greet

规则用于强制某些反应,适合“问候”这类单轮对话。


5. actions/actions.py:编写自定义 Action
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher

class ActionCheckWeather(Action):
    def name(self) -> str:
        return "action_check_weather"

    def run(self, dispatcher, tracker, domain):
        dispatcher.utter_message(text="It's sunny today!")
        return []

要使用这个自定义 action,需要在 domain.yml 添加到 actions: 中,并在 endpoints.yml 开启 action server。


✅ 使用流程

  1. 编写/修改 nlu.ymldomain.ymlstories.yml
  2. 运行训练命令:
    docker run -v $(pwd):/app rasa/rasa:latest train
    
  3. 启动 action server(如果使用了自定义 action):
    docker run -v $(pwd)/actions:/app/actions -p 5055:5055 rasa/rasa-sdk:latest
    
  4. 启动 rasa:
    docker run -v $(pwd):/app -p 5005:5005 rasa/rasa:latest run --enable-api
    
  5. 使用 rasa shell 测试对话:
    docker run -v $(pwd):/app rasa/rasa:latest shell
    

相关文章:

  • Python中如何用正则表达式精准匹配IP地址?
  • 常用环境部署(二十六)——Centos搭建MQTT服务端EMQX
  • 35.Java线程池(线程池概述、线程池的架构、线程池的种类与创建、线程池的底层原理、线程池的工作流程、线程池的拒绝策略、自定义线程池)
  • OpenStack Yoga版安装笔记(十九)启动一个实例(Self-service networks)
  • mysql 重复读自己事务中可以看到新插入数据
  • JS里对于Map的简单介绍
  • 蓝桥杯简单题练习
  • win11 redis3.0下载和运行
  • 力扣面试150题--有效的数独
  • 【Android】Android 打包 Release 崩溃问题全解析:Lint 错误、混淆类丢失及解决方法大全
  • React 条件渲染
  • Agent2Agent协议学习资源大全:从理论到实践
  • 【Linux】单例模式及其在线程池中的应用
  • Spring Boot 集成 POI
  • 【Deepseek基础篇】--v3基本架构
  • 【SLAM】将realsense-viewer录制的rosbag视频导出成图片序列(RealSense D435)
  • 二分算法的入门笔记
  • Linuix基础11
  • Python:开启自动化办公与游戏开发的无限可能
  • mybatis plus 分页查询出来数据后对他二次 修改数据 封装返回
  • 网站描本链接怎么做/大连网站搜索排名
  • 商丘网站优化/快速提升网站排名
  • 网站变灰色 html/百度一下一下你就知道
  • 仪征市建设发展有限公司网站/怎么建立网站平台
  • 佛山提供网站设计方案公司/泰安seo排名
  • 软件工程大学排名/宁波seo公司排名