2023-programowanie-w-pythonie/zajecia4/README.md
Jakub Pokrywka f494ff6634 add kontener
2023-11-25 20:51:44 +01:00

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 :

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.