Spaces:
Running
Running
File size: 1,013 Bytes
a1c4d34 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from fastapi import APIRouter, HTTPException, Depends, Request
from sqlalchemy.orm import Session
from app.database import SessionLocal
from app.models import APIKey
import requests
router = APIRouter()
TYPEGPT_API_URL = "https://api.typegpt.net/v1/chat/completions"
TYPEGPT_API_KEY = "sk-ciH62IRAfuzg288E12QFVwuND0Og1GCZFc0fiJ2Sk37AElEA"
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@router.post("/proxy-request")
def proxy_request(request: Request, db: Session = Depends(get_db)):
user_key = request.headers.get("X-API-KEY")
if not user_key:
raise HTTPException(status_code=401, detail="API key required")
api_key = db.query(APIKey).filter(APIKey.key == user_key).first()
if not api_key:
raise HTTPException(status_code=403, detail="Invalid API key")
response = requests.post(
TYPEGPT_API_URL, headers={"Authorization": f"Bearer {TYPEGPT_API_KEY}"},
json=request.json()
)
return response.json()
|