From 5e5e855d76e08a673912988e41edcdda950405b2 Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Mon, 18 May 2026 17:43:51 +0200 Subject: [PATCH 1/7] Enable Hindi language translation --- docs/en/mkdocs.yml | 2 ++ docs/hi/mkdocs.yml | 1 + pyproject.toml | 1 + scripts/docs.py | 1 + 4 files changed, 5 insertions(+) create mode 100644 docs/hi/mkdocs.yml diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml index bb67bca917..5eddc03796 100644 --- a/docs/en/mkdocs.yml +++ b/docs/en/mkdocs.yml @@ -347,6 +347,8 @@ extra: name: zh - 简体中文 - link: /zh-hant/ name: zh-hant - 繁體中文 + - link: /hi/ + name: hi - हिन्दी extra_css: - css/termynal.css - css/custom.css diff --git a/docs/hi/mkdocs.yml b/docs/hi/mkdocs.yml new file mode 100644 index 0000000000..de18856f44 --- /dev/null +++ b/docs/hi/mkdocs.yml @@ -0,0 +1 @@ +INHERIT: ../en/mkdocs.yml diff --git a/pyproject.toml b/pyproject.toml index 8b066c125e..c9ad24a6b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -354,6 +354,7 @@ extend-exclude = [ "docs/uk/", "docs/zh/", "docs/zh-hant/", + "docs/hi/", "htmlcov/", "scripts/general-llm-prompt.md", "scripts/tests/test_translation_fixer/test_complex_doc/", diff --git a/scripts/docs.py b/scripts/docs.py index c36f976d5f..e134ce80b2 100644 --- a/scripts/docs.py +++ b/scripts/docs.py @@ -32,6 +32,7 @@ SUPPORTED_LANGS = { "uk", "zh", "zh-hant", + "hi", } From b8965b767faa46f51b897fc06f6e73edf8497b19 Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Mon, 18 May 2026 17:44:19 +0200 Subject: [PATCH 2/7] Add initial `llm-prompt.md` --- docs/hi/llm-prompt.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/hi/llm-prompt.md diff --git a/docs/hi/llm-prompt.md b/docs/hi/llm-prompt.md new file mode 100644 index 0000000000..337ea38234 --- /dev/null +++ b/docs/hi/llm-prompt.md @@ -0,0 +1,5 @@ +### Target language + +Translate to Hindi (हिन्दी). + +Language code: hi. From 44063e3b67cf937752915e1791d5e917533c71ab Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Mon, 18 May 2026 18:00:05 +0200 Subject: [PATCH 3/7] Translate `_llm-test.md` and `translation-banner.md` --- docs/hi/docs/_llm-test.md | 503 +++++++++++++++++++++++++++++ docs/hi/docs/translation-banner.md | 11 + 2 files changed, 514 insertions(+) create mode 100644 docs/hi/docs/_llm-test.md create mode 100644 docs/hi/docs/translation-banner.md diff --git a/docs/hi/docs/_llm-test.md b/docs/hi/docs/_llm-test.md new file mode 100644 index 0000000000..ce55f9a27e --- /dev/null +++ b/docs/hi/docs/_llm-test.md @@ -0,0 +1,503 @@ +# LLM परीक्षण फ़ाइल { #llm-test-file } + +यह दस्तावेज़ यह परखता है कि LLM, जो डॉक्यूमेंटेशन का अनुवाद करता है, `scripts/translate.py` में दिए गए `general_prompt` और `docs/{language code}/llm-prompt.md` में दिए गए भाषा-विशिष्ट प्रॉम्प्ट को समझता है या नहीं। भाषा-विशिष्ट प्रॉम्प्ट को `general_prompt` के साथ जोड़ा जाता है। + +यहाँ जो परीक्षण जोड़े गए हैं, वे भाषा-विशिष्ट प्रॉम्प्ट के सभी डिज़ाइनर्स को दिखाई देंगे। + +उपयोग इस प्रकार करें: + +* एक भाषा-विशिष्ट प्रॉम्प्ट रखें - `docs/{language code}/llm-prompt.md`। +* इस दस्तावेज़ का अपने इच्छित लक्ष्य-भाषा में नया अनुवाद करें (उदाहरण के लिए `translate.py` के `translate-page` कमांड को देखें)। यह अनुवाद `docs/{language code}/docs/_llm-test.md` के अंतर्गत बना देगा। +* जाँचें कि अनुवाद में सब कुछ ठीक है। +* आवश्यकता होने पर, अपने भाषा-विशिष्ट प्रॉम्प्ट, जनरल प्रॉम्प्ट या अंग्रेज़ी दस्तावेज़ में सुधार करें। +* फिर अनुवाद में बचे हुए मुद्दों को हाथ से ठीक करें ताकि यह एक अच्छा अनुवाद बन जाए। +* दुबारा अनुवाद करें, इस बार अच्छा अनुवाद जगह पर रहते हुए। आदर्श परिणाम होगा कि LLM अब अनुवाद में कोई परिवर्तन न करे। इसका मतलब है कि जनरल प्रॉम्प्ट और आपका भाषा-विशिष्ट प्रॉम्प्ट जितने अच्छे हो सकते हैं उतने अच्छे हैं (कभी-कभी यह कुछ यादृच्छिक-से परिवर्तन कर देगा, कारण यह है कि [LLM नियतात्मक एल्गोरिथ्म नहीं हैं](https://doublespeak.chat/#/handbook#deterministic-output))। + +परीक्षण: + +## कोड स्निपेट्स { #code-snippets } + +//// tab | परीक्षण + +यह एक कोड स्निपेट है: `foo`। और यह एक और कोड स्निपेट है: `bar`। और एक और: `baz quux`। + +//// + +//// tab | जानकारी + +कोड स्निपेट्स की सामग्री को ज्यों का त्यों छोड़ देना चाहिए। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### Content of code snippets` को देखें। + +//// + +## उद्धरण { #quotes } + +//// tab | परीक्षण + +कल, मेरे दोस्त ने लिखा: "अगर आप 'गलत' को सही लिखते हैं, तो आपने उसे गलत लिखा है"। जिसके जवाब में मैंने कहा: "सही, लेकिन 'गलत' गलत है '"गलत"' नहीं"। + +/// note | टिप्पणी + +LLM संभवतः इसे गलत अनुवादित करेगा। दिलचस्प यह है कि पुनः-अनुवाद करने पर क्या यह ठीक किया हुआ अनुवाद बनाए रखता है। + +/// + +//// + +//// tab | जानकारी + +प्रॉम्प्ट डिज़ाइनर यह चुन सकते हैं कि वे साधारण कोट्स को टाइपोग्राफ़िक कोट्स में बदलना चाहते हैं या नहीं। उन्हें ज्यों का त्यों छोड़ना भी ठीक है। + +उदाहरण के लिए `docs/de/llm-prompt.md` में सेक्शन `### Quotes` देखें। + +//// + +## कोड स्निपेट्स में उद्धरण { #quotes-in-code-snippets } + +//// tab | परीक्षण + +`pip install "foo[bar]"` + +कोड स्निपेट्स में स्ट्रिंग लिटरल्स के उदाहरण: `"this"`, `'that'`. + +कोड स्निपेट्स में स्ट्रिंग लिटरल्स का एक कठिन उदाहरण: `f"I like {'oranges' if orange else "apples"}"` + +हार्डकोर: `Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"` + +//// + +//// tab | जानकारी + +... लेकिन, कोड स्निपेट्स के अंदर के उद्धरण ज्यों के त्यों रहने चाहिए। + +//// + +## कोड ब्लॉक्स { #code-blocks } + +//// tab | परीक्षण + +एक Bash कोड उदाहरण... + +```bash +# ब्रह्मांड के लिए अभिवादन प्रिंट करें +echo "Hello universe" +``` + +...और एक कंसोल कोड उदाहरण... + +```console +$ fastapi run main.py + FastAPI Starting server + Searching for package file structure +``` + +...और एक अन्य कंसोल कोड उदाहरण... + +```console +// "Code" नाम की डायरेक्टरी बनाएँ +$ mkdir code +// उस डायरेक्टरी में जाएँ +$ cd code +``` + +...और एक Python कोड उदाहरण... + +```Python +wont_work() # यह काम नहीं करेगा 😱 +works(foo="bar") # यह काम करता है 🎉 +``` + +...और बस इतना ही। + +//// + +//// tab | जानकारी + +कोड ब्लॉक्स के अंदर के कोड में बदलाव नहीं होना चाहिए, सिवाय टिप्पणियों (comments) के। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### Content of code blocks` को देखें। + +//// + +## टैब और रंगीन बॉक्स { #tabs-and-colored-boxes } + +//// tab | परीक्षण + +/// info | जानकारी +कुछ पाठ +/// + +/// note | टिप्पणी +कुछ पाठ +/// + +/// note | तकनीकी विवरण +कुछ पाठ +/// + +/// check | जांच +कुछ पाठ +/// + +/// tip | सुझाव +कुछ पाठ +/// + +/// warning | चेतावनी +कुछ पाठ +/// + +/// danger | खतरा +कुछ पाठ +/// + +//// + +//// tab | जानकारी + +टैब और `Info`/`Note`/`Warning`/आदि ब्लॉक्स में उनके शीर्षक का अनुवाद ऊर्ध्वाधर रेखा (`|`) के बाद जोड़ा जाना चाहिए। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### Special blocks` और `### Tab blocks` देखें। + +//// + +## वेब और आंतरिक लिंक { #web-and-internal-links } + +//// tab | परीक्षण + +लिंक का टेक्स्ट अनुवादित होना चाहिए, लिंक का पता अपरिवर्तित रहे: + +* [ऊपर दिए गए शीर्षक का लिंक](#code-snippets) +* [आंतरिक लिंक](index.md#installation) +* [बाहरी लिंक](https://sqlmodel.tiangolo.com/) +* [एक स्टाइल का लिंक](https://fastapi.tiangolo.com/css/styles.css) +* [एक स्क्रिप्ट का लिंक](https://fastapi.tiangolo.com/js/logic.js) +* [एक छवि का लिंक](https://fastapi.tiangolo.com/img/foo.jpg) + +लिंक का टेक्स्ट अनुवादित होना चाहिए, लिंक का पता अनुवाद की ओर इशारा करना चाहिए: + +* [FastAPI लिंक](https://fastapi.tiangolo.com/hi/) + +//// + +//// tab | जानकारी + +लिंक अनुवादित होने चाहिए, लेकिन उनके पते अपरिवर्तित रहें। अपवाद है FastAPI डॉक्यूमेंटेशन के पेजों के पूर्ण (absolute) लिंक। उस स्थिति में लिंक अनुवाद की ओर इशारा करना चाहिए। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### Links` देखें। + +//// + +## HTML "abbr" एलिमेंट्स { #html-abbr-elements } + +//// tab | परीक्षण + +यहाँ HTML "abbr" एलिमेंट्स में लिपटी कुछ चीज़ें हैं (कुछ गढ़ी हुई भी): + +### abbr एक पूरा वाक्यांश देता है { #the-abbr-gives-a-full-phrase } + +* GTD +* lt +* XWT +* PSGI + +### abbr एक पूरा वाक्यांश और उसका स्पष्टीकरण देता है { #the-abbr-gives-a-full-phrase-and-an-explanation } + +* MDN +* I/O. + +//// + +//// tab | जानकारी + +"abbr" एलिमेंट्स के "title" ऐट्रिब्यूट्स का अनुवाद कुछ विशिष्ट निर्देशों का पालन करते हुए किया जाता है। + +अनुवाद अपने स्वयं के "abbr" एलिमेंट्स जोड़ सकते हैं जिन्हें LLM को हटाना नहीं चाहिए। जैसे अंग्रेज़ी शब्दों को समझाने के लिए। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### HTML abbr elements` देखें। + +//// + +## HTML "dfn" एलिमेंट्स { #html-dfn-elements } + +* क्लस्टर +* डीप लर्निंग + +## शीर्षक { #headings } + +//// tab | परीक्षण + +### एक वेबऐप विकसित करें - एक ट्यूटोरियल { #develop-a-webapp-a-tutorial } + +नमस्ते। + +### टाइप हिंट्स और -एनोटेशन्स { #type-hints-and-annotations } + +फिर से नमस्ते। + +### सुपर- और सबक्लासेज़ { #super-and-subclasses } + +फिर से नमस्ते। + +//// + +//// tab | जानकारी + +शीर्षकों के लिए एकमात्र कड़ा नियम यह है कि LLM कर्ली ब्रैकेट्स के अंदर के हैश-पार्ट को अपरिवर्तित छोड़े, जिससे लिंक न टूटें। + +`scripts/translate.py` में जनरल प्रॉम्प्ट के सेक्शन `### Headings` देखें। + +कुछ भाषा-विशिष्ट निर्देशों के लिए, जैसे `docs/de/llm-prompt.md` में सेक्शन `### Headings` देखें। + +//// + +## डॉक्स में प्रयुक्त शब्द { #terms-used-in-the-docs } + +//// tab | परीक्षण + +* आप +* आपका + +* उदा. +* आदि + +* `foo` एक `int` के रूप में +* `bar` एक `str` के रूप में +* `baz` एक `list` के रूप में + +* ट्यूटोरियल - उपयोगकर्ता गाइड +* उन्नत उपयोगकर्ता गाइड +* SQLModel डॉक्स +* API डॉक्स +* स्वचालित डॉक्स + +* डेटा साइंस +* डीप लर्निंग +* मशीन लर्निंग +* डिपेंडेंसी इंजेक्शन +* HTTP बेसिक ऑथेंटिकेशन +* HTTP डाइजेस्ट +* ISO फ़ॉरमैट +* JSON Schema मानक +* JSON स्कीमा +* स्कीमा परिभाषा +* पासवर्ड फ्लो +* मोबाइल + +* अप्रचलित +* डिज़ाइन किया गया +* अमान्य +* तुरंत +* मानक +* डिफ़ॉल्ट +* केस-संवेदी +* केस-असंवेदी + +* एप्लिकेशन को सर्व करना +* पेज को सर्व करना + +* ऐप +* एप्लिकेशन + +* रिक्वेस्ट +* रिस्पांस +* त्रुटि रिस्पांस + +* पाथ ऑपरेशन +* पाथ ऑपरेशन डेकोरेटर +* पाथ ऑपरेशन फ़ंक्शन + +* बॉडी +* रिक्वेस्ट बॉडी +* रिस्पांस बॉडी +* JSON बॉडी +* फॉर्म बॉडी +* फ़ाइल बॉडी +* फ़ंक्शन बॉडी + +* पैरामीटर +* बॉडी पैरामीटर +* पाथ पैरामीटर +* क्वेरी पैरामीटर +* कुकी पैरामीटर +* हेडर पैरामीटर +* फॉर्म पैरामीटर +* फ़ंक्शन पैरामीटर + +* इवेंट +* स्टार्टअप इवेंट +* सर्वर का स्टार्टअप +* शटडाउन इवेंट +* लाइफस्पैन इवेंट + +* हैंडलर +* इवेंट हैंडलर +* एक्सेप्शन हैंडलर +* हैंडल करना + +* मॉडल +* Pydantic मॉडल +* डेटा मॉडल +* डेटाबेस मॉडल +* फॉर्म मॉडल +* मॉडल ऑब्जेक्ट + +* क्लास +* बेस क्लास +* पैरेंट क्लास +* सबक्लास +* चाइल्ड क्लास +* सिब्लिंग क्लास +* क्लास मेथड + +* हेडर +* हेडर्स +* ऑथराइज़ेशन हेडर +* `Authorization` हेडर +* फॉरवर्डेड हेडर + +* डिपेंडेंसी इंजेक्शन सिस्टम +* डिपेंडेंसी +* डिपेंडेबल +* डिपेन्डन्ट + +* I/O बाउंड +* CPU बाउंड +* समकालिकता +* समान्तरता +* मल्टीप्रोसेसिंग + +* env var +* पर्यावरण चर +* `PATH` +* `PATH` वेरिएबल + +* प्रमाणीकरण +* प्रमाणीकरण प्रदाता +* अधिकारीकरण +* अधिकारीकरण फॉर्म +* अधिकारीकरण प्रदाता +* उपयोगकर्ता प्रमाणीकरण करता है +* सिस्टम उपयोगकर्ता का प्रमाणीकरण करता है + +* CLI +* कमांड लाइन इंटरफेस + +* सर्वर +* क्लाइंट + +* क्लाउड प्रदाता +* क्लाउड सेवा + +* विकास +* विकास चरण + +* dict +* डिक्शनरी +* एन्युमरेशन +* एनम +* एनम सदस्य + +* एन्कोडर +* डीकोडर +* एन्कोड करना +* डीकोड करना + +* एक्सेप्शन +* रेज़ करना + +* एक्सप्रेशन +* स्टेटमेंट + +* फ्रंटएंड +* बैकएंड + +* GitHub चर्चा +* GitHub इश्यू + +* प्रदर्शन +* प्रदर्शन अनुकूलन + +* रिटर्न टाइप +* रिटर्न वैल्यू + +* सुरक्षा +* सुरक्षा स्कीम + +* टास्क +* बैकग्राउंड टास्क +* टास्क फ़ंक्शन + +* टेम्पलेट +* टेम्पलेट इंजन + +* टाइप एनोटेशन +* टाइप हिंट + +* सर्वर वर्कर +* Uvicorn वर्कर +* Gunicorn Worker +* वर्कर प्रोसेस +* वर्कर क्लास +* वर्कलोड + +* डिप्लॉयमेंट +* डिप्लॉय करना + +* SDK +* सॉफ़्टवेयर डेवलपमेंट किट + +* `APIRouter` +* `requirements.txt` +* Bearer Token +* ब्रेकिंग चेंज +* बग +* बटन +* कॉल करने योग्य +* कोड +* कमिट +* कॉन्टेक्स्ट मैनेजर +* कोरूटीन +* डेटाबेस सेशन +* डिस्क +* डोमेन +* इंजन +* नकली X +* HTTP GET मेथड +* आइटम +* लाइब्रेरी +* लाइफस्पैन +* लॉक +* मिडलवेयर +* मोबाइल एप्लिकेशन +* मॉड्यूल +* माउंटिंग +* नेटवर्क +* ओरिजिन +* ओवरराइड +* पेलोड +* प्रोसेसर +* प्रॉपर्टी +* प्रॉक्सी +* पुल रिक्वेस्ट +* क्वेरी +* RAM +* रिमोट मशीन +* स्टेटस कोड +* स्ट्रिंग +* टैग +* वेब फ़्रेमवर्क +* वाइल्डकार्ड +* वापस करना +* सत्यापित करना + +//// + +//// tab | जानकारी + +यह डॉक्स में दिखने वाले (ज़्यादातर) तकनीकी शब्दों की न तो पूर्ण और न ही मानक सूची है। यह प्रॉम्प्ट डिज़ाइनर को यह समझने में मदद कर सकती है कि किन शब्दों के लिए LLM को सहायक निर्देशों की ज़रूरत है। उदाहरण के लिए जब यह एक अच्छे अनुवाद को कमतर अनुवाद में वापस बदल देता है। या जब इसे आपकी भाषा में किसी शब्द का रूपांतरण/विभक्ति करने में समस्या होती है। + +उदाहरण के लिए `docs/de/llm-prompt.md` में सेक्शन `### List of English terms and their preferred German translations` देखें। + +//// diff --git a/docs/hi/docs/translation-banner.md b/docs/hi/docs/translation-banner.md new file mode 100644 index 0000000000..af9fedda8a --- /dev/null +++ b/docs/hi/docs/translation-banner.md @@ -0,0 +1,11 @@ +/// details | 🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद + +यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝 + +इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖 + +आप [हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके](https://fastapi.tiangolo.com/hi/contributing/#translations) इस अनुवाद को बेहतर बना सकते हैं। + +[अंग्रेज़ी संस्करण](ENGLISH_VERSION_URL) + +/// From c63c3f2fef01ac8f335c063e0981fbc070ca5c7b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 18 May 2026 16:19:32 +0000 Subject: [PATCH 4/7] =?UTF-8?q?=F0=9F=8E=A8=20Auto=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en/mkdocs.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml index 5eddc03796..1b872271ba 100644 --- a/docs/en/mkdocs.yml +++ b/docs/en/mkdocs.yml @@ -290,10 +290,7 @@ markdown_extensions: format: !!python/name:pymdownx.superfences.fence_code_format '' pymdownx.tilde: null pymdownx.blocks.admonition: - # TODO: remove types section (with custom types) once translations are migrated to - # not use custom types too types: - # Default types - note - attention - caution @@ -302,7 +299,6 @@ markdown_extensions: - tip - hint - warning - # Custom types - info - check pymdownx.blocks.details: null @@ -331,6 +327,8 @@ extra: name: es - español - link: /fr/ name: fr - français + - link: /hi/ + name: hi - हिन्दी - link: /ja/ name: ja - 日本語 - link: /ko/ @@ -347,8 +345,6 @@ extra: name: zh - 简体中文 - link: /zh-hant/ name: zh-hant - 繁體中文 - - link: /hi/ - name: hi - हिन्दी extra_css: - css/termynal.css - css/custom.css From 227b6e02bca46a560bf3ecdc717df4adde515ffd Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Mon, 18 May 2026 18:39:18 +0200 Subject: [PATCH 5/7] Translate `index.md` --- docs/hi/docs/index.md | 580 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 580 insertions(+) create mode 100644 docs/hi/docs/index.md diff --git a/docs/hi/docs/index.md b/docs/hi/docs/index.md new file mode 100644 index 0000000000..431f9dee35 --- /dev/null +++ b/docs/hi/docs/index.md @@ -0,0 +1,580 @@ +# FastAPI { #fastapi } + + + +

+ FastAPI +

+

+ FastAPI फ़्रेमवर्क, उच्च प्रदर्शन, सीखने में आसान, कोड लिखने में तेज़, प्रोडक्शन के लिए तैयार +

+

+ + टेस्ट + + + कवरेज + + + पैकेज संस्करण + + + समर्थित Python संस्करण + +

+ +--- + +दस्तावेज़: [https://fastapi.tiangolo.com](https://fastapi.tiangolo.com/hi) + +स्रोत कोड: [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi) + +--- + +FastAPI एक आधुनिक, तेज़ (उच्च-प्रदर्शन) वेब फ़्रेमवर्क है जो मानक Python type hints के आधार पर Python से APIs बनाने के लिए है। + +मुख्य विशेषताएँ: + +* तेज़: बहुत उच्च प्रदर्शन, **NodeJS** और **Go** के समकक्ष (Starlette और Pydantic की बदौलत)। [उपलब्ध सबसे तेज़ Python फ़्रेमवर्क्स में से एक](#performance)। +* कोड लिखने में तेज़: फ़ीचर्स विकसित करने की गति लगभग 200% से 300% तक बढ़ाएँ। * +* कम बग्स: मानवीय (डेवलपर) त्रुटियों में लगभग 40% की कमी। * +* सहज: बेहतरीन एडिटर सपोर्ट। हर जगह ऑटो-कम्प्लीट। डिबगिंग में कम समय। +* आसान: इस्तेमाल और सीखने में आसान। दस्तावेज़ पढ़ने में कम समय। +* संक्षिप्त: कोड डुप्लीकेशन को न्यूनतम करें। प्रत्येक parameter declaration से कई फ़ीचर्स। कम बग्स। +* मजबूत: प्रोडक्शन-रेडी कोड प्राप्त करें। स्वतः इंटरैक्टिव दस्तावेज़ीकरण के साथ। +* मानकों पर आधारित: APIs के खुले मानकों पर आधारित (और पूर्णतः अनुकूल): [OpenAPI](https://github.com/OAI/OpenAPI-Specification) (जिसे पहले Swagger कहा जाता था) और [JSON Schema](https://json-schema.org/)। + +* आंतरिक डेवलपमेंट टीम द्वारा प्रोडक्शन ऐप्स बनाते समय किए गए परीक्षणों के आधार पर अनुमान। + +## प्रायोजक { #sponsors } + + + +### कीस्टोन प्रायोजक { #keystone-sponsor } + +
+{% for sponsor in sponsors.keystone -%} +{{ sponsor.title }} +{% endfor -%} +
+ +### गोल्ड प्रायोजक { #gold-sponsors } + +
+{% for sponsor in sponsors.gold -%} +{{ sponsor.title }} +{% endfor -%} +
+ +### सिल्वर प्रायोजक { #silver-sponsors } + +
+{% for sponsor in sponsors.silver -%} +{{ sponsor.title }} +{% endfor %} +
+ + + +[अन्य प्रायोजक](https://fastapi.tiangolo.com/hi/fastapi-people/#sponsors) + +## विचार { #opinions } + + +
+
+ + + + +
+ +
+
"मैं इन दिनों FastAPI का बहुत उपयोग कर रहा/रही हूँ। वास्तव में मैं अपनी टीम की Microsoft में ML सेवाओं के लिए इसे उपयोग करने की योजना बना रहा/रही हूँ। इनमें से कुछ को मुख्य Windows प्रोडक्ट और कुछ Office प्रोडक्ट्स में इंटीग्रेट किया जा रहा है।"
+
— कबीर खान, Microsoft (संदर्भ)
+
+ + + +
+ + +
+ +"_[...] मैं इन दिनों **FastAPI** का बहुत उपयोग कर रहा/रही हूँ। [...] वास्तव में मैं अपनी टीम की **Microsoft में ML सेवाओं** के लिए इसे उपयोग करने की योजना बना रहा/रही हूँ। इनमें से कुछ को मुख्य **Windows** प्रोडक्ट और कुछ **Office** प्रोडक्ट्स में इंटीग्रेट किया जा रहा है._" + +
कबीर खान - Microsoft (संदर्भ)
+ +--- + +"_हमने **FastAPI** लाइब्रेरी अपनाई ताकि एक **REST** सर्वर स्पॉन किया जा सके जिसे **अनुमानों** को प्राप्त करने के लिए क्वेरी किया जा सके। [Ludwig के लिए]_" + +
पिएरो मोलिनो, यारोस्लाव डुडिन, और साई सुमंत मिर्याला - Uber (संदर्भ)
+ +--- + +"_**Netflix** हमारे **संकट प्रबंधन** ऑर्केस्ट्रेशन फ़्रेमवर्क: **Dispatch** के ओपन-सोर्स रिलीज़ की घोषणा करते हुए प्रसन्न है! [**FastAPI** के साथ बनाया गया]_" + +
केविन ग्लिसन, मार्क विलानोवा, फॉरेस्ट मॉन्सेन - Netflix (संदर्भ)
+ +--- + +"_यदि कोई प्रोडक्शन Python API बनाना चाहता है, तो मैं **FastAPI** की अत्यधिक अनुशंसा करूंगा/करूंगी। यह **सुंदरता से डिज़ाइन** किया गया है, **उपयोग में सरल** है और **बेहद स्केलेबल** है, यह हमारी API-फ़र्स्ट डेवलपमेंट रणनीति का **मुख्य घटक** बन गया है और हमारे Virtual TAC Engineer जैसे कई ऑटोमेशन्स और सेवाओं को चला रहा है._" + +
डीयोन पिल्सबरी - Cisco (संदर्भ)
+ +--- + +
+ +## FastAPI कॉन्फ़ { #fastapi-conf } + +[**FastAPI Conf '26**](https://fastapiconf.com) **28 अक्टूबर, 2026** को **एम्स्टर्डम, नीदरलैंड्स** में हो रही है। सब कुछ FastAPI के बारे में, सीधे स्रोत से। 🎤 + +FastAPI Conf '26 - 28 अक्टूबर, 2026 - एम्स्टर्डम, NL + +## FastAPI मिनी डॉक्यूमेंट्री { #fastapi-mini-documentary } + +साल 2025 के अंत में एक [FastAPI मिनी डॉक्यूमेंट्री](https://www.youtube.com/watch?v=mpR8ngthqiE) रिलीज़ हुई, आप इसे ऑनलाइन देख सकते हैं: + +FastAPI मिनी डॉक्यूमेंट्री + +## Typer, CLIs का FastAPI { #typer-the-fastapi-of-clis } + + + +यदि आप वेब API के बजाय टर्मिनल में उपयोग होने वाला CLI ऐप बना रहे हैं, तो [**Typer**](https://typer.tiangolo.com/) देखें। + +**Typer**, FastAPI का छोटा भाई/बहन है। और इसका उद्देश्य **CLIs का FastAPI** होना है। ⌨️ 🚀 + +## आवश्यकताएँ { #requirements } + +FastAPI दिग्गजों के कंधों पर खड़ा है: + +* वेब हिस्सों के लिए [Starlette](https://www.starlette.dev/)। +* डेटा हिस्सों के लिए [Pydantic](https://docs.pydantic.dev/)। + +## स्थापना { #installation } + +एक [वर्चुअल एन्वायरनमेंट](https://fastapi.tiangolo.com/hi/virtual-environments/) बनाएँ और सक्रिय करें, और फिर FastAPI स्थापित करें: + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +नोट: सुनिश्चित करें कि आप सभी टर्मिनलों में काम करने के लिए `"fastapi[standard]"` को उद्धरण-चिह्नों में रखें। + +## उदाहरण { #example } + +### इसे बनाएँ { #create-it } + +`main.py` फ़ाइल बनाएँ और इसमें लिखें: + +```Python +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: str | None = None): + return {"item_id": item_id, "q": q} +``` + +
+या async def का उपयोग करें... + +यदि आपका कोड `async` / `await` का उपयोग करता है, तो `async def` का उपयोग करें: + +```Python hl_lines="7 12" +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +async def read_item(item_id: int, q: str | None = None): + return {"item_id": item_id, "q": q} +``` + +नोट: + +यदि आप नहीं जानते, तो _"जल्दी में?"_ सेक्शन देखें: दस्तावेज़ में [`async` और `await`](https://fastapi.tiangolo.com/hi/async/#in-a-hurry) के बारे में। + +
+ +### इसे चलाएँ { #run-it } + +सर्वर को इस कमांड से चलाएँ: + +
+ +```console +$ fastapi dev + + ╭────────── FastAPI CLI - Development mode ───────────╮ + │ │ + │ Serving at: http://127.0.0.1:8000 │ + │ │ + │ API docs: http://127.0.0.1:8000/docs │ + │ │ + │ Running in development mode, for production use: │ + │ │ + │ fastapi run │ + │ │ + ╰─────────────────────────────────────────────────────╯ + +INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp'] +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [2248755] using WatchFiles +INFO: Started server process [2248757] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +
+fastapi dev कमांड के बारे में... + +`fastapi dev` कमांड आपका `main.py` फ़ाइल स्वतः पढ़ता है, उसमें **FastAPI** ऐप का पता लगाता है, और [Uvicorn](https://www.uvicorn.dev) का उपयोग करके सर्वर शुरू करता है। + +डिफ़ॉल्ट रूप से, `fastapi dev` लोकल डेवलपमेंट के लिए auto-reload सक्षम करके शुरू होगा। + +आप इसके बारे में और पढ़ सकते हैं: [FastAPI CLI दस्तावेज़](https://fastapi.tiangolo.com/hi/fastapi-cli/) में। + +
+ +### इसे जाँचें { #check-it } + +अपने ब्राउज़र में [http://127.0.0.1:8000/items/5?q=somequery](http://127.0.0.1:8000/items/5?q=somequery) खोलें। + +आपको JSON प्रतिक्रिया इस प्रकार दिखेगी: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +आपने पहले ही एक API बना ली है जो: + +* _paths_ `/` और `/items/{item_id}` पर HTTP अनुरोध स्वीकार करती है। +* दोनों _paths_ `GET` operations लेती हैं (जिन्हें HTTP _methods_ भी कहा जाता है)। +* _path_ `/items/{item_id}` में एक _path parameter_ `item_id` है जो `int` होना चाहिए। +* _path_ `/items/{item_id}` में एक वैकल्पिक `str` _query parameter_ `q` है। + +### इंटरैक्टिव API दस्तावेज़ { #interactive-api-docs } + +अब [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) पर जाएँ। + +आपको स्वचालित इंटरैक्टिव API दस्तावेज़ीकरण दिखेगा (जो [Swagger UI](https://github.com/swagger-api/swagger-ui) द्वारा प्रदान किया जाता है): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### वैकल्पिक API दस्तावेज़ { #alternative-api-docs } + +और अब, [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) पर जाएँ। + +आपको वैकल्पिक स्वचालित दस्तावेज़ीकरण दिखेगा (जो [ReDoc](https://github.com/Rebilly/ReDoc) द्वारा प्रदान किया जाता है): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## उदाहरण उन्नयन { #example-upgrade } + +अब `PUT` अनुरोध से body प्राप्त करने के लिए `main.py` फ़ाइल संशोधित करें। + +Pydantic की बदौलत, body को मानक Python प्रकारों से घोषित करें। + +```Python hl_lines="2 7-10 23-25" +from fastapi import FastAPI +from pydantic import BaseModel + +app = FastAPI() + + +class Item(BaseModel): + name: str + price: float + is_offer: bool | None = None + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: str | None = None): + return {"item_id": item_id, "q": q} + + +@app.put("/items/{item_id}") +def update_item(item_id: int, item: Item): + return {"item_name": item.name, "item_id": item_id} +``` + +`fastapi dev` सर्वर स्वतः रीलोड होना चाहिए। + +### इंटरैक्टिव API दस्तावेज़ उन्नयन { #interactive-api-docs-upgrade } + +अब [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) पर जाएँ। + +* इंटरैक्टिव API दस्तावेज़ स्वतः अपडेट हो जाएगा, नए body सहित: + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* "Try it out" बटन पर क्लिक करें, यह आपको parameters भरने और सीधे API के साथ इंटरेक्ट करने की अनुमति देता है: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) + +* फिर "Execute" बटन पर क्लिक करें, यूज़र इंटरफ़ेस आपकी API से संवाद करेगा, parameters भेजेगा, परिणाम प्राप्त करेगा और उन्हें स्क्रीन पर दिखाएगा: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) + +### वैकल्पिक API दस्तावेज़ उन्नयन { #alternative-api-docs-upgrade } + +और अब, [http://127.0.0.1:8000/redoc](http://127.0.0.1:8000/redoc) पर जाएँ। + +* वैकल्पिक दस्तावेज़ भी नए query parameter और body को दर्शाएगा: + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### पुनरावलोकन { #recap } + +संक्षेप में, आप parameters, body, आदि के प्रकार फ़ंक्शन parameters के रूप में **एक बार** घोषित करते हैं। + +आप यह मानक आधुनिक Python प्रकारों से करते हैं। + +आपको किसी नई सिंटैक्स, किसी विशेष लाइब्रेरी के methods या classes, आदि सीखने की आवश्यकता नहीं है। + +बस मानक **Python**। + +उदाहरण के लिए, एक `int` के लिए: + +```Python +item_id: int +``` + +या एक अधिक जटिल `Item` मॉडल के लिए: + +```Python +item: Item +``` + +...और केवल उसी एक घोषणा के साथ आपको मिलता है: + +* एडिटर सपोर्ट, जिसमें शामिल है: + * कम्प्लीशन। + * प्रकार जाँच। +* डेटा का वैधीकरण: + * जब डेटा अमान्य हो तो स्वतः और स्पष्ट त्रुटियाँ। + * गहराई से nested JSON objects के लिए भी वैधीकरण। +* इनपुट डेटा का रूपांतरण: नेटवर्क से Python डेटा और प्रकारों में। इनमें से पढ़ना: + * JSON। + * Path parameters। + * Query parameters। + * Cookies। + * Headers। + * Forms। + * Files। +* आउटपुट डेटा का रूपांतरण: Python डेटा और प्रकारों से नेटवर्क डेटा (JSON के रूप में) में: + * Python प्रकारों का रूपांतरण (`str`, `int`, `float`, `bool`, `list`, आदि)। + * `datetime` ऑब्जेक्ट्स। + * `UUID` ऑब्जेक्ट्स। + * डेटाबेस मॉडल्स। + * ...और बहुत कुछ। +* स्वचालित इंटरैक्टिव API दस्तावेज़ीकरण, जिनमें 2 वैकल्पिक यूज़र इंटरफ़ेस शामिल हैं: + * Swagger UI। + * ReDoc। + +--- + +पिछले कोड उदाहरण पर लौटते हुए, **FastAPI** यह करेगा: + +* `GET` और `PUT` अनुरोधों के लिए path में `item_id` है, यह सत्यापित करेगा। +* `GET` और `PUT` अनुरोधों के लिए `item_id` का प्रकार `int` है, यह सत्यापित करेगा। + * यदि नहीं है, तो क्लाइंट को एक उपयोगी, स्पष्ट त्रुटि दिखाई देगी। +* `GET` अनुरोधों के लिए यह जाँच करेगा कि `q` नाम का एक वैकल्पिक query parameter है (जैसे `http://127.0.0.1:8000/items/foo?q=somequery`)। + * क्योंकि `q` parameter `= None` के साथ घोषित है, यह वैकल्पिक है। + * `None` के बिना यह आवश्यक होता (जैसे `PUT` के मामले में body आवश्यक है)। +* `/items/{item_id}` पर `PUT` अनुरोधों के लिए, body को JSON के रूप में पढ़ेगा: + * यह जाँचेगा कि एक आवश्यक attribute `name` है जो `str` होना चाहिए। + * यह जाँचेगा कि एक आवश्यक attribute `price` है जो `float` होना चाहिए। + * यह जाँचेगा कि एक वैकल्पिक attribute `is_offer` है, जो यदि मौजूद है तो `bool` होना चाहिए। + * यह सब गहराई से nested JSON objects के लिए भी काम करेगा। +* JSON से और JSON में स्वतः रूपांतरण। +* हर चीज़ को OpenAPI के साथ दस्तावेज़ित करेगा, जिसे निम्न द्वारा उपयोग किया जा सकता है: + * इंटरैक्टिव दस्तावेज़ीकरण प्रणालियाँ। + * कई भाषाओं के लिए स्वचालित क्लाइंट कोड जनरेशन प्रणालियाँ। +* सीधे 2 इंटरैक्टिव दस्तावेज़ीकरण वेब इंटरफेसेज़ प्रदान करेगा। + +--- + +हमने केवल सतह को छुआ है, लेकिन आपको पहले ही समझ आ गया होगा कि यह सब कैसे काम करता है। + +इस पंक्ति को बदलकर देखें: + +```Python + return {"item_name": item.name, "item_id": item_id} +``` + +...यहाँ से: + +```Python + ... "item_name": item.name ... +``` + +...यहाँ तक: + +```Python + ... "item_price": item.price ... +``` + +...और देखें कि आपका एडिटर attributes को कैसे auto-complete करेगा और उनके प्रकार जानेगा: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +अधिक फ़ीचर्स सहित एक अधिक सम्पूर्ण उदाहरण के लिए, ट्यूटोरियल - यूज़र गाइड देखें। + +चेतावनी: ट्यूटोरियल - यूज़र गाइड में शामिल है: + +* विभिन्न स्थानों से **parameters** की घोषणा: **headers**, **cookies**, **form fields** और **files**। +* `maximum_length` या `regex` जैसी **validation constraints** कैसे सेट करें। +* एक बहुत शक्तिशाली और उपयोग में आसान **डिपेंडेंसी इंजेक्शन** सिस्टम। +* सुरक्षा और प्रमाणीकरण, जिसमें **OAuth2** के साथ **JWT tokens** और **HTTP Basic** auth का समर्थन शामिल है। +* **गहराई से nested JSON मॉडल्स** घोषित करने की अधिक उन्नत (पर समान रूप से आसान) तकनीकें (Pydantic की बदौलत)। +* [Strawberry](https://strawberry.rocks) और अन्य लाइब्रेरीज़ के साथ **GraphQL** एकीकरण। +* कई अतिरिक्त फ़ीचर्स (Starlette की बदौलत) जैसे: + * **WebSockets** + * HTTPX और `pytest` पर आधारित अत्यंत आसान टेस्ट्स + * **CORS** + * **Cookie Sessions** + * ...आदि। + +### अपनी ऐप परिनियोजित करें (वैकल्पिक) { #deploy-your-app-optional } + +आप वैकल्पिक रूप से अपनी FastAPI ऐप को [FastAPI Cloud](https://fastapicloud.com) पर डिप्लॉय कर सकते हैं, यदि अभी तक नहीं किया है तो वेटिंग लिस्ट में जुड़ें। 🚀 + +यदि आपके पास पहले से **FastAPI Cloud** अकाउंट है (हमने आपको वेटिंग लिस्ट से आमंत्रित किया 😉), तो आप एक कमांड से अपनी एप्लिकेशन डिप्लॉय कर सकते हैं। + +
+ +```console +$ fastapi deploy + +Deploying to FastAPI Cloud... + +✅ Deployment successful! + +🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev +``` + +
+ +बस इतना ही! अब आप उस URL पर अपनी ऐप एक्सेस कर सकते हैं। ✨ + +#### FastAPI Cloud के बारे में { #about-fastapi-cloud } + +**[FastAPI Cloud](https://fastapicloud.com)** को **FastAPI** के ही लेखक और टीम ने बनाया है। + +यह न्यूनतम प्रयास में किसी API को **बनाने**, **डिप्लॉय** करने और **एक्सेस** करने की प्रक्रिया को सरल बनाता है। + +यह FastAPI के साथ ऐप्स बनाने के उसी **डेवलपर अनुभव** को उन्हें क्लाउड में **डिप्लॉय** करने तक लाता है। 🎉 + +FastAPI Cloud, *FastAPI and friends* ओपन सोर्स प्रोजेक्ट्स के लिए मुख्य प्रायोजक और फंडिंग प्रदाता है। ✨ + +#### अन्य क्लाउड प्रदाताओं पर डिप्लॉय करें { #deploy-to-other-cloud-providers } + +FastAPI ओपन सोर्स है और मानकों पर आधारित है। आप FastAPI ऐप्स को किसी भी क्लाउड प्रदाता पर डिप्लॉय कर सकते हैं। + +अपने क्लाउड प्रदाता के गाइड्स का पालन करें और उनके साथ FastAPI ऐप्स डिप्लॉय करें। 🤓 + +## प्रदर्शन { #performance } + +स्वतंत्र TechEmpower बेंचमार्क दिखाते हैं कि Uvicorn के तहत चलने वाले **FastAPI** एप्लीकेशन्स [उपलब्ध सबसे तेज़ Python फ़्रेमवर्क्स में से एक](https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7) हैं, केवल Starlette और Uvicorn (जो FastAPI द्वारा आंतरिक रूप से उपयोग किए जाते हैं) से नीचे। (*) + +इसके बारे में अधिक समझने के लिए, [बेंचमार्क्स](https://fastapi.tiangolo.com/hi/benchmarks/) सेक्शन देखें। + +## निर्भरताएँ { #dependencies } + +FastAPI, Pydantic और Starlette पर निर्भर करता है। + +### `standard` निर्भरताएँ { #standard-dependencies } + +जब आप `pip install "fastapi[standard]"` के साथ FastAPI स्थापित करते हैं, तो यह `standard` समूह की वैकल्पिक निर्भरताओं के साथ आता है: + +Pydantic द्वारा उपयोग किया गया: + +* [`email-validator`](https://github.com/JoshData/python-email-validator) - ईमेल वैधीकरण के लिए। + +Starlette द्वारा उपयोग किया गया: + +* [`httpx`](https://www.python-httpx.org) - यदि आप `TestClient` का उपयोग करना चाहते हैं तो आवश्यक। +* [`jinja2`](https://jinja.palletsprojects.com) - यदि आप डिफ़ॉल्ट टेम्पलेट कॉन्फ़िगरेशन का उपयोग करना चाहते हैं तो आवश्यक। +* [`python-multipart`](https://github.com/Kludex/python-multipart) - यदि आप फॉर्म "पार्सिंग" का समर्थन करना चाहते हैं, `request.form()` के साथ, तो आवश्यक। + +FastAPI द्वारा उपयोग किया गया: + +* [`uvicorn`](https://www.uvicorn.dev) - वह सर्वर जो आपकी एप्लिकेशन को लोड और सर्व करता है। इसमें `uvicorn[standard]` शामिल है, जिसमें उच्च-प्रदर्शन सर्विंग के लिए कुछ निर्भरताएँ (जैसे `uvloop`) शामिल हैं। +* `fastapi-cli[standard]` - `fastapi` कमांड प्रदान करने के लिए। + * इसमें `fastapi-cloud-cli` शामिल है, जो आपको अपनी FastAPI एप्लिकेशन को [FastAPI Cloud](https://fastapicloud.com) पर डिप्लॉय करने की अनुमति देता है। + +### `standard` निर्भरताओं के बिना { #without-standard-dependencies } + +यदि आप `standard` वैकल्पिक निर्भरताओं को शामिल नहीं करना चाहते, तो आप `pip install fastapi` के साथ स्थापित कर सकते हैं, `pip install "fastapi[standard]"` के बजाय। + +### `fastapi-cloud-cli` के बिना { #without-fastapi-cloud-cli } + +यदि आप standard निर्भरताओं के साथ लेकिन `fastapi-cloud-cli` के बिना FastAPI स्थापित करना चाहते हैं, तो `pip install "fastapi[standard-no-fastapi-cloud-cli]"` के साथ स्थापित कर सकते हैं। + +### अतिरिक्त वैकल्पिक निर्भरताएँ { #additional-optional-dependencies } + +कुछ अतिरिक्त निर्भरताएँ हैं जिन्हें आप स्थापित करना चाहेंगे। + +अतिरिक्त वैकल्पिक Pydantic निर्भरताएँ: + +* [`pydantic-settings`](https://docs.pydantic.dev/latest/usage/pydantic_settings/) - सेटिंग्स प्रबंधन के लिए। +* [`pydantic-extra-types`](https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/) - Pydantic के साथ उपयोग करने के लिए अतिरिक्त प्रकारों हेतु। + +अतिरिक्त वैकल्पिक FastAPI निर्भरताएँ: + +* [`orjson`](https://github.com/ijl/orjson) - यदि आप `ORJSONResponse` उपयोग करना चाहते हैं तो आवश्यक। +* [`ujson`](https://github.com/esnme/ultrajson) - यदि आप `UJSONResponse` उपयोग करना चाहते हैं तो आवश्यक। + +## लाइसेंस { #license } + +यह प्रोजेक्ट MIT लाइसेंस की शर्तों के अंतर्गत लाइसेंस प्राप्त है। From bf30d501f1de6d676aa99c6a99deeb82277148b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 18 May 2026 16:40:02 +0000 Subject: [PATCH 6/7] =?UTF-8?q?=F0=9F=8E=A8=20Auto=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/hi/docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hi/docs/index.md b/docs/hi/docs/index.md index 431f9dee35..bcdbc07361 100644 --- a/docs/hi/docs/index.md +++ b/docs/hi/docs/index.md @@ -5,7 +5,7 @@

- FastAPI + FastAPI

FastAPI फ़्रेमवर्क, उच्च प्रदर्शन, सीखने में आसान, कोड लिखने में तेज़, प्रोडक्शन के लिए तैयार From f2fe72b986c73ad957fee968f23e000d49fd10c8 Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Mon, 18 May 2026 18:50:23 +0200 Subject: [PATCH 7/7] Revert comment removal in `mkdocs.yml` --- docs/en/mkdocs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml index 1b872271ba..fe873705ec 100644 --- a/docs/en/mkdocs.yml +++ b/docs/en/mkdocs.yml @@ -290,7 +290,10 @@ markdown_extensions: format: !!python/name:pymdownx.superfences.fence_code_format '' pymdownx.tilde: null pymdownx.blocks.admonition: + # TODO: remove types section (with custom types) once translations are migrated to + # not use custom types too types: + # Default types - note - attention - caution @@ -299,6 +302,7 @@ markdown_extensions: - tip - hint - warning + # Custom types - info - check pymdownx.blocks.details: null