<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.welard.com/index.php?action=history&amp;feed=atom&amp;title=Simple_webserver</id>
	<title>Simple webserver - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.welard.com/index.php?action=history&amp;feed=atom&amp;title=Simple_webserver"/>
	<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Simple_webserver&amp;action=history"/>
	<updated>2026-10-22T13:30:14Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Simple_webserver&amp;diff=2866&amp;oldid=prev</id>
		<title>WikiSysop: Створена сторінка: = Запуск асинхронного веб-сервера з використанням FastAPI і Uvicorn =  == Вступ ==  Цей документ на...</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Simple_webserver&amp;diff=2866&amp;oldid=prev"/>
		<updated>2024-02-18T13:54:04Z</updated>

		<summary type="html">&lt;p&gt;Створена сторінка: = Запуск асинхронного веб-сервера з використанням FastAPI і Uvicorn =  == Вступ ==  Цей документ на...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Запуск асинхронного веб-сервера з використанням FastAPI і Uvicorn =&lt;br /&gt;
&lt;br /&gt;
== Вступ ==&lt;br /&gt;
&lt;br /&gt;
Цей документ навчить вас, як створити та запустити простий асинхронний веб-сервер з використанням FastAPI і Uvicorn. Ми створимо простий API, який приймає HTTP POST-запити з JSON-даними та повертає відповідь у форматі JSON.&lt;br /&gt;
&lt;br /&gt;
== Вимоги ==&lt;br /&gt;
&lt;br /&gt;
  * Python 3.6+&lt;br /&gt;
  * FastAPI&lt;br /&gt;
  * Uvicorn&lt;br /&gt;
  * Pydantic&lt;br /&gt;
&lt;br /&gt;
== Встановлення залежностей ==&lt;br /&gt;
&lt;br /&gt;
Перш за все, вам потрібно встановити необхідні пакети. Це можна зробити за допомогою pip:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install fastapi uvicorn pydantic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Створення моделі даних ==&lt;br /&gt;
&lt;br /&gt;
Для визначення структури даних, яку ми очікуємо отримати в запиті, ми використовуємо Pydantic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from pydantic import BaseModel&lt;br /&gt;
&lt;br /&gt;
class Payload(BaseModel):&lt;br /&gt;
    api_key: str&lt;br /&gt;
    prompt: str&lt;br /&gt;
    model_type: str&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Створення веб-сервера ==&lt;br /&gt;
&lt;br /&gt;
Ось базовий код для створення веб-сервера з використанням FastAPI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import uvicorn&lt;br /&gt;
from fastapi import FastAPI&lt;br /&gt;
from pydantic import BaseModel&lt;br /&gt;
&lt;br /&gt;
app = FastAPI()&lt;br /&gt;
&lt;br /&gt;
class Payload(BaseModel):&lt;br /&gt;
    api_key: str&lt;br /&gt;
    prompt: str&lt;br /&gt;
    model_type: str&lt;br /&gt;
&lt;br /&gt;
@app.post(&amp;quot;/api&amp;quot;)&lt;br /&gt;
async def model(payload: Payload):&lt;br /&gt;
    try:&lt;br /&gt;
        response = f&amp;quot;Received prompt: {payload.prompt}, Model type: {payload.model_type}&amp;quot;&lt;br /&gt;
        res = {&amp;quot;response&amp;quot;: response}&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        res = {&amp;quot;response&amp;quot;: f&amp;quot;error: {e}&amp;quot;}&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Запуск сервера ==&lt;br /&gt;
&lt;br /&gt;
Для запуску сервера використовуйте наступну команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uvicorn main:app --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
`main` вказує на файл `main.py`, де знаходиться ваш код, а `app` - це екземпляр FastAPI. Опція `--reload` дозволяє автоматично перезавантажувати сервер при змінах у коді.&lt;br /&gt;
&lt;br /&gt;
== Тестування API ==&lt;br /&gt;
&lt;br /&gt;
Ви можете тестувати ваш API, відправляючи POST-запити на `http://localhost:8000/api` з відповідним JSON-тілом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;api_key&amp;quot;: &amp;quot;your_api_key&amp;quot;,&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;Hello, world!&amp;quot;,&lt;br /&gt;
    &amp;quot;model_type&amp;quot;: &amp;quot;GPT-3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Відповідь сервера буде містити текст, який ви вказали у `prompt`, та тип моделі, який ви вказали у `model_type`.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
</feed>