NEKReport/proxy.py

44 lines
1.4 KiB
Python

from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse, Response
import httpx
app = FastAPI()
OPENROUTER_KEY = "sk-9cfed30eb6894df5b9a3ffb4b1fb956d"
@app.post("/v1/chat/completions")
async def proxy(req: Request):
body = await req.json()
async with httpx.AsyncClient() as client:
try:
r = await client.post(
"https://api.deepseek.com/chat/completions",
headers={
"Authorization": f"Bearer {OPENROUTER_KEY}",
"HTTP-Referer": "http://localhost",
"model": "deepseek-v4-flash",
"X-Title": "rag-engine"
},
json=body,
timeout=300,
)
except httpx.HTTPError as e:
# Ошибка сети / таймаут
return JSONResponse(
status_code=502,
content={"error": "Bad gateway", "details": str(e)},
)
print(r.text)
# Если бэкенд всегда отвечает JSON:
# return JSONResponse(status_code=r.status_code, content=r.json())
# Универсальный вариант — пробрасываем «как есть»
return Response(
content=r.content,
status_code=r.status_code,
media_type=r.headers.get("content-type", "application/json"),
)