userIdc2024 commited on
Commit
67b4e4b
·
verified ·
1 Parent(s): d717349

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -12
app.py CHANGED
@@ -1,27 +1,27 @@
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
 
6
  from main import get_images
7
 
8
  app = FastAPI(title="Images API", version="1.0.0")
9
 
10
- # CORS (open by default; tighten if needed)
11
  app.add_middleware(
12
  CORSMiddleware,
13
  allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"],
14
  )
 
15
  class ImageItem(BaseModel):
16
- ref_url: str
17
- num: int
18
 
19
  class GenerateRequest(BaseModel):
20
  items: List[ImageItem]
21
 
22
  class ImageResult(BaseModel):
23
- ref_url: "str"
24
- urls: List["str"]
25
 
26
  class GenerateResponse(BaseModel):
27
  urls: List[ImageResult]
@@ -30,14 +30,15 @@ class GenerateResponse(BaseModel):
30
  def health():
31
  return {"ok": True}
32
 
33
- @app.post("/generate", response_model=GenerateResponse)
34
- def generate(req: GenerateRequest):
35
  try:
36
- urls = get_images(req.items)
37
- # Basic sanity check
38
  if not isinstance(urls, list):
39
- raise ValueError("get_images must return a List[str]")
40
  return {"urls": urls}
41
  except Exception as e:
42
- # Log in real app; return sanitized error
43
  raise HTTPException(status_code=500, detail=str(e))
 
 
 
 
 
1
  from fastapi import FastAPI, HTTPException
2
  from fastapi.middleware.cors import CORSMiddleware
3
+ from pydantic import BaseModel, HttpUrl, conint
4
  from typing import List
5
 
6
  from main import get_images
7
 
8
  app = FastAPI(title="Images API", version="1.0.0")
9
 
 
10
  app.add_middleware(
11
  CORSMiddleware,
12
  allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"],
13
  )
14
+
15
  class ImageItem(BaseModel):
16
+ ref_url: HttpUrl
17
+ num: conint(ge=1)
18
 
19
  class GenerateRequest(BaseModel):
20
  items: List[ImageItem]
21
 
22
  class ImageResult(BaseModel):
23
+ ref_url: HttpUrl
24
+ urls: List[HttpUrl]
25
 
26
  class GenerateResponse(BaseModel):
27
  urls: List[ImageResult]
 
30
  def health():
31
  return {"ok": True}
32
 
33
+ def _generate_impl(req: GenerateRequest):
 
34
  try:
35
+ urls = get_images(req.dict()) # get_images expects {"items":[...]}
 
36
  if not isinstance(urls, list):
37
+ raise ValueError("get_images must return a List[ImageResult-like dicts]")
38
  return {"urls": urls}
39
  except Exception as e:
 
40
  raise HTTPException(status_code=500, detail=str(e))
41
+
42
+ @app.post("/generate", response_model=GenerateResponse)
43
+ def generate(req: GenerateRequest):
44
+ return _generate_impl(req)