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

文章大部分来自:https://lucent.blog

原文博客地址:https://blog.ideaopen.cn

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

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

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

寻找合适的逆向SDK

原作者用的是这个。

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

实践开始-实践篇第一

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

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

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

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')

我们导入我们的逆向包。

from revChatGPT.revChatGPT import Chatbot

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

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

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

其中消息体:

{"msg": "你会数学吗"
}

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

{"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
官方文档: go-cqhttp
如果您感兴趣的话,可以阅读一下官方文档,如果不想看,直接看我的文章即可。

前提条件

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

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

不会注册也可以看看我博客的文章:一文教你快速注册OpenAi(ChatGPT)

(旧版本)机器人搭建教程我也是写过了:使用OpenGPT(ChatGPT)搭建 QQ 机器人

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

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

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

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

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

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

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

配置指南

这个版本只能在Windows上使用,Windows电脑或服务器都行。

依然只支持token。

系统会自动打开谷歌浏览器获取Cloufflare相关Cookie,第一次运行时可能需要手动验证,请注意点一下。

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

其他描述

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

自行研究。

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

然后,请看看这句话:

尾述

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

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

小简绝得,有兴趣有时间,都可以试试,下篇再见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 Python 实现ChatGPT OpenAI(直接上源码)

网上一大堆教程,好多讲的很墨迹,你需要折腾半天才能调试通,up 这里给大家直接上源码干货。 详细教程后面补充,着急使用的可以直接拿走调试 说明 到 openai 里面替换你自己的app_key https://platform.openai.com/ 登录账号登录之…

如何使用OpenAi的ChatGPT咨询AI有关于Baumer工业相机的品牌国际知名度

基于OpenAi的Merlin Chat GPT使用方式 本方法可以不用国外网点进行登录使用ChatGPT 在国内就可以正常使用OpenAI的服务 一、下载Google浏览器 Google浏览器安装地址:https//www.google.cn/intl/zh-CN/chrome/ 登录自己的Google账号 搜索:Merlin - Ope…

我们所知道的关于 OpenAI 的 ChatGPT 的一切

如果您还没有听说过ChatGPT,这是来自人工智能实验室 OpenAI 的不可思议的新聊天机器人,这里是您需要了解的有关这个有争议的新程序的所有信息的快速入门。 什么是聊天 GPT? ChatGPT 是一种人工智能工具,允许用户生成原始文本。你…

好用到爆的Python自动化办公教程pdf,Python × Excel × Word × PPT 一次搞定

在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。那么在本文中,我将向您介绍一个好用到爆的Python自动化办公教程pdf,Python Excel Wo…

如何利用Multi-Chat搞科研?

这位研究僧,Multi-Chat都发布了,你还在纯人工搞科研吗? 已经有人实测: Multi-Chat科研全流程都能用,尤其是对于英语非母语的科研人员,可以极大地提高日常科研工作效率。 连写给导师的请假信,都能…

全球最大的 ChatGPT 开源替代品来了!

本周赠书:《Elasticsearch数据搜索与分析实战》 出品 | CSDN(ID:CSDNnews)、整理 | 屠敏 自去年 11 月 ChatGPT 面向公众测试以来,OpenAI 一直占据各大科技网站的头版头条,以及成为很多开发者工具的首选。C…

漫谈 ChatGPT 与问答式 BI

近日,观远数据G-park「Lets Date!BI!」系列直播第二期「2023,金融业如何应对“流浪数据”」顺利落幕。观远数据联合创始人兼首席数据科学家字节带来了《漫谈 ChatGPT 与问答式 BI》的探索思考。 字节一方面介绍了一系列 ChatGPT …

为什么所有公开的对 GPT-3 的复现都失败了?复现和使用GPT-3/ChatGPT,你所应该知道的...

文|杨靖锋译|杨昊桐,王骁 修订源|机器之心 英文原版作者:杨靖锋,现任亚马逊科学家,本科毕业于北大,硕士毕业于佐治亚理工学院,师从 Stanford 杨笛一教授。感谢靳弘业对第…

ChatGPT-易编程 V3.0.0:工程级工作支持、智能代码生成、智能代码导读以及更多功能介绍

目录 前言 🌟 功能介绍 🛠️ 命令(图示见本节末尾) 使用 ctrlshiftp 可用的命令: 在文件或选中代码块上右键点击可以使用的命令: 使用快捷键可用的命令: 其他功能 部分功能图示 常见使…

chatgpt生成一个简单PPT

1.先通过chatgpt得到文案 请作为一个富有经验的自媒体从业者,请帮我写一份适用于PPT的文案,主题是AIGC用于产品演示。 注意使用markdown格式,并把回复内容放到代码块中 2.利用mindshow网站生成PPT 导入我们刚刚生成的内容

自动生成原创文章文案软件v.1.2.3

ChatGPT自去年11月发布后在各个领域引发轰动。尤其是在学术界,它引发了一场禁止使用人工智能作弊撰写论文的风波。 然而,时代变化得太快。据泰晤士报,国际文凭组织(IB)反其道而行之,表示将允许参加IB课程的…

Chatgpt4来了,测试小姐姐实测,在失业的边缘疯狂试探~

GPT-4是OpenAI于2023年3月发布的最新人工智能模型,它是继GPT-3.5之后的又一次重大突破。它的核心技术是基于Transformer的自回归语言模型,它使用了大量的无标注数据进行预训练,学习了自然语言和其他模态之间的通用表示和关系。我们今天来看看…

【NLP】ChatGPT试用有感

写在前面 作为一个兼具分析&生成能力的AI,ChatGPT最近一段时间热度都非常高,它的确颠覆了很多人的认知,它的出现一定程度上是强人工智能的出现。ChatGPT似乎已经无所不能,文本分类,信息抽取,文本生成&a…

chatGPT指令大全可免费使用网站列表chatGPT4试用方案

指令列表 写作助理 👉 最常使用的 prompt,用于优化文本的语法、清晰度和简洁度,提高可读性。作为一名中文写作改进助理,你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性,同时分解长句,减少…

上手ChatGPT威力加强版后,我发现它很强,但也有点拉。。。

今天凌晨,OpenAI 发布了最新的 GPT-4。 根据发布会披露的内容来看,这个新一代比早先大家使用的 ChatGPT 的 GPT-3.5 内核强悍了一大截,再次刷新了编辑部对 AI 的认知。 首先,非常非常重要的一点是,GPT-4 可以接受文字以…

苹果汽车将不支持全自动驾驶;华为云发布研发需求管理工具;腾讯文档发布企业版;OpenAI上线ChatGPT | 每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 01.苹果汽车被曝大降级:不支持完全自动驾驶 12 月 7 日消息,苹果公司已经缩减了其苹果汽车项目,该公司不再计划发布完全自动驾驶的汽车。苹果公司最初想制造一辆没有方向盘和油门的自动…

ChatGPT做到人人都可以配置思科华为网络设备

最近有个一个想法,chatgpt能不能帮忙配置网络设备,于是我开始在网上找了个拓扑图。 然后我将拓扑图及需求,以prompt的形式发送给chatgpt,然后chatgpt根据我的要求,将所有节点的配置全部输出了出来,真是一个…

爆发前夜!华为阿里版ChatGPT!

本文经授权转载自微信公众号:51CTO技术栈,作者 | 徐杰承,审校 | 云昭 “你训练的大模型涌现了吗?”“还没有。好难受。”一时间成为了最近AI赛道玩家的一个爆热梗。 不管承不承认,相信每个玩家都不愿意输掉这场激烈的竞…

Osbypass苹果手机激活锁停用Hello密码锁绕ID屏幕锁密码支持三网(移动、联通、电信)国行版手机解锁打电话4G等支持打电话、短信、4G上网、重启、通知、iCloud登录

Osbypass是一款来自国外开发者的软件。界面简单,操作容易的工具,它可以帮助绕过忘记ID密码的设备,支持iPhone、iPad等。 整个工具界面是中文的,非常友好的操作界面。 MEID三网支持iPhone/iPad,完美重启、ID登录、推送…

最新IPAD协议登陆教程(扫码登陆)/62登陆后续更新

调用“获取登陆二维码”配置相关代理(代理可以通过巨量IP中按量付费测试,充值个10块钱无限用 ) 第一步、获取你要登陆的微信号常用地的代理(如图) 配置跟图片配置一样就行(代理类型务必选择socks),只需要修改你获取代理的地区就好了,然后点击生成api链接; 然后直接…