最近大火的ChatGPT项目强烈的吸引了我的注意力。于是乎就尝试的注册了一个账号,然后你会发现,能让你玩一天。什么取代搜索引擎,取代程序员都不是危言耸听的话。

开始之前先简单了解一下什么是ChatGPT:OpenAI的一个人工智能项目,说是能直接生成代码、自动修复bug、在线问诊、模仿名人写作甚至代替各大搜索引擎的一个人工智能项目。ChatGPT 是 OpenAI 训练的对话式大规模语言模型,以对话的方式进行交互。它和之前的另一款模型 InstructGPT 属于同级模型,代表“GPT 3.5”代。

既然是OpenAI的项目,那肯定是注册一个OpenAI的账户。注册账户是免费的,但是注册账户时国内的电话号码是不能用的,所以,需要购买一个国外的电话号码,用来接受短信。简单明了,所需材料如下:

一个邮箱(国内可行)
一个国外电话号码(用来接受验证短信)
科学上网(目前国内地址注册会提示该国家不支持,所以要学会科学上网)

第一步通过邮箱注册

点击OpenAI登录界面,点击Sign up进入到注册表单页进行邮箱注册。按照注册流程一步一步进行即可。

c1
登录页面

c2
注册信息页

注册信息填写完毕后,会给你发送一份邮箱,让你确认邮箱地址。然后点击确认即可。然后会跳到一个填写姓名的 页面,自己随意填写即可。

c3
个人详情页

填写完成后,最重要的一步来了,需要你填写电话号码进行短信验证。电话列表里面虽然有中国选项,但是当你填写国内号码是你会发现提示你:‘OpenAI’s services are not available in your country.’,对,不支持国内号码,所以这个时候你就需要购买一个国外的电话号码。

c4
电话号码填写

第二步购买国外虚拟号码

登录注册
https://sms-activate.org/cn 网站,里面有各种需要的号码。目前找到最便宜的是印度的号码,只需要0.85元(截止到2022年12月8日)。购买国外点好号码流程如下:

登录注册上面的网站地址
点击右上角余额进行充值(支持支付宝支付,但是最低1美元起)
点击左侧的搜索框,输入OpenAI,点击搜索到的内容
选择一个你想要购买的国家,点击列表右边的购物车即可(我购买的是India的,最便宜)
然后页面中就会显示分配给你的电话号码,在进行接下来的操作
c5
搜索支持OpenAI的号码

c6
点击购物车购买

第三步复制号码进行验证

复制上文加入到购物车的虚拟电话号码。其中前两位代表的是区号,后面几位才是实际意义上的电话号码。复制号码到你在OpenAI的验证号码页面,然后进行验证。点击‘Send Code’后应该就会在你的
https://sms-activate.org/cn 页面收到验证码,然后输入OpenAI注册验证即可(如果没有收到验证码,在二十分钟之内虚拟号码是可以免费更换的,我是一次就通过了,很快几秒钟就收到)。

c7
验证码填写

就这样,一切顺利,一分钟之内就可以注册完成。然后就可以体验ChatGPT的强大功能了。当你尝试后也许会落寞,因为它的确很轻大,强大到可能真的要替换部分人工工作。甚至搜索引擎都可以代替了,而且还没有广告。

第四步获取令牌

要获取会话令牌:

1.转到https://chat.openai.com/chat并登录或注册。
2.打开开发工具。
3.打开Application> Cookies。 聊天 GPT cookie
4.复制值__Secure-next-auth.session-token并将其保存到您的环境中。

c8

第五步调试运行

这里,我选择的是NodeJs作为服务端,Express作为MVC框架

Node版本要大于16,低版本可能不支持await import语法

1.安装核心库:

npm install chatgpt

2.封装一个js文件(chatgpt.js)

let chatApi = null;

async function init() {
    const { ChatGPTAPI } = await import('chatgpt')
    // sessionToken is required; see below for details
    const api = new ChatGPTAPI({
        sessionToken: '你的token'
    })

    // ensure the API is properly authenticated
    await api.ensureAuth()

    chatApi = api;
}

async function sendMsg(text){
    // send a message and wait for the response
    if(!chatApi){
        return;
    }
    const response = await chatApi.sendMessage(text)
    return response;
}

init().then( async () => {
    console.log("初始化ChatGpt成功")
})


exports.sendMsg = sendMsg;

3.在运行的地方引入文件

const chatApi = require("../static/js/chatgpt.js");
const res= await chatApi.sendMsg('What is OpenAI?')
console.log(res)

调试输出:

c9

实战效果

c10

c11

c12

c13

c14

c15

c16