使用免费国外服务器搭建ChatGPT接口服务

最近这段时间,ChatGPT火的一塌糊涂,到处都是介绍ChatGPT的文章,但自从前段时间开始,很多人可能都发现了ChatGPT接口国内调用不了了,而很多人可能是抱着玩玩的心态,并不愿意去花钱另外购买国外的服务器,当然这其中也包括我,由于没有预算去购买一台国外的服务器,所以我公众号的ChatGPT功能也被迫停止运行了一段时间,但是今天我想告诉大家,本站公众号ChatGPT服务重启了,还是之前的使用方式,但是速度快了很多,有兴趣的朋友可以去关注公众号去体验,不知道怎么用的可以看公众号的“使用帮助”。

回到正题,虽然我重启了公众号的ChatGPT功能,但是我并没有额外花钱,因为我找到了免费的国外服务器,它不香吗???市面上提供服务器免费试用的厂商不少,比如阿里云、亚马逊等等,但是注册比较麻烦,需要信用卡,国外手机号、国外身份信息等等之类的信息,我最先也是准备注册阿里云,后来卡在了手机号这块儿,免费的手机号根本注册不了,而我又不想花钱去买验证码,直到最后我找到了hostbuddy这个网站,全程只需要一个邮箱即可,下面介绍一下注册流程。

一、hostbuddy注册

1、注册账号

首先我们访问hostbuddy官网,地址:https://www.hostbuddy.com/,并点击“GET STARTED”按钮,

填写注册信息,并点击注册

不出意外的话,我们会进入以下界面

2、验证账号

进入注册账号时填写的邮箱,找到激活邮件,并点击激活链接

3、登录账号

账号成功激活后会转向到登录页,填写我们注册的账号并登录

4、激活试用计划

首次登录完毕之后我们需要激活我们的试用计划,点击“Try Now”

可以看到默认的地区是美国,刚好可以用于我们访问ChatGPT服务,然后我们填入密码和网站名,这里的密码就是后面我们登录FTP的密码,网站名就是网站的目录名称,然后点击“Next”

确认信息并点击“提交”

此时不要关闭窗口,需要等待激活完成,一般1-3分钟

5、创建node应用

在激活完成后,我们登录主机面板并创建node应用,

这里显示了我们的FTP登录信息和对外域名,我们点击“管理网站”并点击“NodeJs“进入node应用创建界面

按序号依次点击完成node应用的创建,需要注意的是当激活NodeJS后,所有的javascript将会被当作NodeJS运行。

6、登录FTP

在node应用创建完成后,我们用步骤5截图中显示的FTP信息和步骤4设置的密码登录FTP,登录后目录结构如下:

“www”即为存放网站源码的目录,我们进入目录

目录中有2个文件,default.asp是网站的默认页,我们需要删除掉,web.config是网站的配置文件。

7、测试node应用

在node应用创建完毕后我们就可以开始测试了,创建app.js, 并编写如下代码:

const http = require('http');
http.createServer(function(req, res) {
    res.writeHead(200, {
        'Content-Type': 'text/plain'
    });
    res.end('Hello, world!');
}).listen(process.env.PORT);

注意这里不能自定义端口,必须使用process.env.PORT。将app.js文件传到www目录下,并更改配置文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="*.js" verb="*" modules="iisnode" />
        </handlers>
        <rewrite>
            <rules>
                <rule name="mysite">
                    <match url="/*" />
                    <action type="Rewrite" url="app.js" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

访问步骤5中获取的对外域名,如果页面显示”Hello, world!“则测试通过。

二、部署ChatGPT接口服务

通过步骤一,我们注册了免费的国外服务器,并创建了node应用环境,接下来我们需要开始部署ChatGPT的接口服务,这里我们使用koa搭建一个简单的服务,首先创建基础项目结构,

├── app.js
  ├── node_modules
  ├── package-lock.json
  ├── package.json
  ├── public
  ├── routes
  │   └── gpt.js
  ├── utils
  │   └── ai.js
  └── views

app.js的代码如下:

const http = require('http');
const Koa = require('koa');
const app = new Koa();
const json = require('koa-json');
const onerror = require('koa-onerror');
const bodyparser = require('koa-bodyparser');
const koaBody = require('koa-body');
const gpt = require('./routes/gpt');

onerror(app);

app.use(async (ctx, next)=> {
  ctx.set('Access-Control-Allow-Origin', '*');
  ctx.set('Access-Control-Allow-Headers', 'Content-Type');
  await next();
});

app.use(koaBody({
  multipart: true,
  formidable: {
    maxFieldsSize: 2 * 1024 * 1024,
    multipart: true
  }
}));

app.use(bodyparser());
app.use(json());

app.use(gpt.routes(), gpt.allowedMethods());

const server = http.createServer(app.callback());
server.listen(process.env.PORT);

gpt.js代码如下:

const router = require('koa-router')();
const { getData } = require('../utils/ai');

router.prefix('/gpt');

router.all('/chat', async (ctx, next) => {
  const { q = '' } = ctx.query;
  if (!q.trim()) {
     return ctx.body = '您想问啥呢?';
  }
  ctx.body = getData(q);
});

module.exports = router;

对于getData方法的实现,这里图方便使用request库(目前已废弃)来发起请求,大家可以根据自己的习惯更改,代码如下:

const request = require('request');

function getData(prompt) {
    return request({
        url: 'https://api.openai.com/v1/completions',
        method: 'POST',
        body: {
            prompt,
            max_tokens: 2048,
            model: 'text-davinci-003'
        },
        json: true,
        headers: {
            Authorization: 'OPENAI_TOKEN'
        }
    });
}

module.exports = {
    getData,
};

将所有的源码连同node_modules一起上传到www目录下,这里稍微有点慢,可以尝试压缩后再上传,然后在线解压,

等待所有文件上传完毕后,通过“对外地址/gpt/chat?q=你的问题”即可访问我们部署的ChatGPT服务。

三、问题总结

1、hostbuddy服务器的免费试用时长目前是60天即2个月,这个门槛比较低,到期前找个邮箱重新注册即可继续使用,当然也可以选择其他的厂商,比如LAF,免费时长是一个月,需要手机号注册,具体可参考:用Laf云平台,两步将ChatGPT接入微信公众号(含代码)

2、注册hostbuddy一个IP只可注册一次,如果遇到访问注册页显示已经注册的情况,可以选择重启路由器换IP或者使用代理。

3、如果使用代理注册hostbuddy需要注意并不是所有的地区都可以注册免费试用账号,具体支持的地区需要自测,我只发现日本是不行的。

4、hostbuddy服务器目前默认的node版本是v18x,如果需要自定义node版本,可参考:https://www.hostbuddy.com/support/kb/a2205/how-to-custom-nodejs-version-with-our-server.aspx

5、在更新程序文件时,如遇到代码不更新的情况,需要重新保存入口文件比如app.js,重新上传即可。

6、如果网站无法访问,又没有给出具体的错误信息,可以到FTP网站目录如www下根据访问时间查看iisnode目录下对应的txt文件获得报错信息。

四、结语

如需下载本文所涉及的源码及素材包,请在关注本站公众号后发送:gpt

  • 支付宝二维码 支付宝
  • 微信二维码 微信

本文地址: /free-chatgpt-api.html

版权声明: 本文为原创文章,版权归 逐梦个人博客 所有,欢迎分享本文,转载请保留出处!

相关文章