2.4 KiB
Zajęcia 4
Aplikacje REST - Fastapi
Jako zadanie pierwsze proszę przerobić wszystkie przykłady z https://fastapi.tiangolo.com/tutorial/ z działow od "First Steps" do "Request Body" odpalając każdy przykład na komputerze.
Następnie proszę użyć modelu KNN z wczorajszych zajęc i wystawić w REST API oraz uruchomić serwis, który będzie serwował odpowiedzi dla zadanych parametrów wejśćiowych.
Następnie osobno korzystając z :
- curl
- pythonowej bibliteki requests ( https://pypi.org/project/requests/ ) proszę wysłać zapytanie do serwisu
proszę zadać pytanie do serwisu REST. Powinni państwo dostać predykcję modelu.
Testowanie w pythonie - Pytest
Przeczytaj https://docs.pytest.org/en/7.4.x/getting-started.html odpalając przykłady na komputerze.
Pobierz dane w następujący sposób:
import pandas as pd
url = 'https://raw.githubusercontent.com/bigmlcom/python/master/data/spam.csv'
data = pd.read_csv(url, sep='\t')
Podziel dane na train i test oraz wytrenuj model TF IDF + regresja logistyczna. Nastepnie stwórz funkcję predict_text_category(text: str)
,
która przyjmuje tekst oraz zwraca string 'spam' lub 'ham'. Jeżeli funkcja nie otrzyma stringa, a inny typ danych, funkcja ma zwracać None. Napisz kilka testów sprawdzających
czy dana funkcja faktycznie dla stringów zwraca string, który zawiera się w zbiorze {'spam','ham'}, a dla innych typów None.
Testowanie REST API
Przeczytaj https://fastapi.tiangolo.com/tutorial/testing/ odpalając przykłady na komputerze
Osadź model z poprzedniego zadania w REST API i napisz testy REST API.
Przetestowanie maszyny
Skorzystaj z instrukcji "Dostęp do kontenera wdrożeniowego ... " zawartej w tym katalogu. Wystarczy uruchomić konsolę i zalogować się na root bez dalszych kroków.
Następnie na maszynie umieść plik fastapi_examples/simple.py
(np. korzystając z git). Następnie zainstaluj środowisko (albo bezpośrednio pip albo miniconda- odradzam używanie anacondy na tym serwerze gdyż ma tylko 1GB RAM)
Uruchom przykład:
python -m uvicorn main:app --host 0.0.0.0
Sprawdź czy curl "ppw-MYLOGIN.vm.wmi.amu.edu.pl:8000"
zmieniająć MYLOGIN na login użytkownika zwraca poprawny wynik. Uwaga: Adres jest dostępny tylko w sieci wydziałowej WMI (albo za VPN).
Własny projekt
Jeżeli wykonałeś/aś wszystkie zadania, pracuj nad projektem zaliczeniownym.