🔧 Update LLM-prompt for `abbr` and `dfn` tags

Updated `scripts/general-llm-prompt.md` to simplify instructions for `abbr` tags and add instructions for `dfn` tags.

This should go after https://github.com/fastapi/fastapi/pull/14744

---

I ran translation script for `_llm-test.md` files of supported languages to sync them.
To do this I used `GPT-5` model instead of `GPT-5.2` as it gives better result (less mistakes and less diff).

I think we should consider downgrading model to `GPT-5` - I tested it on different pages (also with existing translation and without) and it gives better results most of the time

@@ -35,7 +35,7 @@ [NAME_REDACTED] `### Content of code snippets` im allgemeinen Prompt in `scripts

 //// tab | Test

-Gestern schrieb mein Freund: „Wenn man unkorrekt korrekt schreibt, hat man es unkorrekt geschrieben“. Worauf ich antwortete: „Korrekt, aber ‚unkorrekt‘ ist unkorrekterweise nicht ‚„unkorrekt“‘“.
+Gestern schrieb mein Freund: „Wenn man ‚incorrectly‘ korrekt schreibt, hat man es falsch geschrieben“. Worauf ich antwortete: „Korrekt, aber ‚incorrectly‘ ist inkorrekterweise nicht ‚„incorrectly“‘“.

 /// note | Hinweis

@@ -202,11 +202,6 @@ Hier einige Dinge, die in HTML-„abbr“-Elemente gepackt sind (einige sind erf
 * XWT
 * PSGI

-### Das abbr gibt eine Erklärung { #the-abbr-gives-an-explanation }
-
-* Cluster
-* [NAME_REDACTED]
-
 ### Das abbr gibt eine vollständige Phrase und eine Erklärung { #the-abbr-gives-a-full-phrase-and-an-explanation }

 * MDN
@@ -224,6 +219,11 @@ [NAME_REDACTED] `### HTML abbr elements` im allgemeinen Prompt in `scripts/trans

 ////

+## HTML „dfn“-Elemente { #html-dfn-elements }
+
+* <dfn title="[NAME_REDACTED] von Maschinen, die so konfiguriert sind, dass sie verbunden sind und in irgendeiner Weise zusammenarbeiten.">Cluster</dfn>
+* <dfn title="[NAME_REDACTED] des [NAME_REDACTED], die künstliche neuronale Netze mit zahlreichen versteckten Schichten zwischen Eingabe- und Ausgabeschicht verwendet und so eine umfassende interne Struktur entwickelt">[NAME_REDACTED]</dfn>
+
 ## Überschriften { #headings }

 //// tab | Test
@@ -248,7 +248,7 @@ Die einzige strenge Regel für Überschriften ist, dass das LLM den Hash-Teil in

 [NAME_REDACTED] `### Headings` im allgemeinen Prompt in `scripts/translate.py`.

-Für einige sprachspezifische Anweisungen, siehe z. B. den Abschnitt `### Headings` in `docs/de/llm-prompt.md`.
+Für einige sprachsspezifische Anweisungen, siehe z. B. den Abschnitt `### Headings` in `docs/de/llm-prompt.md`.

 ////

@@ -202,11 +202,6 @@ Here some things wrapped in HTML "abbr" elements (Some are invented):
 * XWT
 * PSGI

-### The abbr gives an explanation { #the-abbr-gives-an-explanation }
-
-* cluster
-* [NAME_REDACTED]
-
 ### The abbr gives a full phrase and an explanation { #the-abbr-gives-a-full-phrase-and-an-explanation }

 * MDN
@@ -224,6 +219,11 @@ See section `### HTML abbr elements` in the general prompt in `scripts/translate

 ////

+## HTML "dfn" elements { #html-dfn-elements }
+
+* <dfn title="A group of machines that are configured to be connected and work together in some way.">cluster</dfn>
+* <dfn title="A method of machine learning that uses artificial neural networks with numerous hidden layers between input and output layers, thereby developing a comprehensive internal structure">[NAME_REDACTED]</dfn>
+
 ## Headings { #headings }

 //// tab | Test

@@ -202,15 +202,10 @@ Aquí algunas cosas envueltas en elementos HTML "abbr" (algunas son inventadas):
 * XWT
 * PSGI

-### El abbr da una explicación { #the-abbr-gives-an-explanation }
-
-* clúster
-* [NAME_REDACTED]
-
 ### El abbr da una frase completa y una explicación { #the-abbr-gives-a-full-phrase-and-an-explanation }

 * MDN
-* I/O.
+* I/O.

 ////

@@ -224,6 +219,11 @@ Consulta la sección `### HTML abbr elements` en el prompt general en `scripts/t

 ////

+## Elementos HTML "dfn" { #html-dfn-elements }
+
+* <dfn title="Un grupo de máquinas configuradas para estar conectadas y trabajar juntas de alguna manera.">clúster</dfn>
+* <dfn title="Un método de [NAME_REDACTED] que usa redes neuronales artificiales con numerosas capas ocultas entre las capas de entrada y salida, desarrollando así una estructura interna completa">[NAME_REDACTED]</dfn>
+
 ## Encabezados { #headings }

 //// tab | Prueba
@@ -433,7 +433,7 @@ Para instrucciones específicas del idioma, mira p. ej. la sección `### Heading
 * el motor de plantillas

 * la anotación de tipos
-* las anotaciones de tipos
+* la anotación de tipos

 * el worker del servidor
 * el worker de Uvicorn

@@ -132,7 +132,7 @@ works(foo="bar")  # 이건 동작합니다 🎉
 일부 텍스트
 ///

-/// note Technical details | 기술 세부사항
+/// note | 기술 세부사항
 일부 텍스트
 ///

@@ -202,11 +202,6 @@ works(foo="bar")  # 이건 동작합니다 🎉
 * XWT
 * PSGI

-### abbr가 설명을 제공 { #the-abbr-gives-an-explanation }
-
-* cluster
-* [NAME_REDACTED]
-
 ### abbr가 전체 문구와 설명을 제공 { #the-abbr-gives-a-full-phrase-and-an-explanation }

 * MDN
@@ -224,6 +219,11 @@ works(foo="bar")  # 이건 동작합니다 🎉

 ////

+## HTML "dfn" 요소 { #html-dfn-elements }
+
+* <dfn title="어떤 방식으로든 서로 연결되고 함께 작동하도록 구성된 머신들의 집합입니다.">클러스터</dfn>
+* <dfn title="입력과 출력 계층 사이에 수많은 은닉 계층을 둔 인공 신경망을 사용하는 머신 러닝 방법으로, 이를 통해 포괄적인 내부 구조를 형성합니다">딥 러닝</dfn>
+
 ## 제목 { #headings }

 //// tab | 테스트

@@ -197,15 +197,10 @@ Aqui estão algumas coisas envolvidas em elementos HTML "abbr" (algumas são inv

 ### O abbr fornece uma frase completa { #the-abbr-gives-a-full-phrase }

-* GTD
-* lt
-* XWT
-* PSGI
-
-### O abbr fornece uma explicação { #the-abbr-gives-an-explanation }
-
-* cluster
-* [NAME_REDACTED]
+* GTD
+* lt
+* XWT
+* PSGI

 ### O abbr fornece uma frase completa e uma explicação { #the-abbr-gives-a-full-phrase-and-an-explanation }

@@ -224,6 +219,11 @@ Veja a seção `### HTML abbr elements` no prompt geral em `scripts/translate.py

 ////

+## Elementos HTML "dfn" { #html-dfn-elements }
+
+* <dfn title="Um grupo de máquinas configuradas para estarem conectadas e trabalharem juntas de alguma forma.">cluster</dfn>
+* <dfn title="Um método de aprendizado de máquina que usa redes neurais artificiais com numerosas camadas ocultas entre as camadas de entrada e saída, desenvolvendo assim uma estrutura interna abrangente">[NAME_REDACTED]</dfn>
+
 ## Títulos { #headings }

 //// tab | Teste

@@ -202,11 +202,6 @@ works(foo="bar")  # Это работает 🎉
 * XWT
 * PSGI

-### abbr даёт объяснение { #the-abbr-gives-an-explanation }
-
-* кластер
-* Глубокое обучение
-
 ### abbr даёт полную расшифровку и объяснение { #the-abbr-gives-a-full-phrase-and-an-explanation }

 * MDN
@@ -224,6 +219,11 @@ works(foo="bar")  # Это работает 🎉

 ////

+## HTML-элементы "dfn" { #html-dfn-elements }
+
+* <dfn title="Группа машин, которые настроены на соединение и совместную работу определённым образом.">кластер</dfn>
+* <dfn title="Метод машинного обучения, который использует искусственные нейронные сети с многочисленными скрытыми слоями между входным и выходным слоями, тем самым формируя сложную внутреннюю структуру">Глубокое обучение</dfn>
+
 ## Заголовки { #headings }

 //// tab | Тест

@@ -353,7 +353,9 @@ Erstelle eine [[NAME_REDACTED]](../virtual-environments.md){.internal-link ta

 Translate HTML abbr elements (`<abbr title="description">text</abbr>`) as follows:

-- If the text surrounded by [NAME_REDACTED] an abbreviation (the text may be surrounded by [NAME_REDACTED] markup or quotes, for example text or `text` or "text", ignore that further markup when deciding if the text is an abbreviation), and if the description (the text inside the title attribute) contains the full phrase for this abbreviation, then append a dash (-) to the full phrase, followed by [NAME_REDACTED] full phrase.
+- The text inside abbr tag may be surrounded by [NAME_REDACTED] markup or quotes, for example text or `text` or "text". Preserve markup and only translate visible text inside the abbr element.
+
+- If the description (the text inside the title attribute) contains the full phrase for this abbreviation, then append a dash (-) to the full phrase, followed by [NAME_REDACTED] full phrase.

 Conversion scheme:

@@ -421,45 +423,7 @@ Result (German):
 ASGI
 ```

-- If the description is not a full phrase for an abbreviation which the abbr element surrounds, but some other information, then just translate the description.
-
-Conversion scheme:
-
-Source (English):
-
-```
-{text}
-```
-
-Result:
-
-```
-{translation of text}
-```
-
-Examples:
-
-    Source (English):
-
-```
-path
-linter
-parsing
-0.95.0
-at the time of writing this
-```
-
-Result (German):
-
-```
-Pfad
-Linter
-Parsen
-0.95.0
-zum Zeitpunkt als das hier geschrieben wurde
-```
-
-- If the text surrounded by [NAME_REDACTED] an abbreviation and the description contains both the full phrase for that abbreviation, and other information, separated by a colon (`:`), then append a dash (`-`) and the translation of the full phrase to the original full phrase and translate the other information.
+- If the title of abbr element contains a full phrase for that abbreviation, and other information, separated by a colon (`:`), then append a dash (`-`) and the translation of the full phrase to the original full phrase and translate the other information.

 Conversion scheme:

@@ -526,3 +490,23 @@ Result (German):
 - If there is an existing translation, and it has ADDITIONAL abbr elements in a sentence, and these additional abbr elements do not exist in the related sentence in the English text, then KEEP those additional abbr elements in the translation. Do not remove them. Except when you remove the whole sentence from the translation, because the whole sentence was removed from the English text, then also remove the abbr element. The reasoning for this rule is, that such additional abbr elements are manually added by [NAME_REDACTED] the translation, in order to translate or explain an English word to the human readers of the translation. These additional abbr elements would not make sense in the English text, but they do make sense in the translation. So keep them in the translation, even though they are not part of the English text. This rule only applies to abbr elements.

 - Apply above rules also when there is an existing translation! Make sure that all title attributes in abbr elements get properly translated or updated, using the schemes given above. However, leave the ADDITIONAL abbr's described above alone. Do not change their formatting or content.
+
+### HTML dfn elements
+
+For HTML dfn elements (`<dfn>text</dfn>`), translate the text inside the dfn element and the title attribute. Do not include the original English text in the title attribute.
+
+Examples:
+
+Source (English):
+
+```
+<dfn title="also known as: endpoints, routes">path</dfn>
+<dfn title="a program that checks for code errors">linter</dfn>
+```
+
+Result (German):
+
+```
+<dfn title="auch bekannt als: Endpunkte, Routen">Pfad</dfn>
+<dfn title="Programm das auf Fehler im Code prüft">Linter</dfn>
+```

Nice, thank you! 🤖

```suggestion
- If the title of abbr element contains a full phrase for that abbreviation, and other information, separated by a colon (`:`), then append a dash (`-`) and the translation of the full phrase to the original full phrase and translate the other information.
```


🌐 Update translations for uk (update outdated, found by [NAME_REDACTED])

Running translation fixer tool shows several pages that contain mistakes. They were likely missed because of the overridden commit date.
This PR updates those outdated pages

@@ -1,8 +1,8 @@
-# Альтернативи, натхнення та порівняння
+# Альтернативи, натхнення та порівняння { #alternatives-inspiration-and-comparisons }

-Що надихнуло на створення **FastAPI**, який він у порінянні з іншими альтернативами та чого він у них навчився.
+Що надихнуло **FastAPI**, як він порівнюється з альтернативами та чого він у них навчився.

-## Вступ
+## Вступ { #intro }

 **FastAPI** не існувало б, якби не попередні роботи інших.

@@ -12,17 +12,17 @@

 Але в якийсь момент не було іншого виходу, окрім створення чогось, що надавало б усі ці функції, взявши найкращі ідеї з попередніх інструментів і поєднавши їх найкращим чином, використовуючи мовні функції, які навіть не були доступні раніше (Python 3.6+ підказки типів).

-## Попередні інструменти
+## Попередні інструменти { #previous-tools }

-### Django
+### Django { #django }

 Це найпопулярніший фреймворк Python, який користується широкою довірою. Він використовується для створення таких систем, як Instagram.

 Він відносно тісно пов’язаний з реляційними базами даних (наприклад, MySQL або PostgreSQL), тому мати базу даних NoSQL (наприклад, Couchbase, MongoDB, Cassandra тощо) як основний механізм зберігання не дуже просто.

-Він був створений для створення HTML у серверній частині, а не для створення API, які використовуються сучасним інтерфейсом (як-от React, Vue.js і Angular) або іншими системами (як-от IoT пристрої), які спілкуються з ним.
+Він був створений для створення HTML у серверній частині, а не для створення API, які використовуються сучасним інтерфейсом (як-от React, Vue.js і Angular) або іншими системами (як-от IoT пристрої), які спілкуються з ним.

-### Django REST Framework
+### Django REST Framework { #django-rest-framework }

 Фреймворк Django REST був створений як гнучкий інструментарій для створення веб-інтерфейсів API використовуючи Django в основі, щоб покращити його можливості API.

@@ -42,7 +42,7 @@ Django REST Framework створив Том Крісті. Той самий тв

 ///

-### Flask
+### Flask { #flask }

 Flask — це «мікрофреймворк», він не включає інтеграцію бази даних, а також багато речей, які за замовчуванням є в Django.

@@ -64,7 +64,7 @@ Flask — це «мікрофреймворк», він не включає ін

 ///

-### Requests
+### Requests { #requests }

 **FastAPI** насправді не є альтернативою **Requests**. Сфера їх застосування дуже різна.

@@ -88,25 +88,25 @@ Requests мають дуже простий та інтуїтивно зрозу
 response = requests.get("http://example.com/some/url")
 ```

-Відповідна операція *роуту* API FastAPI може виглядати так:
+Відповідна операція шляху API FastAPI може виглядати так:

 ```Python hl_lines="1"
 [USER_REDACTED].get("/some/url")
 def read_url():
-     return {"message": "[NAME_REDACTED]"}
+    return {"message": "[NAME_REDACTED]"}
 ```

 Зверніть увагу на схожість у `requests.get(...)` і `[USER_REDACTED].get(...)`.

 /// check | Надихнуло **FastAPI** на

 * Майте простий та інтуїтивно зрозумілий API.
- * Використовуйте імена (операції) методів HTTP безпосередньо, простим та інтуїтивно зрозумілим способом.
- * Розумні параметри за замовчуванням, але потужні налаштування.
+* Використовуйте імена (операції) методів HTTP безпосередньо, простим та інтуїтивно зрозумілим способом.
+* Розумні параметри за замовчуванням, але потужні налаштування.

 ///

-### Swagger / OpenAPI
+### Swagger / OpenAPI { #swagger-openapi }

 Головною функцією, яку я хотів від Django REST Framework, була автоматична API документація.

@@ -124,18 +124,18 @@ def read_url():

  Інтегрувати інструменти інтерфейсу на основі стандартів:

- * Інтерфейс Swagger
- * ReDoc
+* Інтерфейс Swagger
+* ReDoc

  Ці два було обрано через те, що вони досить популярні та стабільні, але, виконавши швидкий пошук, ви можете знайти десятки додаткових альтернативних інтерфейсів для OpenAPI (які можна використовувати з **FastAPI**).

 ///

-### Фреймворки REST для Flask
+### Фреймворки REST для Flask { #flask-rest-frameworks }

 Існує кілька фреймворків Flask REST, але, витративши час і роботу на їх дослідження, я виявив, що багато з них припинено або залишено, з кількома постійними проблемами, які зробили їх непридатними.

-### Marshmallow
+### Marshmallow { #marshmallow }

 Однією з головних функцій, необхідних для систем API, є "серіалізація", яка бере дані з коду (Python) і перетворює їх на щось, що можна надіслати через мережу. Наприклад, перетворення об’єкта, що містить дані з бази даних, на об’єкт JSON. Перетворення об’єктів `datetime` на строки тощо.

@@ -153,7 +153,7 @@ Marshmallow створено для забезпечення цих функці

 ///

-### Webargs
+### Webargs { #webargs }

 Іншою важливою функцією, необхідною для API, є аналіз даних із вхідних запитів.

@@ -175,7 +175,7 @@ Webargs був створений тими ж розробниками Marshmall

 ///

-### APISpec
+### APISpec { #apispec }

 Marshmallow і Webargs забезпечують перевірку, аналіз і серіалізацію як плагіни.

@@ -205,7 +205,7 @@ APISpec був створений тими ж розробниками Marshmall

 ///

-### Flask-apispec
+### Flask-apispec { #flask-apispec }

 Це плагін Flask, який об’єднує Webargs, Marshmallow і APISpec.

@@ -237,13 +237,13 @@ Flask-apispec був створений тими ж розробниками Mar

 ///

-### NestJS (та Angular)
+### NestJS (та Angular) { #nestjs-and-angular }

 Це навіть не Python, NestJS — це фреймворк [NAME_REDACTED] (TypeScript), натхненний Angular.

 Це досягає чогось подібного до того, що можна зробити з Flask-apispec.

-Він має інтегровану систему впровадження залежностей, натхненну Angular two. Він потребує попередньої реєстрації «injectables» (як і всі інші системи впровадження залежностей, які я знаю), тому це збільшує багатослівність та повторення коду.
+Він має інтегровану систему впровадження залежностей, натхненну Angular 2. Він потребує попередньої реєстрації «injectables» (як і всі інші системи впровадження залежностей, які я знаю), тому це збільшує багатослівність та повторення коду.

 Оскільки параметри описані за допомогою типів TypeScript (подібно до підказок типу Python), підтримка редактора досить хороша.

@@ -259,7 +259,7 @@ Flask-apispec був створений тими ж розробниками Mar

 ///

-### Sanic
+### Sanic { #sanic }

 Це був один із перших надзвичайно швидких фреймворків Python на основі `asyncio`. Він був дуже схожий на Flask.

@@ -279,7 +279,7 @@ Flask-apispec був створений тими ж розробниками Mar

 ///

-### Falcon
+### Falcon { #falcon }

 Falcon — ще один високопродуктивний фреймворк Python, він розроблений як мінімальний і працює як основа інших фреймворків, таких як Hug.

@@ -297,7 +297,7 @@ Falcon — ще один високопродуктивний фреймворк

 ///

-### Molten
+### Molten { #molten }

 Я відкрив для себе Molten на перших етапах створення **FastAPI**. І він має досить схожі ідеї:

@@ -321,7 +321,7 @@ Falcon — ще один високопродуктивний фреймворк

 ///

-### Hug
+### Hug { #hug }

 Hug був одним із перших фреймворків, який реалізував оголошення типів параметрів API за допомогою підказок типу Python. Це була чудова ідея, яка надихнула інші інструменти зробити те саме.

@@ -351,7 +351,7 @@ Hug надихнув частину APIStar і був одним із найбі

 ///

-### APIStar (<= 0,5)
+### APIStar (<= 0,5) { #apistar-0-5 }

 Безпосередньо перед тим, як вирішити створити **FastAPI**, я знайшов сервер **APIStar**. Він мав майже все, що я шукав, і мав чудовий дизайн.

@@ -379,9 +379,9 @@ Hug надихнув частину APIStar і був одним із найбі

 APIStar створив Том Крісті. Той самий хлопець, який створив:

- * Django REST Framework
- * Starlette (на якому базується **FastAPI**)
- * Uvicorn (використовується Starlette і **FastAPI**)
+* Django REST Framework
+* Starlette (на якому базується **FastAPI**)
+* Uvicorn (використовується Starlette і **FastAPI**)

 ///

@@ -393,13 +393,15 @@ APIStar створив Том Крісті. Той самий хлопець, я

  І після тривалого пошуку подібної структури та тестування багатьох різних альтернатив, APIStar став найкращим доступним варіантом.

- Потім APIStar перестав існувати як сервер, і було створено Starlette, який став новою кращою основою для такої системи. Це стало останнім джерелом натхнення для створення **FastAPI**. Я вважаю **FastAPI** «духовним спадкоємцем» APIStar, удосконалюючи та розширюючи функції, систему введення тексту та інші частини на основі досвіду, отриманого від усіх цих попередніх інструментів.
+ Потім APIStar перестав існувати як сервер, і було створено Starlette, який став новою кращою основою для такої системи. Це стало останнім джерелом натхнення для створення **FastAPI**.
+
+ Я вважаю **FastAPI** «духовним спадкоємцем» APIStar, удосконалюючи та розширюючи функції, систему типізації та інші частини на основі досвіду, отриманого від усіх цих попередніх інструментів.

 ///

-## Використовується **FastAPI**
+## Використовується **FastAPI** { #used-by-fastapi }

-### Pydantic
+### Pydantic { #pydantic }

 Pydantic — це бібліотека для визначення перевірки даних, серіалізації та документації (за допомогою схеми JSON) на основі підказок типу Python.

@@ -415,9 +417,9 @@ Pydantic — це бібліотека для визначення переві

 ///

-### Starlette
+### Starlette { #starlette }

-Starlette — це легкий фреймворк/набір інструментів ASGI, який ідеально підходить для створення високопродуктивних asyncio сервісів.
+Starlette — це легкий фреймворк/набір інструментів ASGI, який ідеально підходить для створення високопродуктивних asyncio сервісів.

 Він дуже простий та інтуїтивно зрозумілий. Його розроблено таким чином, щоб його можна було легко розширювати та мати модульні компоненти.

@@ -460,7 +462,7 @@ ASGI — це новий «стандарт», який розробляєтьс

 ///

-### Uvicorn
+### Uvicorn { #uvicorn }

 Uvicorn — це блискавичний сервер ASGI, побудований на uvloop і httptools.

@@ -472,12 +474,12 @@ Uvicorn — це блискавичний сервер ASGI, побудован

 Основний веб-сервер для запуску програм **FastAPI**.

- Ви можете поєднати його з Gunicorn, щоб мати асинхронний багатопроцесний сервер.
+ Ви також можете використати параметр командного рядка `--workers`, щоб мати асинхронний багатопроцесний сервер.

  Додаткову інформацію див. у розділі [Розгортання](deployment/index.md){.internal-link target=_blank}.

 ///

-## Орієнтири та швидкість
+## Орієнтири та швидкість { #benchmarks-and-speed }

 Щоб зрозуміти, порівняти та побачити різницю між Uvicorn, Starlette і FastAPI, перегляньте розділ про [Бенчмарки](benchmarks.md){.internal-link target=_blank}.

@@ -1,83 +1,75 @@
-# FastAPI CLI
+# FastAPI CLI { #fastapi-cli }

-**FastAPI CLI** це програма командного рядка, яку Ви можете використовувати, щоб обслуговувати Ваш додаток FastAPI, керувати Вашими FastApi проектами, тощо.
+**FastAPI CLI** — це програма командного рядка, яку ви можете використовувати, щоб обслуговувати ваш застосунок FastAPI, керувати вашим проєктом FastAPI тощо.

-Коли Ви встановлюєте FastApi (тобто виконуєте `pip install "fastapi[standard]"`), Ви також встановлюєте пакунок `fastapi-cli`, цей пакунок надає команду `fastapi` в терміналі.
+Коли ви встановлюєте FastAPI (наприклад, за допомогою `pip install "fastapi[standard]"`), він включає пакет під назвою `fastapi-cli`, цей пакет надає команду `fastapi` у терміналі.

-Для запуску Вашого FastAPI проекту для розробки, Ви можете скористатись командою `fastapi dev`:
+Щоб запустити ваш застосунок FastAPI для розробки, ви можете використати команду `fastapi dev`:

 ```console
-$ <font color="#4E9A06">fastapi</font> dev <u style="text-decoration-style:single">main.py</u>
-<font color="#3465A4">INFO    </font> Using path <font color="#3465A4">main.py</font>
-<font color="#3465A4">INFO    </font> Resolved absolute path <font color="#75507B">/home/user/code/awesomeapp/</font><font color="#AD7FA8">main.py</font>
-<font color="#3465A4">INFO    </font> Searching for package file structure from directories with <font color="#3465A4">__init__.py</font> files
-<font color="#3465A4">INFO    </font> Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>
-
- ╭─ <font color="#8AE234"><b>Python module file</b></font> ─╮
- │                      │
- │  🐍 main.py          │
- │                      │
- ╰──────────────────────╯
-
-<font color="#3465A4">INFO    </font> Importing module <font color="#4E9A06">main</font>
-<font color="#3465A4">INFO    </font> Found importable FastAPI app
-
- ╭─ <font color="#8AE234"><b>[NAME_REDACTED] app</b></font> ─╮
- │                          │
- │  <span style="background-color:#272822"><font color="#FF4689">from</font></span><span style="background-color:#272822"><font color="#F8F8F2"> main </font></span><span style="background-color:#272822"><font color="#FF4689">import</font></span><span style="background-color:#272822"><font color="#F8F8F2"> app</font></span><span style="background-color:#272822">  </span>  │
- │                          │
- ╰──────────────────────────╯
-
-<font color="#3465A4">INFO    </font> Using import string <font color="#8AE234"><b>main:app</b></font>
-
- <span style="background-color:#C4A000"><font color="#2E3436">╭────────── FastAPI CLI - Development mode ───────────╮</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│                                                     │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│  Serving at: http://127.0.0.1:8000                  │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│                                                     │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│  API docs: http://127.0.0.1:8000/docs               │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│                                                     │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│  Running in development mode, for production use:   │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│                                                     │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│  </font></span><span style="background-color:#C4A000"><font color="#555753"><b>fastapi run</b></font></span><span style="background-color:#C4A000"><font color="#2E3436">                                        │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">│                                                     │</font></span>
- <span style="background-color:#C4A000"><font color="#2E3436">╰─────────────────────────────────────────────────────╯</font></span>
-
-<font color="#4E9A06">INFO</font>:     Will watch for changes in these directories: ['/home/user/code/awesomeapp']
-<font color="#4E9A06">INFO</font>:     Uvicorn running on <b>http://127.0.0.1:8000</b> (Press CTRL+C to quit)
-<font color="#4E9A06">INFO</font>:     Started reloader process [<font color="#34E2E2"><b>2265862</b></font>] using <font color="#34E2E2"><b>WatchFiles</b></font>
-<font color="#4E9A06">INFO</font>:     Started server process [<font color="#06989A">2265873</font>]
-<font color="#4E9A06">INFO</font>:     Waiting for application startup.
-<font color="#4E9A06">INFO</font>:     Application startup complete.
+$ <font color="#4E9A06">fastapi</font> dev <u style="text-decoration-style:solid">main.py</u>
+
+  <span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span>  Starting development server 🚀
+
+             Searching for package file structure from directories with
+             <font color="#3465A4">__init__.py</font> files
+             Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>
+
+   <span style="background-color:#007166"><font color="#D3D7CF"> module </font></span>  🐍 main.py
+
+     <span style="background-color:#007166"><font color="#D3D7CF"> code </font></span>  Importing the FastAPI app object from the module with the
+             following code:
+
+             <u style="text-decoration-style:solid">from </u><u style="text-decoration-style:solid"><b>main</b></u><u style="text-decoration-style:solid"> import </u><u style="text-decoration-style:solid"><b>app</b></u>
+
+      <span style="background-color:#007166"><font color="#D3D7CF"> app </font></span>  Using import string: <font color="#3465A4">main:app</font>
+
+   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Server started at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
+   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Documentation at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>
+
+      <span style="background-color:#007166"><font color="#D3D7CF"> tip </font></span>  Running in development mode, for production use:
+             <b>fastapi run</b>
+
+             Logs:
+
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Will watch for changes in these directories:
+             <b>[</b><font color="#4E9A06">'/home/user/code/awesomeapp'</font><b>]</b>
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Uvicorn running on <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font> <b>(</b>Press CTRL+C to
+             quit<b>)</b>
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started reloader process <b>[</b><font color="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started server process <b>[</b><font color="#34E2E2"><b>383153</b></font><b>]</b>
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Waiting for application startup.
+     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Application startup complete.
 ```

-Програма командного рядка `fastapi` це **FastAPI CLI**.
+Програма командного рядка під назвою `fastapi` — це **FastAPI CLI**.

-FastAPI CLI приймає шлях до Вашої Python програми (напр. `main.py`) і автоматично виявляє екземпляр `FastAPI` (зазвичай названий `app`), обирає коректний процес імпорту, а потім обслуговує його.
+FastAPI CLI бере шлях до вашої Python-програми (наприклад, `main.py`) і автоматично виявляє екземпляр `FastAPI` (зазвичай з назвою `app`), визначає правильний процес імпорту, а потім обслуговує його.

-Натомість, для запуску у продакшн використовуйте `fastapi run`. 🚀
+Натомість, для продакшн ви використали б `fastapi run`. 🚀

-Всередині **FastAPI CLI** використовує Uvicorn, високопродуктивний, production-ready, ASGI cервер. 😎
+Внутрішньо **FastAPI CLI** використовує Uvicorn, високопродуктивний, production-ready, ASGI сервер. 😎

-## `fastapi dev`
+## `fastapi dev` { #fastapi-dev }

-Використання `fastapi dev` ініціює режим розробки.
+Запуск `fastapi dev` ініціює режим розробки.

-За замовчуванням, **автоматичне перезавантаження** увімкнене, автоматично перезавантажуючи сервер кожного разу, коли Ви змінюєте Ваш код. Це ресурсо-затратно, та може бути менш стабільним, ніж коли воно вимкнене. Ви повинні використовувати його тільки під час розробки. Воно також слухає IP-адресу `127.0.0.1`, що є IP Вашого девайсу для самостійної комунікації з самим собою (`localhost`).
+За замовчуванням **auto-reload** увімкнено, і сервер автоматично перезавантажується, коли ви вносите зміни у ваш код. Це ресурсоємно та може бути менш стабільним, ніж коли його вимкнено. Вам слід використовувати це лише для розробки. Також він слухає IP-адресу `127.0.0.1`, яка є IP-адресою для того, щоб ваша машина могла взаємодіяти лише сама з собою (`localhost`).

-## `fastapi run`
+## `fastapi run` { #fastapi-run }

-Виконання `fastapi run` запустить FastAPI у продакшн-режимі за замовчуванням.
+Виконання `fastapi run` за замовчуванням запускає FastAPI у продакшн-режимі.

-За замовчуванням, **автоматичне перезавантаження** вимкнене. Воно також прослуховує IP-адресу `0.0.0.0`, що означає всі доступні IP адреси, тим самим даючи змогу будь-кому комунікувати з девайсом. Так Ви зазвичай будете запускати його у продакшн, наприклад у контейнері.
+За замовчуванням **auto-reload** вимкнено. Також він слухає IP-адресу `0.0.0.0`, що означає всі доступні IP-адреси, таким чином він буде публічно доступним для будь-кого, хто може взаємодіяти з машиною. Зазвичай саме так ви запускатимете його в продакшн, наприклад у контейнері.

-В більшості випадків Ви можете (і маєте) мати "termination proxy", який обробляє HTTPS для Вас, це залежить від способу розгортання вашого додатку, Ваш провайдер може зробити це для Вас, або Вам потрібно налаштувати його самостійно.
+У більшості випадків ви (і вам слід) матимете «termination proxy», який обробляє HTTPS для вас зверху; це залежатиме від того, як ви розгортаєте ваш застосунок: ваш провайдер може зробити це за вас, або вам може знадобитися налаштувати це самостійно.

-/// tip
+/// tip | Порада

-Ви можете дізнатись більше про це у [документації про розгортування](deployment/index.md){.internal-link target=_blank}.
+Ви можете дізнатися більше про це в [документації з розгортання](deployment/index.md){.internal-link target=_blank}.

 ///

@@ -1,53 +1,55 @@
-# Функціональні можливості
+# Функціональні можливості { #features }

-## Функціональні можливості FastAPI
+## Функціональні можливості FastAPI { #fastapi-features }

 **FastAPI** надає вам такі можливості:

-### Використання відкритих стандартів
+### На основі відкритих стандартів { #based-on-open-standards }

 * OpenAPI для створення API, включаючи оголошення шляхів, операцій, параметрів, тіл запитів, безпеки тощо.
 * Автоматична документація моделей даних за допомогою JSON Schema (оскільки OpenAPI базується саме на JSON Schema).
 * Розроблено на основі цих стандартів після ретельного аналізу, а не як додатковий рівень поверх основної архітектури.
-* Це також дає змогу автоматично **генерувати код клієнта** багатьма мовами.
+* Це також дає змогу використовувати автоматичну **генерацію клієнтського коду** багатьма мовами.

-### Автоматична генерація документації
+### Автоматична документація { #automatic-docs }

-Інтерактивна документація API та вебінтерфейс для його дослідження. Оскільки фреймворк базується на OpenAPI, є кілька варіантів, два з яких включені за замовчуванням.
+Інтерактивна документація API та вебінтерфейси для його дослідження. Оскільки фреймворк базується на OpenAPI, є кілька варіантів, 2 з яких включені за замовчуванням.

-* Swagger UI — дозволяє інтерактивно переглядати API, викликати та тестувати його прямо у браузері.
+* Swagger UI — з інтерактивним дослідженням, викликом і тестуванням вашого API прямо з браузера.

 ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)

 * Альтернативна документація API за допомогою ReDoc.

 ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)

-### Тільки сучасний Python
+### Лише сучасний Python { #just-modern-python }

-FastAPI використовує стандартні **типи Python** (завдяки Pydantic). Вам не потрібно вивчати новий синтаксис — лише стандартний сучасний Python.
+Усе базується на стандартних оголошеннях **типів Python** (завдяки Pydantic). Жодного нового синтаксису для вивчення. Лише стандартний сучасний Python.

-Якщо вам потрібне коротке нагадування про використання типів у Python (навіть якщо ви не використовуєте FastAPI), перегляньте короткий підручник: [Вступ до типів Python](python-types.md){.internal-link target=_blank}.
+Якщо вам потрібно 2-хвилинне нагадування про те, як використовувати типи Python (навіть якщо ви не використовуєте FastAPI), перегляньте короткий підручник: [Типи Python](python-types.md){.internal-link target=_blank}.

-Ось приклад стандартного Python-коду з типами:
+Ви пишете стандартний Python з типами:

 ```Python
 from datetime import date
+
 from pydantic import BaseModel

-# Оголошення змінної як str
-# з підтримкою автодоповнення у редакторі
+# Оголосіть змінну як str
+# та отримайте підтримку редактора всередині функції
 def main(user_id: str):
     return user_id

+
 # Модель Pydantic
 class User(BaseModel):
     id: int
     name: str
     joined: date
 ```

-Приклад використання цієї моделі:
+Далі це можна використовувати так:

 ```Python
 my_user: User = User(id=3, name="[NAME_REDACTED]", joined="2018-07-19")
@@ -65,19 +67,21 @@ my_second_user: User = User(**second_user_data)

 `**second_user_data` означає:

-Передати ключі та значення словника `second_user_data` як аргументи у вигляді "ключ-значення", еквівалентно `User(id=4, name="Mary", joined="2018-11-30")`.
+Передати ключі та значення словника `second_user_data` безпосередньо як аргументи у вигляді «ключ-значення», еквівалентно: `User(id=4, name="Mary", joined="2018-11-30")`

 ///

-### Підтримка редакторів (IDE)
+### Підтримка редакторів (IDE) { #editor-support }

-Фреймворк спроєктований так, щоб бути легким і інтуїтивно зрозумілим. Усі рішення тестувалися у різних редакторах ще до початку розробки, щоб забезпечити найкращий досвід програмування.
+Увесь фреймворк спроєктовано так, щоб ним було легко та інтуїтивно користуватися; усі рішення тестувалися у кількох редакторах ще до початку розробки, щоб забезпечити найкращий досвід розробки.

-За результатами опитувань розробників Python однією з найпопулярніших функцій є "автодоповнення".
+З опитувань розробників Python зрозуміло що однією з найуживаніших функцій є «автодоповнення».

-**FastAPI** повністю підтримує автодоповнення у всіх місцях, тому вам рідко доведеться повертатися до документації.
+Увесь фреймворк **FastAPI** побудований так, щоб це забезпечити. Автодоповнення працює всюди.

-Приклад автодоповнення у редакторах:
+Вам рідко доведеться повертатися до документації.
+
+Ось як ваш редактор може вам допомогти:

 * у [NAME_REDACTED]:

@@ -87,73 +91,81 @@ my_second_user: User = User(**second_user_data)

 ![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png)

-### Короткий код
-FastAPI має розумні налаштування **за замовчуванням**, але всі параметри можна налаштовувати відповідно до ваших потреб. Однак за замовчуванням все "просто працює".
+Ви отримаєте автодоповнення в коді, який раніше могли вважати навіть неможливим. Наприклад, для ключа `price` всередині JSON body (який міг бути вкладеним), що надходить із запиту.
+
+Більше не доведеться вводити неправильні назви ключів, постійно повертатися до документації або прокручувати вгору-вниз, щоб знайти, чи ви зрештою використали `username` чи `user_name`.
+
+### Короткий код { #short }
+
+FastAPI має розумні **налаштування за замовчуванням** для всього, з можливістю конфігурації всюди. Усі параметри можна точно налаштувати під ваші потреби та визначити потрібний вам API.
+
+Але за замовчуванням усе **«просто працює»**.
+
+### Валідація { #validation }

-### Валідація
 * Підтримка валідації для більшості (або всіх?) **типів даних Python**, зокрема:
     * JSON-об'єктів (`dict`).
-    * JSON-списків (`list`) з визначенням типів елементів.
-    * Рядків (`str`) із мінімальною та максимальною довжиною.
-    * Чисел (`int`, `float`) з обмеженнями мінімальних та максимальних значень тощо.
+    * JSON-масивів (`list`) із визначенням типів елементів.
+    * Полів-рядків (`str`) із визначенням мінімальної та максимальної довжини.
+    * Чисел (`int`, `float`) з мінімальними та максимальними значеннями тощо.

-* Валідація складніших типів, таких як:
+* Валідація для більш екзотичних типів, як-от:
     * URL.
     * Email.
     * UUID.
     * ...та інші.

 Уся валідація виконується через надійний та перевірений **Pydantic**.

-### Безпека та автентифікація
+### Безпека та автентифікація { #security-and-authentication }

-**FastAPI** підтримує вбудовану автентифікацію та авторизацію, без прив’язки до конкретних баз даних чи моделей даних.
+Інтегровані безпека та автентифікація. Без жодних компромісів із базами даних чи моделями даних.

-Підтримуються всі схеми безпеки OpenAPI, включаючи:
+Підтримуються всі схеми безпеки, визначені в OpenAPI, включно з:

 * HTTP Basic.
-* **OAuth2** (також із підтримкою **JWT-токенів**). Див. підручник: [OAuth2 із JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
+* **OAuth2** (також із підтримкою **JWT tokens**). Перегляньте підручник: [OAuth2 із JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
 * Ключі API в:
     * Заголовках.
     * Параметрах запиту.
     * Cookies тощо.

-А також усі можливості безпеки від Starlette (зокрема **сесійні cookies**).
+А також усі можливості безпеки від Starlette (зокрема **session cookies**).

-Усі вони створені як багаторазові інструменти та компоненти, які легко інтегруються з вашими системами, сховищами даних, реляційними та NoSQL базами даних тощо.
+Усе це зроблено як багаторазові інструменти та компоненти, які легко інтегруються з вашими системами, сховищами даних, реляційними та NoSQL базами даних тощо.

-### Впровадження залежностей
+### Впровадження залежностей { #dependency-injection }

-**FastAPI** містить надзвичайно просту у використанні, але потужну систему впровадження залежностей.
+FastAPI містить надзвичайно просту у використанні, але надзвичайно потужну систему [NAME_REDACTED].

-* Залежності можуть мати власні залежності, утворюючи ієрархію або **"граф залежностей"**.
-* Усі залежності автоматично керуються фреймворком.
-* Усі залежності можуть отримувати дані з запитів і розширювати **обмеження операції за шляхом** та автоматичну документацію.
-* **Автоматична валідація** навіть для параметрів *операцій шляху*, визначених у залежностях.
-* Підтримка складних систем автентифікації користувачів, **з'єднань із базами даних** тощо.
-* **Жодних обмежень** щодо використання баз даних, фронтендів тощо, але водночас проста інтеграція з усіма ними.
+* Навіть залежності можуть мати власні залежності, утворюючи ієрархію або **«граф» залежностей**.
+* Усе **автоматично обробляється** фреймворком.
+* Усі залежності можуть вимагати дані із запитів і **розширювати обмеження операції шляху** та автоматичну документацію.
+* **Автоматична валідація** навіть для параметрів *операції шляху*, визначених у залежностях.
+* Підтримка складних систем автентифікації користувачів, **підключень до баз даних** тощо.
+* **Жодних компромісів** із базами даних, фронтендами тощо. Але проста інтеграція з усіма ними.

-### Немає обмежень на "плагіни"
+### Необмежені «плагіни» { #unlimited-plug-ins }

-Або іншими словами, вони не потрібні – просто імпортуйте та використовуйте необхідний код.
+Інакше кажучи, вони не потрібні — імпортуйте та використовуйте код, який вам потрібен.

-Будь-яка інтеграція спроєктована настільки просто (з використанням залежностей), що ви можете створити "плагін" для свого застосунку всього у 2 рядках коду, використовуючи ту саму структуру та синтаксис, що й для ваших *операцій шляху*.
+Будь-яка інтеграція спроєктована так, щоб її було дуже просто використовувати (із залежностями), тож ви можете створити «плагін» для свого застосунку у 2 рядках коду, використовуючи ту саму структуру та синтаксис, що й для ваших *операцій шляху*.

-### Протестовано
+### Протестовано { #tested }

 * 100% покриття тестами.
 * 100% анотована типами кодова база.
-* Використовується у робочих середовищах.
+* Використовується в production-застосунках.

-## Можливості Starlette
+## Можливості Starlette { #starlette-features }

 **FastAPI** повністю сумісний із (та побудований на основі) Starlette. Тому будь-який додатковий код Starlette, який ви маєте, також працюватиме.

-**FastAPI** фактично є підкласом **Starlette**. Тому, якщо ви вже знайомі зі Starlette або використовуєте його, більшість функціональності працюватиме так само.
+`FastAPI` фактично є підкласом `Starlette`. Тому, якщо ви вже знайомі зі Starlette або використовуєте його, більшість функціональності працюватиме так само.

-З **FastAPI** ви отримуєте всі можливості **Starlette** (адже FastAPI — це, по суті, Starlette на стероїдах):
+З **FastAPI** ви отримуєте всі можливості **Starlette** (адже FastAPI — це просто Starlette на стероїдах):

-* Разюча продуктивність. Це один із найшвидших фреймворків на Python, на рівні з **NodeJS** і **Go**.
+* Разюча продуктивність. Це один із найшвидших доступних Python-фреймворків, на рівні з **NodeJS** і **Go**.
 * Підтримка **WebSocket**.
 * Фонові задачі у процесі.
 * Події запуску та завершення роботи.
@@ -163,27 +175,27 @@ FastAPI має розумні налаштування **за замовчува
 * 100% покриття тестами.
 * 100% анотована типами кодова база.

-## Можливості Pydantic
+## Можливості Pydantic { #pydantic-features }

 **FastAPI** повністю сумісний із (та побудований на основі) Pydantic. Тому будь-який додатковий код Pydantic, який ви маєте, також працюватиме.

-Включаючи зовнішні бібліотеки, побудовані також на Pydantic, такі як ORM, ODM для баз даних.
+Включно із зовнішніми бібліотеками, які також базуються на Pydantic, як-от ORM-и, ODM-и для баз даних.

-Це також означає, що в багатьох випадках ви можете передати той самий об'єкт, який отримуєте з запиту, **безпосередньо в базу даних**, оскільки все автоматично перевіряється.
+Це також означає, що в багатьох випадках ви можете передати той самий об'єкт, який отримуєте із запиту, **безпосередньо в базу даних**, оскільки все автоматично перевіряється.

-Те ж саме відбувається й у зворотному напрямку — у багатьох випадках ви можете просто передати об'єкт, який отримуєте з бази даних, **безпосередньо клієнту**.
+Те саме застосовується й у зворотному напрямку — у багатьох випадках ви можете просто передати об'єкт, який отримуєте з бази даних, **безпосередньо клієнту**.

 З **FastAPI** ви отримуєте всі можливості **Pydantic** (адже FastAPI базується на Pydantic для обробки всіх даних):

-* **Ніякої плутанини** :
-    * Не потрібно вчити нову мову для визначення схем.
+* **Ніякої плутанини**:
+    * Не потрібно вчити нову мікромову для визначення схем.
     * Якщо ви знаєте типи Python, ви знаєте, як використовувати Pydantic.
-* Легко працює з вашим **IDE/лінтером/мозком**:
-    * Оскільки структури даних Pydantic є просто екземплярами класів, які ви визначаєте; автодоповнення, лінтинг, mypy і ваша інтуїція повинні добре працювати з вашими перевіреними даними.
-* Валідація **складних структур**:
-    * Використання ієрархічних моделей Pydantic. Python `typing`, `List` і `Dict` тощо.
-    * Валідатори дозволяють чітко і просто визначати, перевіряти й документувати складні схеми даних у вигляді JSON-схеми.
-    * Ви можете мати глибоко **вкладені JSON об'єкти** та перевірити та анотувати їх всі.
+* Легко працює з вашим **IDE/linter/мозком**:
+    * Оскільки структури даних pydantic є просто екземплярами класів, які ви визначаєте; автодоповнення, лінтинг, mypy і ваша інтуїція повинні добре працювати з вашими перевіреними даними.
+* Валідує **складні структури**:
+    * Використання ієрархічних моделей Pydantic, Python `typing`’s `List` і `Dict` тощо.
+    * Валідатори дають змогу складні схеми даних чітко й просто визначати, перевіряти й документувати як JSON Schema.
+    * Ви можете мати глибоко **вкладені JSON** об'єкти, і всі вони будуть валідовані та анотовані.
 * **Розширюваність**:
-    * Pydantic дозволяє визначати користувацькі типи даних або розширювати валідацію методами в моделі декоратором `validator`.
+    * Pydantic дозволяє визначати користувацькі типи даних або ви можете розширити валідацію методами в моделі, позначеними декоратором validator.
 * 100% покриття тестами.

Some suggestions to revert obviously wrong changes made by LLM

Thank you! 🎉

```suggestion
/// check | Надихнуло **FastAPI** на
```

```suggestion
Однією з головних функцій, необхідних для систем API, є "<abbr title="також звана marshalling, conversion">серіалізація</abbr>", яка бере дані з коду (Python) і перетворює їх на щось, що можна надіслати через мережу. Наприклад, перетворення об’єкта, що містить дані з бази даних, на об’єкт JSON. Перетворення об’єктів `datetime` на строки тощо.
```

```suggestion
Але він був створений до того, як існували підказки типу Python. Отже, щоб визначити кожну <abbr title="визначення того, як дані повинні бути сформовані">схему</abbr>, вам потрібно використовувати спеціальні утиліти та класи, надані Marshmallow.
```

```suggestion
Іншою важливою функцією, необхідною для API, є <abbr title="читання та перетворення даних Python">аналіз</abbr> даних із вхідних запитів.
```

```suggestion
/// check | **FastAPI** використовує його для
```

```suggestion
/// check | **FastAPI** рекомендує це як
```

```suggestion
* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> для створення API, включаючи оголошення <abbr title="також відомі як: endpoints, маршрути">шляхів</abbr>, <abbr title="також відомі як HTTP-методи, наприклад, POST, GET, PUT, DELETE">операцій</abbr>, параметрів, тіл запитів, безпеки тощо.
```

```suggestion
* Підтримка **CORS**, **GZip**, статичних файлів, потокових відповідей.
* Підтримка **сесій** і **cookie**.
```