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("/", 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)