Проблема с реализацией Sql_tracker_store

Я хочу использовать sql tracker store для хранения истории разговоров в БД, но, похоже, она не работает для меня. У меня есть база данных MySQL, к которой я хочу подключиться, для этого я использую приведенный ниже код в моем endpoint.yml

tracker_store:
    type: SQL
    dialect: "sqlite"  # the dialect used to interact with the db
    url: "localhost"  # (optional) host of the sql db
    db: "chatbot"  # path to your db
    username: "root"  # username used for authentication
    password: "test"  # password used for authentication

когда я бегу rasa shell -m models --endpoints endpoints.ymlЯ получаю ниже ошибки.

" sqlite:////absolute/path/to/file.db" % (url,)
sqlalchemy.exc.ArgumentError: Invalid SQLite URL: sqlite://root:test@localhost/c
hatbot
Valid SQLite URL forms are:
 sqlite:///:memory: (or, sqlite://)
 sqlite:///relative/path/to/file.db
 sqlite:////absolute/path/to/file.db

Когда я попытался подключить тот же БД с использованием кода Python, он работал для меня. Ниже мой код Python.

import mysql.connector

mydb = mysql.connector.connect(host="localhost",port="3306",user="root",database="chatbot",password="test")
mycursor = mydb.cursor()

sql = "Show tables;"

mycursor.execute(sql)
myresult = mycursor.fetchall()
print(myresult)
for x in myresult:
    print(x)

Пожалуйста, помогите мне, как я могу решить эту проблему.

1 ответ

Вам нужно изменить dialect использовать MySQL и db включить .db суффикс в вашем endpoint.yml:

tracker_store:
    type: SQL
    dialect: "mysql"  # the dialect used to interact with the db
    url: somewhere    
    db: "chatbot.db"  
    username: "root"  
    password: "test"  

Больше информации в документах по SQLALchemy

Вам необходимо установить pymysql с помощью pip.

    tracker_store:
        type: SQL
        dialect: "mysql+pymysql"
        url: "localhost"
        db: "Rasabot"
        username: "root"
        password: "xyz"
Другие вопросы по тегам