Rooni commited on
Commit
edb0877
·
verified ·
1 Parent(s): 01dae82

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +36 -5
server.js CHANGED
@@ -1,15 +1,46 @@
1
  const express = require('express');
2
  const proxy = require('express-http-proxy');
 
 
3
  const app = express();
4
- const targetUrl = 'https://api.openai.com'; // OpenAI API endpoint
5
- const openai_key = process.env.OPENAI_KEY
6
- app.use('/', proxy(targetUrl, {
 
 
 
 
 
7
  proxyReqOptDecorator: (proxyReqOpts, srcReq) => {
8
- // Modify the request headers if necessary
9
- // proxyReqOpts.headers['Authorization'] = 'Bearer '+openai_key;
 
 
 
 
 
 
 
 
 
 
10
  return proxyReqOpts;
11
  },
 
 
 
 
 
 
 
 
12
  }));
 
 
 
 
 
 
13
  const port = 7860;
14
  app.listen(port, () => {
15
  console.log(`Reverse proxy server listening on port ${port}`);
 
1
  const express = require('express');
2
  const proxy = require('express-http-proxy');
3
+ const bodyParser = require('body-parser');
4
+
5
  const app = express();
6
+ const targetUrl = 'https://api.openai.com';
7
+ const openai_key = process.env.OPENAI_KEY;
8
+
9
+ app.use(bodyParser.json()); // Middleware to parse JSON body
10
+
11
+ // Route to handle GPT-4 generation requests
12
+ app.post('/generate', proxy(targetUrl, {
13
+ proxyReqPathResolver: () => '/v1/engines/gpt-4-1106-preview/completions', // Path for GPT-4 requests
14
  proxyReqOptDecorator: (proxyReqOpts, srcReq) => {
15
+ // Ensure the model is GPT-4
16
+ if (srcReq.body.model !== 'gpt-4-1106-preview') {
17
+ throw new Error('Only gpt-4-1106-preview model is supported');
18
+ }
19
+
20
+ // Modify the request headers
21
+ proxyReqOpts.headers['Authorization'] = `Bearer ${openai_key}`;
22
+ proxyReqOpts.headers['Content-Type'] = 'application/json';
23
+
24
+ // Forward the JSON body as-is
25
+ proxyReqOpts.bodyContent = JSON.stringify(srcReq.body);
26
+
27
  return proxyReqOpts;
28
  },
29
+ userResDecorator: (proxyRes, proxyResData, userReq, userRes) => {
30
+ // Check for non-200 status code
31
+ if (proxyRes.statusCode !== 200) {
32
+ throw new Error('Request to OpenAI failed');
33
+ }
34
+ // Forward the OpenAI response
35
+ return proxyResData;
36
+ },
37
  }));
38
+
39
+ // All other requests are not allowed
40
+ app.use('*', (req, res) => {
41
+ res.status(403).send('Access Denied');
42
+ });
43
+
44
  const port = 7860;
45
  app.listen(port, () => {
46
  console.log(`Reverse proxy server listening on port ${port}`);