Simple webserver
Зміст
Запуск асинхронного веб-сервера з використанням 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`.