File size: 1,072 Bytes
abed4cc
 
 
 
4fa4127
 
 
 
 
 
 
abed4cc
 
 
4fa4127
6997b8b
abed4cc
 
4fa4127
6997b8b
 
4fa4127
 
 
 
 
 
abed4cc
4fa4127
abed4cc
 
 
 
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
const express = require('express');
const proxy = require('express-http-proxy');
const app = express();
const targetUrl = 'https://api.openai.com'; // OpenAI API endpoint
const openai_key = process.env.OPENAI_KEY;

if (!openai_key) {
  console.error('Error: OPENAI_KEY is not set.');
  process.exit(1);
}

app.use('/', proxy(targetUrl, {
  proxyReqOptDecorator: (proxyReqOpts, srcReq) => {
    // Modify the request headers if necessary
    proxyReqOpts.headers['Authorization'] = 'Bearer ' + openai_key;
    console.log('Proxy request options:', proxyReqOpts);
    return proxyReqOpts;
  },
  userResDecorator: (proxyRes, proxyResData, userReq, userRes) => {
    console.log('Proxy response status:', proxyRes.statusCode);
    console.log('Proxy response data:', proxyResData.toString('utf8'));
    return proxyResData;
  },
  proxyErrorHandler: (err, res, next) => {
    console.error('Proxy error:', err);
    res.status(500).send('Proxy error');
  }
}));

const port = 7860;
app.listen(port, () => {
  console.log(`Reverse proxy server listening on port ${port}`);
});