缘起
最近有些ai需求,想搭建一个自己的chatgpt web页面,新的chatgpt4要收费,找到它的平替Coze用着还不错,不过每次要科学上网才能访问也是很麻烦的,看到有项目可以调用其api来放自己搭的台子上,就来试试了。
折腾
前排提示,此方法有诸多限制,自己搭建起来就是图一乐,方便点使用。正常需求的话直接使用Coze就可以了,不必绕一大圈。需要准备科学上网环境(有这个其实直接用Coze就可以了…),还要有一台外网的服务器(项目推荐的纯白嫖方案没法使用了)。另外这种方法调用接口是有限制的,如下图所示,当然也是可以创建多个Discord账户来突破限制。
注册设置Coze
首先准备需要用到的账号,先去coze官网https://www.coze.com/
注册个账号(需要科学上网)。如图示,进到官网后,点击右上角的“get started”按钮来到注册页面,国内手机号就可以注册,填入验证码后设置个生日和用户名就完成注册了。
注册完后,点击左上角的“Create bot”按钮,创建bot页面,“Workspace”选Personal;“bot name”填个自己喜欢的名字;头像让ai生成个就可以了,当然也可以上传自己喜欢的图片。最后点击右下角的“Confirm”按钮就创建好了,这个页面不要关了先放一边备用。
注册设置Discord
首先还是准备需要用到的账号,来到Discord官网https://discord.com/
注册个账号(需要科学上网)。如图示,点击右上角的“login”按钮,新的页面点击“注册”按钮来到注册页面,用邮箱即可注册,填入自己信息后点“继续”就可以完成创建了。
创建好账号后会有个向导引导你创建Discord服务器,点击“亲自创建”按钮开始创建服务器,下个页面一般选“仅供我和我的朋友使用”就可以了,接下来输入服务器名称,跳过没必要设置的界面,最后点击“带我去我的服务器!”就可以进到服务器页面了。同样这个页面不要关了先放一边备用。
创建Discord应用
接下来需要创建两个Discord应用,一个用来监听coze bot,一个用来传递discord的消息,两个应用的创建方法是一样的,首先进到https://discord.com/developers/applications
Discord Developer Portal网站,点击右上角的“New Application”按钮进入创建流程。
接下来的页面填写好应用名字,勾选上条款,然后点击“create”按钮就创建好了。来到“General Information”页面记录下APPLICATION ID。然后来到Bot页面,记录下TOKEN。
还是在Bot页面,下拉到“Privileged Gateway Intents”项目,将图示的三个按钮都打开。然后来到“OAuth2”页面,如图示勾选bot的管理员权限,然后拉到最下面,复制GENERATED URL连接到浏览器打开。
将应用添加到频道,如图示,选择好服务器点“继续”,然后授予管理员权限就好了。不出意外的话在频道里就能看到添加的机器人了。然后依葫芦画瓢再创建一个应用。
Coze Bot绑定Discord应用
回到Coze页面,如图示,点击右上角的“Publish”按钮。新的页面点击Discord项目后面的“configure”按钮,弹出的页面填入之前创建的用来监听coze bot应用token点击确认。勾选上Discord项目,点击右上角的“publish”,如果出现成功提示就完成配置了。然后就可以看到coze机器人在线了。
搭建Coze-discord-proxy
在一台能连接外网的服务器上用docker搭建Coze-discord-proxy。首先在全球最大同行交流网站上找到deanxv/coze-discord-proxy
项目,在readme里面找到docker部署需要用到的代码,然后需要将其中的环境变量USER_AUTHORIZATION,BOT_TOKEN,GUILD_ID,COZE_BOT_ID,PROXY_SECRET,CHANNEL_ID
改成自己的,其中USER_AUTHORIZATION变量需要在网页上抓取下。
按F12打开浏览器的开发者调试界面,在Discord频道的聊天框发一条消息。如图示,切换到F12的network界面,搜索框中搜索“massages”点击“massages”找到Authorization的值复制下来,用于USER_AUTHORIZATION变量的值。
接下来是其他变量的值,其中GUILD_ID和CHANNEL_ID是Discord服务器id和频道id,如图示,先点击设置按钮,然后来到“高级设置”选项,打开开发者模式,然后就能很容易获取到了。
然后BOT_TOKEN填写传递discord消息应用的token;COZE_BOT_ID填写监听coze bot应用的ID;PROXY_SECRET自己设置,是后面要用到的API-KEY的值。编辑好代码后,在服务器命令行输入回车,创建docker应用就可以了。打开容器的日志,看到如图示提示enjoy it,就运行成功了,开了防火墙的话,记得放行端口。没有改容器端口的话,coze proxy接口地址就是你服务器ip:7077
接入chatgpt-web平台
有了接口,还需要个web台子来方便使用。大部分项目都是可以用的,这里用chatgpt-web举例。服务器命令行输入
`docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=页面访问密码 \
yidadaa/chatgpt-next-web`
代码创建容器,OPENAI_API_KEY的值就是刚才PROXY_SECRET设置的值,code值就是页面访问密码,改成自己的就行了。
如果没改端口的话,访问服务器IP:3000就能来到chatgpt-web页面。如图示,点击“登录”按钮,填入设置的页面密码和OPENAI_API_KEY就可以成功登陆,点击设置按钮,在图示位置填入上一步获取到的接口地址——服务器ip:7077,尝试对话一下,不出意外的话能收到满意的回复,至此就折腾好了。
总结
这一趟折腾的够呛,大家看个乐子就好,折腾麻烦限制太多,实用价值不高…
文章评论