रिक्वेस्ट और रिस्पॉन्स मॉडल

FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

Matt Eckerle

Software and Data Engineering Leader

APIs में रिक्वेस्ट और रिस्पॉन्स संरचनाएँ

रिक्वेस्ट संरचना
  • क्लाइंट से API को भेजा गया डेटा
  • आम तौर पर शामिल होते हैं:
    • HTTP मेथड (GET, POST, आदि)
    • हेडर
    • क्वेरी पैरामीटर
    • रिक्वेस्ट बॉडी

http://localhost:8000/users/? [email protected]

  • :8000: पोर्ट नंबर। FastAPI डिफॉल्ट रूप से 8000 उपयोग करता है।
  • /users/: जिस एंडपॉइंट का पाथ एक्सेस कर रहे हैं।
  • ?: क्वेरी पैरामीटर की शुरुआत दर्शाता है।
  • `[email protected]`: क्वेरी पैरामीटर। यहाँ हम एंडपॉइंट को एक ईमेल पास कर रहे हैं।
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

रिस्पॉन्स संरचना

  • API द्वारा क्लाइंट को वापस भेजा गया डेटा
    • यूज़र जानकारी वाला JSON रिस्पॉन्स पेलोड
  • आम तौर पर शामिल होते हैं:
    • स्टेटस कोड (200 OK, 404 Not Found, आदि)
    • हेडर
    • रिस्पॉन्स बॉडी (मांगा गया डेटा या ऑपरेशन का परिणाम)
HTTP/1.1 200 OK
date: Fri, 18 Oct 2024 12:34:56 GMT
server: uvicorn
content-length: 76
content-type: application/json

{
  "username": "johndoe",
  "email": "[email protected]",
  "age": 30
}
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

Pydantic मॉडल

  • User का निर्माण
  • Pydantic का उपयोग
from pydantic import BaseModel
class User(BaseModel):
    username: str
    email: str
    age: int
  • BaseModel से इनहेरिट करता है
  • टाइप एनोटेशन के साथ एट्रिब्यूट परिभाषित करता है
  • टाइप के आधार पर स्वत: वेलिडेशन
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

वेलिडेशन एरर

from pydantic import ValidationError
try:
    invalid_user = User(username="john_doe", email="[email protected]", 
                        age="thirty")
    print("Invalid User:", invalid_user)
except ValidationError as e:
    print("Validation Error:", e)
Validation Error: 1 validation error for User age
Input should be a valid integer, unable to parse string as an integer 
[type=int_parsing, input_value='thirty', input_type=str]
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

FastAPI में Pydantic मॉडल का उपयोग

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()

class User(BaseModel): username: str email: str age: int
@app.post("/users", response_model=User)
async def create_user(user: User): return user
  • मॉडल को response_model के रूप में उपयोग किया
  • मॉडल को पैरामीटर टाइप हिंट के रूप में उपयोग किया
  • रिक्वेस्ट का स्वत: वेलिडेशन
  • रिक्वेस्ट/रिस्पॉन्स की डी/सीरियलाइज़ेशन
  • API डॉक्स जनरेट करें
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

रिक्वेस्ट और रिस्पॉन्स फॉर्मैट

curl -X 'POST' \
  'http://localhost:8000/users/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "username": "john_doe",
  "email": "[email protected]",
  "age": 30
  }'

 

{
  "username": "john_doe",
  "email": "[email protected]",
  "age": 30
}
FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

अभ्यास करते हैं!

FastAPI के साथ प्रोडक्शन में AI डिप्लॉय करना

Preparing Video For Download...