Skip to content

Commit 0dd92c6

Browse files
committed
Simple use of FastAPI
1 parent 0998850 commit 0dd92c6

File tree

5 files changed

+364
-0
lines changed

5 files changed

+364
-0
lines changed

homework_09/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Задание
2+
3+
В этом домашнем задании предлагается реализовать REST API, занимающегося инференсом некой модели машинного обучения, т.е. поступает набор признаков объекта, на выходе возвращается предсказание модели. В качестве основы проекта предлагается фреймворк FastAPI
4+
5+
# Запуск
6+
7+
```bash
8+
poetry install --no-root
9+
poetry run uvicorn app.app:app --host 127.0.0.1 --port 8000
10+
```
11+
12+
# Реализация
13+
14+
По GET запросу вида `localhost:8000/analysis/<some_text>` делается анализ текста: считается относительное количество гласных английских букв в строке и отдается в формате JSON:
15+
```
16+
{"result": <float>}
17+
```

homework_09/app/__init__.py

Whitespace-only changes.

homework_09/app/app.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from fastapi import FastAPI
2+
from pydantic import BaseModel
3+
4+
app = FastAPI()
5+
6+
7+
class ModelInferenceOutput(BaseModel):
8+
result: float
9+
10+
11+
@app.get("/")
12+
def index():
13+
return {"text": "ML model inference"}
14+
15+
16+
@app.get("/analysis/{data}", response_model=ModelInferenceOutput)
17+
def run_model_analysis(data: str):
18+
result = sum(map(data.lower().count, "aeiuyo")) / len(data)
19+
return {"result": result}

0 commit comments

Comments
 (0)