https://szkolazpieklarodem.pl/
Utwórz plik o nazwie facebook.py w tym samym katalogu projektu. Zawartość pliku Pythona powinna być taka, jak podano tutaj:
from rasa_core.channels.facebook import FacebookInput
from rasa_core.agent import Agent
from rasa_core.interpreter import RasaNLUInterpreter
import os
from rasa_core.utils import EndpointConfig
# load your trained agent
interpreter = RasaNLUInterpreter(“models/nlu/default/horoscopebot/”)
MODEL_PATH = “models/dialog”
action_endpoint = EndpointConfig(url=”https://horoscopebot1212-actions.
herokuapp.com/webhook”)
agent = Agent.load(MODEL_PATH, interpreter=interpreter)
input_channel = FacebookInput(
fb_verify=”YOUR_FB_VERIFY_TOKEN”,
# you need tell facebook this token, to confirm your URL
fb_secret=”YOUR_FB_SECRET”, # your app secret
fb_access_token=”YOUR_FB_ACCESS_TOKEN”
# token for the page you subscribed to
)
# set serve_forever=False if you want to keep the server running
s = agent.handle_channels([input_channel], int(os.environ.get(‘PORT’,
5004)), serve_forever=True)
Pamiętaj, aby zastąpić wartości zmiennych fb_verify, fb_secret i fb_access_token w tym kodzie wartościami, które zachowaliśmy w kroku 3. Utwórz nowy plik require.txt i dodaj wszystkie pakiety i ich wersje potrzebne w tym projekcie. Mój plik wymagania.txt wygląda następująco; w przypadku Twojego projektu wymagania mogą się różnić, ale powinny być wystarczające, jeśli zastosujesz ten sam przykład bota w tym rozdziale.
rasa-core==0.11.1
rasa-core-sdk==0.11.0
rasa-nlu==0.13.2
gunicorn==19.9.0
requests==2.18.4
spacy==2.0.11
sklearn-crfsuite==0.3.6
aby zainstalować nasze pakiety na serwerze.
Teraz utwórzmy ponownie nową aplikację w Heroku, tak jak zrobiliśmy to wcześniej. Przejdź do panelu Heroku i utwórz nową aplikację, jak pokazano na rysunku
Po utworzeniu aplikacji możesz teraz przejść do katalogu głównego projektu i uruchomić następujący zestaw poleceń z wiersza poleceń w folderze projektu:
$ git init
$ heroku git:remote -a <your-heroku-app-name>
$ heroku buildpacks:set heroku/python
$ heroku config:set PORT=5004
$ git add .
$ git commit -am “deploy my bot”
$ git push heroku master
Jeśli po wdrożeniu pojawi się błąd wykonania, może to wyglądać tak jak poniżej. ValueError: Być może próbujesz odczytać za pomocą Pythona 3 bibliotekę zadań wygenerowaną za pomocą Pythona 2. Ta funkcja nie jest obsługiwana przez joblib. Dzieje się tak głównie w przypadku używania wersji Python 2.x. Heroku domyślnie używa wersji Pythona 3.x. Jeśli więc chcesz używać Pythona 2.x, musisz wykonać poniższe kroki, aby rozwiązać powyższy błąd. Zmień Pythona 3.6 na Python-2.7.15. aby to zrobić. Utwórz plik runtime.txt w katalogu głównym aplikacji swojego projektu. Otwórz środowisko wykonawcze. txt i dodaj następujący wiersz python-2.7.15, a następnie zapisz go. Heroku użyje wyżej wymienionej wersji Pythona tylko do zbudowania Twojego projektu. Po pomyślnym zakończeniu wdrożenia zobaczysz adres URL podany przez Heroku, informujący, że aplikacja została wdrożona w <url>.
remote: Compressing source files… done.
remote: Building source:
remote:
remote: —–> Python app detected
remote: —–> Installing requirements with pip
remote:
remote: —–> Discovering process types
remote: Procfile declares types -> web
remote:
remote: —–> Compressing…
remote: Done: 254M
remote: —–> Launching…
remote: Released v17
remote: https://horoscopebot1212.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy… done.
To https://git.heroku.com/horoscopebot1212.git
cd3eb1b..c0e081d master -> master
To rozmieszczenie zajmie trochę czasu, więc bądź cierpliwy, jak tylko możesz – zaraz zobaczysz magię. Jeśli nie otrzymałeś żadnych komunikatów o błędach, oznacza to, że pomyślnie wdrożyłeś chatbota w Heroku w chmurze, aby działał z Facebook Messenger. Sprawdźmy, czy to działa.