首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenAi[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人-学习详解篇

OpenAi[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人-学习详解篇

作者头像
JanYork_简昀
发布于 2025-05-20 11:18:37
发布于 2025-05-20 11:18:37
15000
代码可运行
举报
运行总次数:0
代码可运行

文章大部分来自:https://lucent.blog 博客地址:https://blog.ideaopen.cn

最近火热全文的ChatGPT,被很多人玩出了花,我们在Github上可以看到几个常见的逆向SDK包,这一篇我将以学习的方式来写这一篇文章。

这些SDK不仅仅可以用于开发机器人,还可以自由的开发你所想要的效果,如你所想,他是一个工具包,帮你构建一个ChatGPT服务和会话。

最近OpenAi给他套上了一个CloudflareCDN服务,这个服务会去拦截非真机请求,现在已经可以破解了。

寻找合适的逆向SDK

原作者用的是这个。

整个包的文件并不是很多,喜欢Python的可以去看看,我这个Java看不太懂。

实践开始-实践篇第一

代码中使用到的revChatGPT依赖源码库: https://github.com/acheong08/ChatGPT

我们的Python版本,需要>=3.8,然后pip直接升级到最新版本。

下面代码的目的是与ChatGPT官方接口进行交互,注意安装一下里面用到的依赖chat-gpt-qbot.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import flask, json
from flask import request
from revChatGPT.revChatGPT import Chatbot
config = {
    "session_token": "换成你自己的token"
}
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
chatbot = Chatbot(config, conversation_id=None)
def chat(msg):
    message = chatbot.get_chat_response(msg)['message']
    print(message)
    return message
@server.route('/chat', methods=['post'])
def chatapi():
    requestJson = request.get_data()
    if requestJson is None or requestJson == "" or requestJson == {}:
        resu = {'code': 1, 'msg': '请求内容不能为空'}
        return json.dumps(resu, ensure_ascii=False)
    data = json.loads(requestJson)
    print(data)
    try:
        msg = chat(data['msg'])
    except Exception as error:
        print("接口报错")
        resu = {'code': 1, 'msg': '请求异常: ' + str(error)}
        return json.dumps(resu, ensure_ascii=False)
    else:
        resu = {'code': 0, 'data': msg}
        return json.dumps(resu, ensure_ascii=False)
if __name__ == '__main__':
    server.run(port=7777, host='0.0.0.0')

我们导入我们的逆向包。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from revChatGPT.revChatGPT import Chatbot

这是逆向包里面的源码,用于初始化一个服务,我们刚刚的类中调用了这个包。

然后去创建抛出这个服务的接口,方便被调用。

我们只要运行上面的代码就可以在7777端口直接与ChatGPT进行交互了。 我们使用接口工具测试一下,结果如下图,可以看到,接口正常工作并从ChatGPT得到了对话结果。

其中消息体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "msg": "你会数学吗"
}

消息体是我们自定义的内容,你可以自己增加字段对接口进行功能扩展 本例子中的msg就是我们的发言内容 而接口返回的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": 0, 
    "data": "是的,我会数学。我是一个大型语言模型,我可以回答各种问题,包括数学问题。你有什么数学问题需要我帮助你解决吗?"
}

这也是我们自己定义的,当code=0时代表与ChatGPT交互成功,此时dataChatGPT反馈给我们的对话内容。而当code=1时说明出现了错误,此时没有data,但在msg中返回了错误信息。

到这里我们就拥有了一个可以和ChatGPT交互到接口,通过这个接口,我们就能与ChatGPT进行对话

既然进行对话,那就需要一个输入框和一个按钮,你可以做一个网页来调用这个接口,这很简单,我们不在这里赘述了。

我们真正要做的是一个QQ机器人,其原理就是让QQ机器人监听到消息,并通过我们的接口把消息转发给ChatGPT,然后再把ChatGPT返回的对话内容发送给QQ用户,这样一个可以对话的机器人就做好了,具体做法,下文继续讲解。

实践继续-实践篇第二

上文我们实现了一个接口,用代码成功获取到了ChatGPT的对话内容,下面我们将继续完善QQ机器人相关逻辑,注意看代码中的注释。

为了更方便的将优化后(接入QQ机器人)的代码,与之前的代码比较,我开启一个本地比较,并收起了没有变动的代码。

机器人的交互实现逻辑,这个你可能会看不懂,因为我们是使用了一个机器人框架,那其实我们不要局限自己的思想,我们可以尝试自己修改使用其他机器人框架,比如云仔机器人,逻辑去自己实现。

我们使用的是go-cqhttp

go-cqhttp帮助中心

所以说,这一写更改,你得去了解这个go-cqhttp你才能看懂,不过我们要灵活学习,我们只需要了解思路便可,然后去官方文档找使用方法。

此时,这些代码已经拥有了处理好友请求、拉群请求、回复消息的功能。 可以看到,相对于上个文章,我们增加了很多代码,并且都加了注释 当然,这些代码看不懂没关系,可以照着我的文章改一下对应的地方,直接用。

大家来原创作者Q群玩儿,我也在里面:206867743

实践继续-实践篇第三

前两个文章我们已经解决了和ChatGPT通信的问题和QQ处理消息的问题,现在我们就需要处理如何监听QQ消息了。

在一次次的更新和遇到的问题中,原创作者和逆向包的很多作者都更新了很多内容,我们看看原创作者的更新记录:

2022-12-12 23:52

  • 增加一个Windows专用版本,只能在Windows电脑或服务器上使用,可以自动获取cloudflare Cookie

2022-12-12 12:38 更新内容

  • 增加CloudFlare配置,更新依赖,暂不支持账号密码,暂不知道CloudFlare配置多久需要更换一次,现在好像必须要翻墙了

2022-12-10 17:42 更新内容

  • 增加账号密码支持,可以不使用token,直接使用账号密码

2022-12-10 00:23 更新内容

  • 将每个QQ私聊区分,每个人私聊机器人都是一个独立的会话
  • 将每个QQ群区分,每个QQ群是一个独立的会话
  • 增加回复字数限制,超过限制转换成图片回复(见配置文件)
  • 如果想要重置会话,对机器人发送:重置会话
简介

监听QQ消息并不需要我们写代码,因为市面上已经有很多开源QQ机器人框架,在这里我们使用go-cqhttp

官方文档: https://docs.go-cqhttp.org/guide/quick_start.html

如果您感兴趣的话,可以阅读一下官方文档,如果不想看,直接看我的文章即可。

前提条件

  • 您需要准备一个QQ号,不要使用自己大号
  • 您需要准备一个OpenAi的账号,用来获取Token
  • 一台服务器(可选,如果您想让机器人7x24小时在线的话,请准备一台,1核1G足以,外服最好)

注意:OpenAi(ChatGPT)的注册方式B站有一堆视频,随便参考一个就行。

不会注册也可以看看我博客的文章:https://blog.ideaopen.cn/index.php/archives/143 (旧版本)机器人搭建教程我也是写过了:https://blog.ideaopen.cn/index.php/archives/144

但是!注意,先前说过,现在的ChatGPT套了一个CFCDN,会拦截人机交互请求。

那我们现在,除了需要获取OpenAisession-token,还需要获取cf_clearance

同时,我们还需要获取user-agent

前往控制台的网络标签里面查看,如果是空白,你发一句消息就可以。

复制之后写到配置文件中,也就是py/config.js文件。

目前原创作者打包了两个版本,一个Linux的,麻烦在于cfCDN交互令牌会在2H内失效,我们需要手动获取并更新,麻烦。

另一个是window版本,已经实现自动获取CloudflareCookie

配置指南

这个版本只能在Windows上使用,Windows电脑或服务器都行。 依然只支持token。 系统会自动打开谷歌浏览器获取Cloufflare相关Cookie,第一次运行时可能需要手动验证,请注意点一下。

注意,脚本它只能打开Google浏览器,没配置其他浏览器。

其他描述

那在作者最新版本的代码里面,也是新增了一部分功能。

自行研究。

然后很多逆向包作者也在想一个完美解决的办法,我们慢慢等待吧!

然后,请看看这句话:

尾述

写着一篇,我基本上是去看原创作者的代码和逆向包的代码,我是一个业余的Python,但是我觉得,很多东西是可以去尝试的,通原理而致用,当你学会整个思路,那你也可以自己写一个自己的机器人,自己去配置去设计交互逻辑。

比如可以新增一个Markdown渲染器+代码高亮,将长文本以图片方式展示(虽然已经存在了),又比如,绑定一个不被拦截的域名,过长文本直接生成一个临时链接,点开查看,刚好通过网页渲染后,美观度高很多。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木有枝枝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用OpenGPT(ChatGPT)搭建 QQ 机器人
一瓶可乐钱注册OpenGPT,教程链接:https://blog.ideaopen.cn/index.php/archives/143/
JanYork_简昀
2025/05/20
1620
使用OpenGPT(ChatGPT)搭建 QQ 机器人
使用 GO-CQHttp或mirai框架 搭建QQ的机器人
按下ctrl+c结束进程,并输入 cd ~返回home文件夹。到这,你的cqhttp就配置成功了!
JanYork_简昀
2024/03/07
9080
使用 GO-CQHttp或mirai框架 搭建QQ的机器人
手把手教你搭建QQ机器人
大家好,我是潇潇雨声。在前面的分享中,我们一起讨论了如何建立微信机器人。今天,我很高兴与大家分享如何在短短 5 分钟内,通过利用开源项目 chatgpt-mirai-qq-bot,轻松打造属于自己的 QQ 聊天机器人。现在,让我们迈出第一步,开始动手吧!
用户10517932
2024/01/06
4.6K0
手把手教你搭建QQ机器人
太好玩了,我用 Python 做了一个 ChatGPT 机器人
毫无疑问,ChatGPT 已经是当下编程圈最火的话题之一,它不仅能够回答各类问题,甚至还能执行代码!
刘早起
2022/12/20
2.6K0
太好玩了,我用 Python 做了一个 ChatGPT 机器人
QQ机器人对接ChatGPT
我这里用的是docker部署,主要是方便,这个云崽机器人去除了原神相关的功能,并加了锅巴插件(不要升级锅巴插件)和chatgpt插件
云计算小黑
2023/04/08
1.4K0
微信公号DIY:一小时搭建微信聊天机器人
使用Python实现聊天机器人的方案有多种:AIML、chatterBot以及图灵聊天机器人和微软小冰等。
goodspeed
2020/12/25
3.2K0
搭建属于自己的ChatGpt微信聊天机器人
本文是基于chatgpt-on-wechat项目的部署文章,感兴趣的可以直接移步这里
萌萌哒草头将军
2025/02/19
4070
搭建属于自己的ChatGpt微信聊天机器人
在 KubeGems 上部署 ChatGPT 飞书机器人
ChatGPT是由 OpenAI 开发的一个人工智能聊天机器人程序,于2022年11月一经推出,就凭借优秀的对话体验刷爆了全网,并获得地表最强 AI 聊天机器人的称号。目前ChatGPT有很多应用场景,不限于 搜索引擎辅助、生成代码、语言翻译、文字创作等等,当下甚至已经出现很多个人或公司开始基于 ChatGPT 开发出一些特定÷场景的应用例如 客服、药品分类等等。虽然 ChatGPT 目前存在一些 胡编和 逻辑混乱的问题,但和它的其它同行相比已远远领先。作为一个天然适合聊天的 AI 服务,本篇文章自然也将指导用户在 KubeGems 中部署 ChatGPT API 并将其接入到飞书机器人中为个人和企业快速提供简单的对话服务来体验 ChatGPT。
云原生小白
2023/01/11
4.6K0
用Gradio、Langchain和OpenAI构建您自己的自定义聊天机器人
聊天机器人在与企业和其他组织进行互动方面越来越受欢迎。它们可以用于提供客户服务、回答问题,甚至生成创造性内容。构建自定义聊天机器人可以极大地改善客户体验并自动化任务。
山行AI
2023/11/13
2.8K0
用Gradio、Langchain和OpenAI构建您自己的自定义聊天机器人
把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10
    就像黑火药时代里突然诞生的核弹一样,OpenAI的ChatGPT语言模型的横空出世,是人工智能技术发展史上的一个重要里程碑。这是一款无与伦比、超凡绝伦的模型,能够进行自然语言推理和对话,并且具有出色的语言生成能力。
用户9127725
2022/12/09
1.9K0
把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10
NoneBot2 + Go-cqhttp开源通信框架玩转智能AI机器人 - ChatGPT
NoneBot2为跨平台Python异步聊天机器人框架,本文将阐述在Linux系统搭建一套QQ机器人,如何在日常使用中带来更多便利,为我们服务。
RokasYang
2023/02/10
5.4K1
NoneBot2 + Go-cqhttp开源通信框架玩转智能AI机器人 - ChatGPT
QQ自动聊天机器人脚本,QQ群聊自动回复机器人,pythonQQ机器人插件【python】
下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:8888
用户11749621
2025/07/25
2450
如何落地一个智能机器人
随着智能 AI 的普及,对话式人工智能产品也越来越常见。从产品定义出发,智能问答类产品最根本的价值在于以低成本的优势取代人工工作中大量重复性的部分。我司由于业务系统较为复杂,开发同学大部分的时间都在处理技术支持、业务方、测试同学反馈的真线"问题"。有些"问题"重复性极高,完全可以沉淀为 FAQ。但现状是开发同学依然在重复性地回答之前已经处理过的类似问题,这也占用了同学们大量的时间去进行无效的"沟通"。基于目前的痛点,我们觉得有必要使用智能问答机器人来管理这部分 FAQ,除此之外,智能问答机器人内部也闭环了线上 ONCALL 问答机制,这样更加方便管理所有问题的生命流程,也方便后续问题数据的总结分类及复盘。实现了 ONCALL 跟踪,QA 应答的自动化能力。本文简单聊一聊赋能给政采云同学们的智能问答机器人"贾维斯"的设计及落地推广。
政采云前端团队
2022/04/27
1.2K0
如何落地一个智能机器人
【教程】最新可用Shamrock搭建QQ机器人,附Qmsg代码
官方原版Shamrock的作者已经删库跑路了,所以我们使用这个:OpenShamrock
小锋学长生活大爆炸
2024/05/25
1.4K0
【教程】最新可用Shamrock搭建QQ机器人,附Qmsg代码
【黄啊码】Gradio配合Openai接口实现机器人问答对话
本文将介绍如何使用Gradio和OpenAI API来实现一个流式问答机器人。通过这个教程,你将学会如何构建一个可以处理文本输入并返回连续响应的聊天机器人。
黄啊码
2024/08/09
7380
基于GPT搭建私有知识库聊天机器人(六)仿chatGPT打字机效果
在前几篇文章中,我们已经了解了如何使用 GPT 模型来搭建一个简单的聊天机器人,并在后端使用私有知识库来提供答案。
夕阳也是醉了
2023/10/16
8440
基于GPT搭建私有知识库聊天机器人(六)仿chatGPT打字机效果
开源项目将ChatGPT接入微信实现智能回复
Github 地址:https://github.com/zhayujie/chatgpt-on-wechat
开源日记
2023/04/11
2.5K0
开源项目将ChatGPT接入微信实现智能回复
【LLM】构建一个可以图像生成的聊天机器人
今天,我从头开始创建图像生成聊天机器人。按照已经构建的聊天机器人 awesome-tiny-sd 的脚本来执行
Freedom123
2024/04/29
1890
利用ChatGPT 和Milvus快速搭建智能问答机器人
智能问答机器人是 自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。其经典应用场景包括:智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统。
张善友
2023/03/09
3.8K1
利用ChatGPT 和Milvus快速搭建智能问答机器人
Window系统搭建feishu-chatgpt企业AI机器人并实现无公网ip远程连接
在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。
YY的秘密代码小屋
2024/03/05
2750
Window系统搭建feishu-chatgpt企业AI机器人并实现无公网ip远程连接
推荐阅读
相关推荐
使用OpenGPT(ChatGPT)搭建 QQ 机器人
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档