2. PostgreSQL#
This is a tutorial on using PostgreSQL.
See SQLContextStorage class for storing your users’ contexts in SQL databases.
Chatsky uses sqlalchemy and asyncpg libraries for asynchronous access to PostgreSQL DB.
[1]:
# installing dependencies
%pip install -q chatsky[postgresql]
Note: you may need to restart the kernel to use updated packages.
[2]:
import os
from chatsky.context_storages import context_storage_factory
from chatsky import Pipeline
from chatsky.utils.testing.common import (
check_happy_path,
is_interactive_mode,
)
from chatsky.utils.testing.toy_script import TOY_SCRIPT_KWARGS, HAPPY_PATH
[3]:
db_uri = "postgresql+asyncpg://{}:{}@localhost:5432/{}".format(
os.environ["POSTGRES_USERNAME"],
os.environ["POSTGRES_PASSWORD"],
os.environ["POSTGRES_DB"],
)
db = context_storage_factory(db_uri)
pipeline = Pipeline(**TOY_SCRIPT_KWARGS, context_storage=db)
[4]:
if __name__ == "__main__":
check_happy_path(pipeline, HAPPY_PATH, printout=True)
if is_interactive_mode():
pipeline.run()
USER: text='Hi'
BOT : text='Hi, how are you?'
USER: text='i'm fine, how are you?'
BOT : text='Good. What do you want to talk about?'
USER: text='Let's talk about music.'
BOT : text='Sorry, I can not talk about music now.'
USER: text='Ok, goodbye.'
BOT : text='bye'
USER: text='Hi'
BOT : text='Hi, how are you?'