Simple webserver

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку

Запуск асинхронного веб-сервера з використанням FastAPI і Uvicorn

Вступ

Цей документ навчить вас, як створити та запустити простий асинхронний веб-сервер з використанням FastAPI і Uvicorn. Ми створимо простий API, який приймає HTTP POST-запити з JSON-даними та повертає відповідь у форматі JSON.

Вимоги

 * Python 3.6+
 * FastAPI
 * Uvicorn
 * Pydantic

Встановлення залежностей

Перш за все, вам потрібно встановити необхідні пакети. Це можна зробити за допомогою pip:

pip install fastapi uvicorn pydantic

Створення моделі даних

Для визначення структури даних, яку ми очікуємо отримати в запиті, ми використовуємо Pydantic:

from pydantic import BaseModel

class Payload(BaseModel):
    api_key: str
    prompt: str
    model_type: str


Створення веб-сервера

Ось базовий код для створення веб-сервера з використанням FastAPI:

import uvicorn
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Payload(BaseModel):
    api_key: str
    prompt: str
    model_type: str

@app.post("/api")
async def model(payload: Payload):
    try:
        response = f"Received prompt: {payload.prompt}, Model type: {payload.model_type}"
        res = {"response": response}
    except Exception as e:
        res = {"response": f"error: {e}"}
    return res


Запуск сервера

Для запуску сервера використовуйте наступну команду:

uvicorn main:app --reload

`main` вказує на файл `main.py`, де знаходиться ваш код, а `app` - це екземпляр FastAPI. Опція `--reload` дозволяє автоматично перезавантажувати сервер при змінах у коді.

Тестування API

Ви можете тестувати ваш API, відправляючи POST-запити на `http://localhost:8000/api` з відповідним JSON-тілом:

{
    "api_key": "your_api_key",
    "prompt": "Hello, world!",
    "model_type": "GPT-3"
}

Відповідь сервера буде містити текст, який ви вказали у `prompt`, та тип моделі, який ви вказали у `model_type`.