45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
# 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.
|
|
|
|
|
|
|
|
## Własny projekt
|
|
|
|
Jeżeli wykonałeś/aś wszystkie zadania, pracuj nad projektem zaliczeniownym. |