userIdc2024 commited on
Commit
f5dfa95
·
verified ·
1 Parent(s): 34ea8d7

Create main.py

Browse files
Files changed (1) hide show
  1. main.py +37 -0
main.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, HTTPException
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ from pydantic import BaseModel, Field
4
+ from typing import List
5
+ from utils import get_images
6
+
7
+ app = FastAPI(title="Images API", version="1.0.0")
8
+
9
+ # CORS (open by default; tighten if needed)
10
+ app.add_middleware(
11
+ CORSMiddleware,
12
+ allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"],
13
+ )
14
+
15
+ class GenerateRequest(BaseModel):
16
+ category: str = Field(..., min_length=1)
17
+ keyword: str = Field(..., min_length=1)
18
+ subkeyword: str = Field(..., min_length=1)
19
+
20
+ class GenerateResponse(BaseModel):
21
+ urls: List[str]
22
+
23
+ @app.get("/health")
24
+ def health():
25
+ return {"ok": True}
26
+
27
+ @app.post("/generate", response_model=GenerateResponse)
28
+ def generate(req: GenerateRequest):
29
+ try:
30
+ urls = get_images(req.category, req.keyword, req.subkeyword)
31
+ # Basic sanity check
32
+ if not isinstance(urls, list):
33
+ raise ValueError("get_images must return a List[str]")
34
+ return {"urls": urls}
35
+ except Exception as e:
36
+ # Log in real app; return sanitized error
37
+ raise HTTPException(status_code=500, detail=str(e))