为铜仁客户提供一站式小程序制作服务
24小时咨询电话:18085674061

— 帮助中心 —

HELP CENTER
联系我们/ CONTACT US
全国免费客服电话 18085674061

邮箱:4867443@qq.com

手机:18085674061

电话:0856-5202348

地址:铜仁市大数据产业园13楼

产品知识

铜仁免费实现OpenAI使用GPT4和DALL-E-3绘画功能,通过Coze社区托管的discord-bot调用OpenAI接口API,coze-discord-proxy部署详细教程

发布时间:2024-09-08

Coze是字节跳动在海外推出的AI聊天机器人和应用程序编辑开发平台。专为开发下一代AI聊天机器人而设计,该平台允许用户无论是否有编程经验,都能快速创建各种类型的聊天机器人,并轻松部署在不同的社交平台和消息传递应用程序上。并轻松部署在不同的社交平台和消息传递应用程序上,它可以创建自己的 Bot 机器人类似 ChatGPT 的插件能够实现不同角色的机器人下面详细介绍一下Coze的 Bot 调教以及搭建 Bot 对接社交平台实战供学习交流。 本教程可以说是目前网上最全面详细教程,折腾了很久收集完最全的教程供参考,本页提供反代系统coze-discord-proxy下载对照文档操作,需要海外主机  注:文生图、图生文、文件识别等功能需要在coze选择相应插件(GPT4V、DALLE3等)后发布才会生效。每天调用限制GPT-4 Turbo (128k) - 50次/天 GPT-4 (8k) - 100次/天 GPT-3.5 (16k) - 500次/天 下图是本站建好的GPT-3.5和GPT-4机器人接口。优势在对话框内可同时两个模型接口均能实现DALL-E-3绘画功能生成图片,这功能是其他API接口没有的(DALL-E-3一般需要单独对接),这里需要配置后安装coze-discord反代系统才支持整个过程还是比较麻烦(用到海外主机反代),不建议小白操作,API速度体验下来一般感觉还是有些卡。 目前本站微软Azure OpenAI接口已申请下来可以正常使用,要稳定建议使用官方API接口,目前Midjourney+GPT-3.5+GPT-4 均为官方接口,提供API供会员使用  https://mj.cxhao.com/ 免费实现OpenAI使用GPT4和DALL-E-3绘画功能,通过Coze社区托管的discord-bot调用OpenAI接口API,coze-discord-proxy部署详细教程插图

一、Coze介绍


Coze是字节跳动在海外推出的AI聊天机器人和应用程序编辑开发平台。专为开发下一代AI聊天机器人而设计,该平台允许用户无论是否有编程经验,都能快速创建各种类型的聊天机器人,并轻松部署在不同的社交平台和消息传递应用程序上。

Coze官网:https://www.coze.com/

提醒:

(1)如果在阅读本文时出现图像裂开、内容不是最新等问题,这是因为本站开启了全站缓存(登入用户无缓存),请尝试刷新页面或者直接注册账号登入即可完美解决问题!

(2)项目搭建部署过程中遇到的问题请先查看本文第八节内容,是否有你遇到的问题,尝试自己先解决。

二、前提要求


  1. 确保您的本地PC能够科学上网,以便访问Coze和Discord
  2. 在部署Coze代理服务器时,确保服务器具备互联网访问权限,以便能够访问Discord的API接口。如果在国内服务器上部署,您可以参考以下文章实现科学上网
  1. 在服务器上安装Docker和Docker Compose服务,管理和运行coze proxy应用

三、创建Coze Bot


访问Coze官网,然后注册一个Coze账号,目前支持Google账号和手机号注册。说明:中国大陆地区的手机号也可以直接注册使用!

  1. 注册之后进入到Coze页面,然后点击
    1
    Create Bot

    创建一个Bot

1719344554-44357b0264a9c74
    1. 这里填写Bot的资料信息
  • ⚠️ 注意:Bot名称中请勿包含gpt、chatgpt等与OpenAI相关的词语以及相关的模型名称,不然创建的Bot无法使用!!!
1719344573-bfccff9349a211f
1719344558-438d0df6f6e9aef

四、发布到Discord


1、创建Discord服务器

现在我们需要把Czoe Bot发布到我们的Discord服务器中,首先我们需要拥有一个自己的Discord服务器。

先登入Discord,你可以使用Discord客户端,也可以通过Discord网页端登入你的discord账号来继续下面的操作

1719344578-ba6992389dd33af

2、创建Discord应用

这里我需要创建最少两个Discord应用,应用程序的类型为Bot,一个是与coze bot进行绑定的Bot,一个是用来监听discord消息的Bot,两个Bot创建的步骤流程一致,都按照下面的步骤进行操作即可!确保创建完成之后记住对应应用的

1
Token

1
ID

,后续配置 coze-discord-proxy 时候需要使用到

2.1:创建Discord应用

  • 前往 Discord Developer Portal 并创建应用
  • 在应用页面顶部,点击
    1
    新建应用

    。填写应用名称后,即可创建一个新的 Discord 应用。

1719344561-6aa6a28631ad8d0

2.2:获取Token和ID

说明:ID如果忘记了,后面在频道里也可以获取到,但是Token只会展示一次,所以我们要复制保留下来,如果忘记了那就需要重新生成新的Token了

1719343822-0b605e57e6273e9
1719344658-2646c237d375d05

2.3:配置对应的权限

接下来,我们点击OAuth2 —-> URL Generator —-> bot —-> 按照下图勾选相应的权限

请注意,SCOPES 选择应用程序运行所需的范围,选择之后会出现 PERMISSIONS 权限选择,我们按图上进行勾选,页面底部会给你的应用程序生成邀请链接。您需要复制该链接,并在浏览器中访问它以便将应用添加到我们的服务器。

⚠️ 注意:在coze-discord-proxy 3.0及其后续版本中,为了实现会话隔离,机器人需要获得自动创建频道的权限。因此,在配置权限时,所有的Bot都需要获得管理员权限。如果你之前已经创建了Discord Bot,那么只需找到对应的机器人然后把权限改为Admin,并复制下面的链接重新把Bot加入到你的服务器中即可。

Discord开发者中心:https://discord.com/developers/applications

1719344616-14170f70ce249af
  • 复制连接在浏览器打开,把重新分配了权限的Bot添加到服务器即可!
1719344565-709b45d225b7263

2.4:开启Discord权限

注意:与coze bot进行关联的应用机器人和监听消息的应用机器人都需开启!不然会出现消息发过去之后第三方平台接收不到的情况!!

1719344590-9706a4d9594ac22

2.5:添加应用到频道

提示:如果Bot给了 Administrator 权限,那么下图中就会有管理员的权限!

1719344634-b9165b792d99a8d

可以看到我们的应用已经添加到了频道中了,上面创建的这个应用我们是用来与coze bot进行关联的,然后你在按照上面的步骤创建另外一个应用

3、发布Coze Bot

把上面创建的两个Discord Bot中其中一个要与Coze Bot绑定的Bot Token按照下图进行配置

免费实现OpenAI使用GPT4和DALL-E-3绘画功能,通过Coze社区托管的discord-bot调用OpenAI接口API,coze-discord-proxy部署详细教程插图12

五、搭建Coze代理


1、单个机器人接入

现在,我们使用GitHub大佬开源的代理项目,实现通过接口调用被

1
coze

托管的

1
discord-bot

。目前此项目对于个人使用没问题。coze-discord-proxy

项目开源地址:https://github.com/deanxv/coze-discord-proxy

服务器ID和频道ID获取

注意:先确认开启了开发者模式,如果没有开启按照下面进行手动开启。

1719343773-fdd4df035daef9d
1719344593-0c55b61cc5f09b5

服务器ID获取 和 频道ID获取,具体操作如下图:

1719343828-60b2a557631c614
1719344655-db1d6f36f7e9243

USER_AUTHORIZATION 获取

提示:USER_AUTHORIZATION 获取请使用Discord网页版,目前版本需要通过Discord用户账号去艾特机器人才会回复消息!

1
F12

打开开发者模式,然后在你服务器中的文字频道,通过你的Discord用户(非机器人)在频道中发送一条任意消息,然后按照下图进行操作获取到

1
Authorization

对应的值并复制下来,后面需要使用!

1719344643-8fa4fbec49b5a4f

用户ID获取[4.1.5版本后无需此参数]

鼠标右键获取用户ID并复制

1719343855-a8e9b3baf9eb1a7

创建部署 docker-compose 文件。配置文件中的参数含义请看下面的环境变量中的解释

# 创建存储目录
mkdir -p /data/coze-discord-proxy && cd $_
vim docker-compose.yml
version: '3.4'
services:
coze-discord-proxy:
image: deanxv/coze-discord-proxy:latest
# 如果你的网络环境访问docker hub不稳定的话,可以把上面的镜像地址改为下面的地址进行下载镜像
#image: dockerproxy.com/deanxv/coze-discord-proxy:latest
container_name: coze-discord-proxy
restart: always
ports:
- "7077:7077"
volumes:
- ./data:/app/coze-discord-proxy/data
environment:
- USER_AUTHORIZATION=MTA5OTg5N************uIfytxUgJfmaXUBHVI
- BOT_TOKEN=MTE5OTk2xxxxxxxxxxxxxxrwUrUWNbG63w
- GUILD_ID=119xxxxxxxx796
- COZE_BOT_ID=119xxxxxxxx7
- CHANNEL_ID=119xxxxxx24
- PROXY_SECRET=sk-123456
#- PROXY_URL=http://xx.xx.xx.xx:7890
- TZ=Asia/Shanghai
# 部署服务
docker compose up -d
# 检查容器服务运行状况
docker ps
docker logs -f coze-discord-proxy

1
 
1719344587-e4ac4079357efc9

环境变量

  1. 1
    USER_AUTHORIZATION 

    此处修改为Discord用户的授权密钥(多个请以,分隔)

  2. 1
    BOT_TOKEN

     此处Toekn为监听对话消息的Discord应用Token

  3. 1
    CHANNEL_ID

     [可选]默认频道-在使用与openai对齐的接口时(/v1/chat/completions) 消息会默认发送到此频道; 3.0.0之后的版本中此参数只是用来确保Coze Bot机器人长时间没有对话的情况下被下线,用来每日凌晨自动执行定时对话任务

  4. 1
    GUILD_ID

     我们创建的2个Discord Bot机器人所在的服务器ID

  5. 1
    COZE_BOT_ID

     这个是我们创建的两个Discord Bot其中一个与Coze关联的Bot ID

  6. 1
    CHANNEL_AUTO_DEL_TIME:0

      [可选]是否启用默认频道[0:否;1:是] (默认为0) 启用后每次对话都会在默认频道中,会话隔离会失效,推荐不设置

  7. 1
    ALL_DIALOG_RECORD_ENABLE:0

      [可选]是否启用全量上下文[0:否;1:是] (默认为1) 关闭后每次对话只会发送

    1
    messages

    中最后一个

    1
    role

    1
    user

    1
    content

    ,推荐不使用此环境变量

  8. 1
    CHANNEL_AUTO_DEL_TIME:5

      [可选]频道自动删除时间(秒) 此参数为每次对话完成后自动删除频道的时间(默认为5s),为0时则不删除,推荐不使用此环境变量

  9. 1
    COZE_BOT_STAY_ACTIVE_ENABLE:1

      [可选]是否开启每日

    1
    24

    点活跃coze-bot的定时任务,默认开启,为0时则不开启,推荐不使用此环境变量

  10. 1
    PORT:7077

      [可选]端口,默认为7077

  11. 1
    SWAGGER_ENABLE

      [可选]是否启用Swagger接口文档[0:否;1:是] (默认为1)

  12. 1
    ONLY_OPENAI_API

      [可选]是否只暴露与openai对齐的接口[0:否;1:是] (默认为0)

  13. 1
    PROXY_SECRET

     [可选]请求头校验的值(前后端统一),原文链接:https://www.dqzboy.com配置此参数后,每次发起请求时请求头加上

    1
    proxy-secret

     参数,即

    1
    header

    中添加 

    1
    proxy-secret:key
  14. 1
    REQUEST_OUT_TIME:60

      [可选]对话接口非流响应下的请求超时时间

  15. 1
    STREAM_REQUEST_OUT_TIME:60

      [可选]对话接口流响应下的每次流返回超时时间

  16. 1
    USER_AGENT:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

      [可选]discord用户端Agent,使用自己的可能有效防止被ban,不设置时默认使用作者的 推荐使用此环境变量

  17. 1
    NOTIFY_TELEGRAM_BOT_TOKEN=6232***********Niz9c

      [可选]作为通知TelegramBot的Token(通知事件:1.无可用

    1
    user_authorization

    ;2.

    1
    BOT_TOKEN

    关联的BOT触发风控)

  18. 1
    NOTIFY_TELEGRAM_USER_ID=10******35

      [可选]

    1
    NOTIFY_TELEGRAM_BOT_TOKEN

    关联的

    1
    Telegram-Bot

    推送至该变量关联的

    1
    Telegram-User

    (

    1
    NOTIFY_TELEGRAM_BOT_TOKEN

    不为空时该变量也不可为空)

  19. 1
    PROXY_URL:http://xx.xx.xx.xx:7890

     [可选]如果你服务器访问不了Discord,那么尝试配置代理。

2、配置多个机器人

多个机器人配置,我们只需要创建与Coze Bot进行绑定的Discord Bot就可以,监听消息的Discord Bot无需再创建,只需要一个就可以

说明:创建流程跟文章第四节的操作流程其实是一样的,然后创建完成配置权限并把机器人拉到服务器里

  1. 多个机器人创建步骤,参考下图重复创建多个机器人即可。
  1. 1
    docker-compose.yml

     文件同级目录下创建

    1
    data/config/bot_config.json

    文件

目前 coze-discord-proxy v3.0.0之后的版本已经实现对话隔离,下面配置文件中的channelId(频道ID)只是为了实现Bot可以保持活跃


1
 
# 例如我这里docker-compose.yml 文件存放在 /data/coze-discord-proxy/
]# cd /data/coze-discord-proxy/
]# mkdir -p data/config/
# 创建 bot_config.json 文件并进行配置
]# vim data/config/bot_config.json
[
{
"proxySecret": "sk-123", // 接口请求密钥(PROXY_SECRET,可以理解为API KEY)
"cozeBotId": "12***************31", // 此处为与Coze Bot进行绑定的Discord机器人的ID
"model": ["gpt-4","dalle-3"], // 模型名称(数组格式,如果是使用的第三方平台,确保这里跟你第三方平台中使用的模型保持一致,注意大小写)
"channelId": "12***************56" // [可选] discord频道ID(机器人必须在此频道所在的服务器)(目前版本下该参数仅用来活跃机器人)
},
{
"proxySecret": "sk-456",
"cozeBotId": "12***************64",
"model": ["gpt-4","gpt-4-16k"],
"channelId": "12***************78"
},
{
"proxySecret": "sk-789",
"cozeBotId": "12***************12",
"model": ["gpt-3.5-turbo","gpt-4-128k"],
"channelId": "12***************24"
}
]

1
 
  1. 配置文件创建好之后,注意修改
    1
    docker-compose.yml

     文件中

    1
    PROXY_SECRET

    参数与配置文件中

    1
    proxySecret

    值一一对应(标红处)

配置文件中的参数含义请看上面的环境变量中的解释


1
 
标签:

相关推荐

在线客服
服务热线

服务热线

18085674061

微信咨询
返回顶部
X

截屏,微信识别二维码

微信号:trxianglei

(点击微信号复制,添加好友)

微信号已复制,请打开微信添加咨询详情!