-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
51 lines (42 loc) · 2.1 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
import tgalice
import mongomock
from pymongo import MongoClient
from navec import Navec
import logging
import prerelease
logging.basicConfig(level=logging.INFO)
TEXT_HELP = (
'Привет! Я бот, который умеет работать и в Телеграме и в Алисе.'
'\nЯ не умею делать примерно ничего, но могу с вами поздороваться.'
'\nКогда вам надоест со мной говорить, скажите "выход".'
)
TEXT_FAREWELL = 'Всего доброго! Если захотите повторить, скажите "Алиса, включи навык тест tgalice".'
if __name__ == '__main__':
mongo_url = os.environ.get('MONGODB_URI')
if mongo_url:
mongo_client = MongoClient(mongo_url)
mongo_db = mongo_client.get_default_database()
else:
mongo_client = mongomock.MongoClient()
mongo_db = mongo_client.db
mongo_logs = mongo_db.get_collection('message_logs')
prerelease.download_if_not_exists(prerelease.navec_url, prerelease.navec_file)
w2v = Navec.load(prerelease.navec_file)
manager = tgalice.dialog_manager.CascadeDialogManager(
tgalice.dialog_manager.FAQDialogManager('faq.yaml', matcher=tgalice.nlu.matchers.W2VMatcher(w2v=w2v)),
tgalice.dialog_manager.GreetAndHelpDialogManager(
greeting_message=TEXT_HELP,
help_message=TEXT_HELP,
default_message='Я вас не понимаю.',
exit_message='Всего доброго! Было приятно с вами пообщаться!'
)
)
connector = tgalice.dialog_connector.DialogConnector(
dialog_manager=manager,
storage=tgalice.session_storage.MongoBasedStorage(database=mongo_db, collection_name='sessions'),
log_storage=tgalice.storage.message_logging.MongoMessageLogger(database=mongo_db, detect_pings=True)
# log_storage=tgalice.storage.message_logging.BaseMessageLogger()
)
server = tgalice.flask_server.FlaskServer(connector=connector)
server.parse_args_and_run()