Вызов пользовательской функции в Rasa Actions - PullRequest
0 голосов
/ 26 августа 2018

Я столкнулся с проблемой при разработке чат-бота с использованием rasa.

Я пытаюсь вызвать пользовательскую функцию в файле действий rasa.Но я получаю сообщение об ошибке «имя» areThereAnyErrors «не определено»

вот мой класс действий.Я хочу вызвать функцию areThereAnyErrors из метода run.Может кто-нибудь помочь, пожалуйста, как решить эту проблему?

class ActionDayStatus (Action):

def areThereAnyErrors(procid):
    errormessagecursor = connection.cursor()
    errormessagecursor.execute(u"select  count(*) from MT_PROSS_MEAGE where pro_id = :procid and msg_T =    :messageT",{"procid": procid, "messageT": 'E'})
    counts = errormessagecursor.fetchone()
    errorCount = counts[0]
    print("error count is {}".format(errorCount))
    if errorCount == 0:
        return False
    else:
        return True

def name(self):
    return 'action_day_status'

def run(self, dispatcher, tracker, domain):
    import cx_Oracle
    import datetime
        # Connect as user "hr" with password "welcome" to the "oraclepdb" service running on this computer.
    conn_str = dbconnection
    connection = cx_Oracle.connect(conn_str)
    cursor = connection.cursor()
    dateIndicator = tracker.get_slot('requiredDate')
    delta = datetime.timedelta(days = 1)
    now = datetime.datetime.now()
    currentDate = (now - delta).strftime('%Y-%m-%d')
    print(currentDate)
    cursor = connection.cursor()

    cursor.execute(u"select  * from M_POCESS_FILE where CREATE_DATE >= TO_DATE(:createDate,'YYYY/MM/DD') fetch first 50 rows only",{"createDate":currentDate})

    all_files = cursor.fetchall()
    total_number_of_files = len(all_files)

    print("total_number_of_files are {}".format(total_number_of_files))

1 Ответ

0 голосов
/ 30 августа 2018

Ответ от одного из интеллектуалов:

https://realpython.com/instance-class-and-static-methods-demystified/ Решите, хотите ли вы статический метод, метод класса или метод экземпляра, и вызовите его соответствующим образом. Кроме того, когда вы используете соединение внутри функции, оно должно быть переменной-членом или передаваться методу. У вас нет self в качестве параметра, поэтому вы можете использовать его как статический метод - но у вас его нет как такового

...