Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
import re
|
2 |
import requests
|
3 |
from fastapi import FastAPI, HTTPException
|
4 |
-
from fastapi.responses import RedirectResponse
|
5 |
from pydantic import BaseModel
|
6 |
from dotenv import load_dotenv
|
7 |
import os
|
|
|
8 |
|
9 |
# Load environment variables
|
10 |
load_dotenv()
|
@@ -27,11 +27,21 @@ class RoastRequest(BaseModel):
|
|
27 |
content: str
|
28 |
|
29 |
def fetch_roasts(content: str):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
try:
|
31 |
# Make API request
|
32 |
response = requests.post(
|
33 |
API_URL,
|
34 |
-
headers=
|
35 |
data={'content': content, 'model': MODEL}
|
36 |
)
|
37 |
response.raise_for_status() # Raises HTTPError for bad responses
|
@@ -47,11 +57,11 @@ def fetch_roasts(content: str):
|
|
47 |
raise HTTPException(status_code=500, detail=f"Response format error: {e}")
|
48 |
except Exception as e:
|
49 |
raise HTTPException(status_code=500, detail=f"Unexpected error: {e}")
|
50 |
-
|
51 |
@app.get("/", include_in_schema=False)
|
52 |
async def root():
|
53 |
return RedirectResponse(url="https://roastapi-docs.netlify.app/")
|
54 |
-
|
55 |
@app.post("/generate-roasts/")
|
56 |
async def generate_roasts(request: RoastRequest):
|
57 |
roasts = fetch_roasts(request.content)
|
@@ -63,3 +73,4 @@ if __name__ == "__main__":
|
|
63 |
import uvicorn
|
64 |
print("Starting FastAPI server...")
|
65 |
uvicorn.run(app, host="0.0.0.0", port=8000)
|
|
|
|
1 |
import re
|
2 |
import requests
|
3 |
from fastapi import FastAPI, HTTPException
|
|
|
4 |
from pydantic import BaseModel
|
5 |
from dotenv import load_dotenv
|
6 |
import os
|
7 |
+
from fake_useragent import UserAgent
|
8 |
|
9 |
# Load environment variables
|
10 |
load_dotenv()
|
|
|
27 |
content: str
|
28 |
|
29 |
def fetch_roasts(content: str):
|
30 |
+
ua = UserAgent()
|
31 |
+
headers = {
|
32 |
+
'origin': Origin,
|
33 |
+
'user-agent': ua.random,
|
34 |
+
'accept': '*/*',
|
35 |
+
'accept-encoding': 'gzip, deflate, br, zstd',
|
36 |
+
'accept-language': 'en-US,en;q=0.9,en-IN;q=0.8',
|
37 |
+
'referer': 'https://seoroast.co/tools/ai-roast-generator?via=topaitools',
|
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
|
|
|
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 |
import uvicorn
|
74 |
print("Starting FastAPI server...")
|
75 |
uvicorn.run(app, host="0.0.0.0", port=8000)
|
76 |
+
|