首页 > 编程语言 >python rasa聊天机器人教程五:经典事例查询天气

python rasa聊天机器人教程五:经典事例查询天气

时间:2023-08-17 22:36:15浏览次数:45  
标签:city 教程 rasa python 天气 weather action fetch

从用户输入的消息中提取城市信息然后查询天气信息

1.培训数据

data/nlu.yml 文件中,添加意图和实体的例子:

nlu:
- intent: ask_weather
  examples: |
    - 今天 [北京](city) 的天气怎么样?
    - [上海](city) 明天会下雨吗?
    - 告诉我[广州](city)的天气
    - [深圳](city) 后天的天气预报是什么?

 2.定义 stories

data/stories.yml 文件中,定义一个简单的 story:

stories:
- story: user asks about weather
  steps:
  - intent: ask_weather
    entities:
    - city: "北京"
  - action: action_fetch_weather

 3.定义 actions:

from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.types import DomainDict

# 模拟一个查询天气的函数
def fetch_weather(city: str) -> str:
    # 这里可以调用真实的天气 API,但为简单起见,我们只返回一个模拟值
    return f"{city}的天气是晴朗的。"

class ActionFetchWeather(Action):

    def name(self) -> str:
        return "action_fetch_weather"

    async def run(self, dispatcher: CollectingDispatcher,
                  tracker: Tracker,
                  domain: DomainDict) -> list:
        city = tracker.get_slot("city")

        if city:
            weather_info = fetch_weather(city)
            dispatcher.utter_message(text=weather_info)
        else:
            dispatcher.utter_message(text="对不起,我不知道您询问哪个城市的天气。")

        return []

 4.定义 slots 和 responses:

domain.yml 文件中,定义 city slot 和一个简单的回复模板:

slots:
  city:
    type: text
intents:
- ask_weather
responses: utter_ask_city: - text: "您想询问哪个城市的天气?" actions: - action_fetch_weather

 5.启动 actions server:

使用以下命令启动 action server:

rasa run actions

 6.培训模型并运行:

使用以下命令培训模型:

rasa train

 启动 Rasa 服务:

rasa shell

 

标签:city,教程,rasa,python,天气,weather,action,fetch
From: https://www.cnblogs.com/fanhua999/p/17639034.html

相关文章

  • 用 python 生成九九表
    用python生成九九表━━━━━━━━━━━━━━━━━━━━━━当然可以!以下是使用Python生成九九乘法表的代码:foriinrange(1,10):forjinrange(1,i+1):print(f'{j}×{i}={i*j}',end='\t')print()━━━━━━━━━━━━━━━━━......
  • Python版本切换及代理问题
    版本切换py-版本利用环境变量下寻找变量名的方式更改文件名,从而实现打开不同版本的程序python27python37环境变量变量名描述PYTHONPATHPYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。PYTHONSTARTUPPython启动后,先寻找PYTHONSTAR......
  • python 中如何快速查看代码的性能 DebugInfo 秒表装饰器
    背景我们在python编程时,在有性能优化需求的场景下,我们可能一个需求存在多个解决方案的情况,这些解决方案可能在不同的模块/库中实现。那么对于可以实现两样的功能,但实现方式不同的情况下,我们直接测试一下每个方式的运行性能,是最直观评估不同的实现方案性能的办法。一般解决方法......
  • linux利用软链接快速切换python环境
    首先下载python环境编译安装这里就不在追叙目前的python环境一般python都会出现再/usr/bin/这里都是软连接 指向对应执行文件 然后来到我们下载的python环境下找到python执行环境 然后将这文件连接到 /usr/bin/ 下ln-s源地址目的地址ln-s/www/server/p......
  • mybatis-plus+nacos配置中心和服务发现保姆级教程
    默认你已经看了我的Mybatis-Plus+Mysql的教程,现在有了一个简单的项目如下(之前的教程: https://www.cnblogs.com/leafstar/p/17638741.html)1.下载nacao,我这里下的是2.1.0版本提供一下我用的版本(链接:https://pan.baidu.com/s/1AVmZIhx4b0euzctJhWUlTQ?pwd=1234提取码:1234......
  • 2023年第 16期《Python接口自动化+Playwright 》课程,9月10号开学(课程全面升级!)!
    2023年第16期《Python接口自动化+Playwright》课程课程,9月10号开学(课程全面升级!)主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:2023年9月10号-2023年12月3号,晚上20:30-22:30报名费:报名费3000一人(周期3个月)联系微信/QQ:283340479课表如下直播课程主......
  • python3-输入输出,File, OS, 错误和异常
     1. 输入输出,1.1输出 表达式语句print()函数。第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout引用。 输出格式美化如果你希望输出的形式更加多样,可以使用str.format()函数来格式化输出值。如果你希望将输出的值转成字符串,可以使用......
  • 软件测试|Linux下Python安装配置指南
    在Linux中安装Python是一个简单而且重要的过程,因为Python是一种广泛使用的编程语言,许多系统工具和应用都依赖于它。在本文中,我将详细介绍如何在Linux系统中安装Python。请注意,在本文中,我将以Centos为例,但是这些步骤大多数也适用于其他基于RedHat的发行版。对于其他发行版,请使用相应......
  • Python小项目:通过商品条形码查询商品信息
    完整项目下载:下载链接1商品条形码平日大家会购买许许多多的商品,无论是饮料、食品、药品、日用品等在商品的包装上都会有条形码。商品条形码包括零售商品、非零售商品、物流单元、位置的代码和条码标识。我国采用国际通用的商品代码及条码标识体系,推广应用商品条形码,建立我国......
  • Python小项目:利用tkinter与图灵机器人制作智能聊天系统
    1前言在本项目中,我们将探索如何使用Python的tkinter库以及图灵机器人API来构建一个智能聊天系统。本项目的初衷是通过实际操作,结合GUI编程和API调用,展示如何创建一个有趣且实用的小应用。我们将借助tkinter创建一个类似QQ聊天框的界面,并使用图灵机器人的API来实现自动化的智能聊......