Abhaykoul commited on
Commit
95849fc
·
verified ·
1 Parent(s): 04ea2f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -5
app.py CHANGED
@@ -6,6 +6,7 @@ from dotenv import load_dotenv
6
  import os
7
  from fake_useragent import UserAgent
8
  from fastapi.responses import RedirectResponse
 
9
  # Load environment variables
10
  load_dotenv()
11
 
@@ -38,11 +39,12 @@ def fetch_roasts(content: str):
38
  }
39
 
40
  try:
41
- # Make API request
42
  response = requests.post(
43
  API_URL,
44
  headers=headers,
45
- data={'content': content, 'model': MODEL}
 
46
  )
47
  response.raise_for_status() # Raises HTTPError for bad responses
48
 
@@ -51,17 +53,19 @@ def fetch_roasts(content: str):
51
  roasts = re.findall(r'<roast>(.*?)</roast>', result)
52
  return roasts
53
 
 
 
54
  except requests.exceptions.RequestException as e:
55
  raise HTTPException(status_code=503, detail=f"Network error: {e}")
56
  except KeyError as e:
57
  raise HTTPException(status_code=500, detail=f"Response format error: {e}")
58
  except Exception as e:
59
  raise HTTPException(status_code=500, detail=f"Unexpected error: {e}")
60
-
61
  @app.get("/", include_in_schema=False)
62
  async def root():
63
  return RedirectResponse(url="https://roastapi-docs.netlify.app/")
64
-
65
  @app.post("/generate-roasts/")
66
  async def generate_roasts(request: RoastRequest):
67
  roasts = fetch_roasts(request.content)
@@ -73,4 +77,3 @@ if __name__ == "__main__":
73
  import uvicorn
74
  print("Starting FastAPI server...")
75
  uvicorn.run(app, host="0.0.0.0", port=8000)
76
-
 
6
  import os
7
  from fake_useragent import UserAgent
8
  from fastapi.responses import RedirectResponse
9
+
10
  # Load environment variables
11
  load_dotenv()
12
 
 
39
  }
40
 
41
  try:
42
+ # Make API request with a 30-second timeout
43
  response = requests.post(
44
  API_URL,
45
  headers=headers,
46
+ data={'content': content, 'model': MODEL},
47
+ timeout=30 # Add timeout here
48
  )
49
  response.raise_for_status() # Raises HTTPError for bad responses
50
 
 
53
  roasts = re.findall(r'<roast>(.*?)</roast>', result)
54
  return roasts
55
 
56
+ except requests.exceptions.Timeout:
57
+ raise HTTPException(status_code=504, detail="The request timed out.")
58
  except requests.exceptions.RequestException as e:
59
  raise HTTPException(status_code=503, detail=f"Network error: {e}")
60
  except KeyError as e:
61
  raise HTTPException(status_code=500, detail=f"Response format error: {e}")
62
  except Exception as e:
63
  raise HTTPException(status_code=500, detail=f"Unexpected error: {e}")
64
+
65
  @app.get("/", include_in_schema=False)
66
  async def root():
67
  return RedirectResponse(url="https://roastapi-docs.netlify.app/")
68
+
69
  @app.post("/generate-roasts/")
70
  async def generate_roasts(request: RoastRequest):
71
  roasts = fetch_roasts(request.content)
 
77
  import uvicorn
78
  print("Starting FastAPI server...")
79
  uvicorn.run(app, host="0.0.0.0", port=8000)