ChatGPT用Node.js做反向代理完整配置方法

ChatGPT最近非常火爆,由于某些原因,国内服务器无法直接调用api进行开发,需要用到国外服务器进行反向代理,一般都是用宝塔nginx进行反代,这样操作,固然没有什么问题,但小编不想使用服务器,想用阿里、腾讯的云函数捣鼓一下,稳定省事,所以这里用Node.js来反代是最好的选择了。

这是我用腾讯云函数反代后,做的ChatGPT助手:www.250ai.cn,可以直接使用

好了,话不多说,这里是一个使用 Node.js 做 OpenAI 反代的完整示例代码:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

// OpenAI API Key
const OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY';

// OpenAI API URL
const OPENAI_API_URL = 'https://api.openai.com/v1/';

// Target URL for proxy
const TARGET_URL = OPENAI_API_URL;

// Options for proxy middleware
const proxyOptions = {
  target: TARGET_URL,
  changeOrigin: true,
  headers: {
    Authorization: `Bearer ${OPENAI_API_KEY}`,
    'Content-Type': 'application/json',
  },
  onProxyReq: (proxyReq, req, res) => {
    if (req.method === 'POST' && req.body) {
      const bodyData = JSON.stringify(req.body);
      proxyReq.setHeader('Content-Type', 'application/json');
      proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
      proxyReq.write(bodyData);
    }
  },
};

// Add the proxy middleware
app.use(createProxyMiddleware(proxyOptions));

// Start the server
app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

在这里,我们使用了 http-proxy-middleware 库来创建反代。我们设置了 OpenAI API 的 URL 和 API Key,然后将它们传递给 http-proxy-middleware 的 createProxyMiddleware 函数。我们使用了 onProxyReq 选项来确保请求的 Content-Type 是正确的。最后,我们启动了服务器并监听端口 3000。

使用该代码,您可以通过访问 http://localhost:3000 来访问 OpenAI API。例如,如果您想使用 OpenAI 的 davinci 模型进行文本生成,您可以向 http://localhost:3000/completions 发送 POST 请求,并在请求体中包含您的文本和模型名称。反代服务器将转发该请求到 OpenAI API,OpenAI API 将生成文本并将其返回给您。

需要在package.json中添加 http-proxy-middleware 和 express 作为依赖项。在 dependencies 部分中添加以下代码:

{
  "dependencies": {
    "http-proxy-middleware": "^2.0.1",
    "express": "^4.17.1"
  }
}

如果您想在生产环境中使用这个代码,请将这个代码添加到您的 dependencies 中。如果您只想在开发环境中使用它,则将其添加到 devDependencies 中:

{
  "devDependencies": {
    "http-proxy-middleware": "^2.0.1",
    "express": "^4.17.1"
  }
}

在添加完依赖项后,使用 npm install 命令来安装这些依赖项。这将确保您的项目中包含了所需的库。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值