Rasa自定义操作不起作用-Google Colab

问题描述

我正在尝试在Colab上实现RASA chatbot,并发现很难自定义动作。.除了动作之外,其他所有功能都可以正常工作。.我觉得我的聊天框没有输入动作。.任何人都可以指导我..

nlu_md = """
## intent:greet
- Hello
- hello
- good morning

## intent:justbook
- table for 1
- make reservations for me
- make reservations for 1 person
"""
%store nlu_md > nlu.md

stories_md = """

## Story 1
* greet 
    - action_print
"""
%store stories_md > stories.md


domain_yml = """
%YAML 1.1
---
actions:
- utter_booking_confirmation
- utter_greeting
- utter_thankyou
- __main__.Printer
- action_print


entities:
- time
- date
- number_of_people
intents:
- time
- when
- book
- greet
- justbook

  
templates:
  utter_greeting:
  - text: Welcome to the restaurant ! How can I help you ?
  utter_thankyou:
  - text: Thank You for using our services ! See you again soon !
  utter_confirm:
  - text: Your booking is confirmed for {number_of_people} on {date} at {time}. Thank You. See you soon  
"""

%store domain_yml > domain.yml

操作

from rasa_core_sdk import Tracker
from rasa_core_sdk import Action
from rasa_core_sdk.events import SlotSet
from rasa_core_sdk.executor import Collectingdispatcher
from rasa_core.actions import Action  

     

class Printer(Action):
        def name(self):
            return "action_print"
            
        def run(self,dispatcher,tracker,domain):
            no_of_people=tracker.slots['number_of_people']
            time=tracker.slots['time']
            date=tracker.slots['date']
            print('ENTERED PRINTER')
        
            dispatcher.utter_message('hi i am in Printer')
            #return ''

聊天室!

from rasa_core.agent import Agent
from rasa_core.utils import EndpointConfig
from rasa_core.interpreter import RasaNLUInterpreter
from rasa_core.utils import EndpointConfig

agent = Agent.load('models/dialogue',interpreter=RasaNLUInterpreter('/content/drive/My Drive/restaurant bot/models/nlu/default/restaurantbot'),action_endpoint=EndpointConfig(url="http://127.0.0.1:5055/webhook"))
print("Bot is ready to talk! Start conversation with 'hi'")
while True:
    st = input()
    if st == 'stop':
        break
    responses = agent.handle_text(st)
    for response in responses:
        print(response["text"])

预期产量
我希望输出:已输入打印机HI我在打印机中。
我得到的输出我没有得到预期的输出,我只是得到输入的文本框。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...