TestPY0 / app.py
Niansuh's picture
Update app.py
0604f3f verified
raw
history blame
1.35 kB
from flask import Flask, request, jsonify
import os
import requests
app = Flask(__name__)
# Load environment variables
API_KEY = os.getenv("OPENAI_API_KEY")
FAKE_KEY = os.getenv("FAKE_KEY", "fake-key") # Default to "fake-key" if not set
BASE_URL = "https://api.typegpt.net"
# Proxy endpoint to OpenAI's API
@app.route("/<path:endpoint>", methods=["POST"])
def proxy(endpoint):
# Verify the client's fake API key
client_key = request.headers.get("Authorization")
if client_key != f"Bearer {FAKE_KEY}":
return jsonify({"error": "Unauthorized"}), 401
# Forward request to OpenAI
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = request.get_json()
response = requests.post(f"{BASE_URL}/{endpoint}", headers=headers, json=data)
# Handle non-JSON responses
try:
response_json = response.json()
except requests.exceptions.JSONDecodeError:
# Log the raw response text for debugging
print("Non-JSON response:", response.text)
return jsonify({"error": "Invalid response from OpenAI API", "details": response.text}), response.status_code
# Return the OpenAI response if it's JSON
return jsonify(response_json), response.status_code
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)