ArcuateFiend/clouds_reverse_proxy
0
1const express = require('express');2const proxy = require('express-http-proxy');3const app = express();4const targetUrl = 'https://api.openai.com';5const openaiKey = process.env.OPENAI_KEY6const port = 7860;7const baseUrl = getExternalUrl(process.env.SPACE_ID);8 9app.use('/api', proxy(targetUrl, {10 proxyReqOptDecorator: (proxyReqOpts, srcReq) => {11 // Modify the request headers if necessary12 proxyReqOpts.headers['Authorization'] = 'Bearer '+openaiKey;13 return proxyReqOpts;14 },15}));16 17app.get("/", (req, res) => {18 res.send(`This is your OpenAI Reverse Proxy URL: ${baseUrl}`);19});20 21function getExternalUrl(spaceId) {22 try {23 const [username, spacename] = spaceId.split("/");24 return `https://${username}-${spacename.replace(/_/g, "-")}.hf.space/api/v1`;25 } catch (e) {26 return "";27 }28}29 30app.listen(port, () => {31 console.log(`Reverse proxy server running on ${baseUrl}`);32});