이 SDK
는 로봇 개발에 사용될 수 있을 뿐만 아니라, 원하는 효과를 자유롭게 개발할 수 있는 Chuanchuan을 구축하는데 도움을 주는 툴킷입니다. ChatGPT
서비스 및 세션. SDK
不仅仅可以用于开发机器人,还可以自由的开发你所想要的效果,如你所想,他是一个工具包,帮你chuanchuan构建一个ChatGPT
服务和会话。
最近OpenAi
给他套上了一个Cloudflare
的CDN
服务,这个服务会去拦截非真机请求,现在已经可以破解了。
寻找合适的逆向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
交互成功,此时data
为ChatGPT
反馈给我们的对话内容。而当code=1
时说明出现了错误,此时没有data
,但在msg
최근 OpenAi
는 Cloudflare
의 CDN
서비스를 설치했습니다. 이 서비스는 이제 비실제 시스템 요청을 차단할 수 있습니다. 깨진.
전체 패키지에 파일이 많지 않습니다.
Python
을 좋아한다면 Java
를 이해할 수 없습니다. 연습 시작 - 연습 1장
코드에 사용된 revChatGPT는 소스 코드 라이브러리에 의존합니다:
https://github.com/acheong08/ChatGPT
Python 버전에는 >가 필요합니다 ;=3.8
인 경우 pip
를 최신 버전으로 직접 업그레이드하세요.
chat-gpt-qbot.py:
rrreee역방향을 가져옵니다. 패키지. 🎜rrreee🎜🎜🎜 이것은 서비스를 초기화하는 데 사용되는 reverse 패키지의 소스 코드입니다. 클래스에서 이 패키지를 호출했습니다. 🎜🎜 🎜🎜그런 다음 이 서비스를 던지는 인터페이스를 만들려면 쉽게 호출할 수 있습니다. 🎜🎜포트 7777에서 ChatGPT와 직접 상호작용하려면 위 코드만 실행하면 됩니다.code=0
이면 ChatGPT
와의 상호작용이 성공했음을 의미합니다. code>는 ChatGPT
code>입니다. 대화 내용에 대한 피드백을 보내주세요. code=1
일 경우 데이터
는 없지만 msg
에 오류 메시지가 반환됩니다. 🎜🎜🎜이제 ChatGPT와 상호작용할 수 있는 인터페이스가 생겼습니다. 이 인터페이스를 통해 ChatGPT와 대화할 수 있습니다.🎜🎜🎜대화를 하기 위해서는 입력 상자와 버튼이 필요합니다. 이 인터페이스를 호출하면 매우 간단하므로 여기서는 자세히 설명하지 않겠습니다. 🎜🎜우리가 정말로 원하는 것은 QQ 로봇이 메시지를 듣고 인터페이스를 통해 ChatGPT로 메시지를 전달한 다음 ChatGPT가 반환한 대화 내용을 QQ 사용자에게 보내는 것이 원칙입니다. 구체적인 방법은 아래에서 설명하겠습니다. 🎜🎜연습 계속 - 연습 2부🎜🎜🎜 위에서 인터페이스를 구현하고 코드를 사용하여 ChatGPT 대화 콘텐츠를 성공적으로 얻었습니다. 다음으로 QQ 로봇 관련 로직을 계속해서 개선하겠습니다. 코드의 주석에 주의하세요. 🎜🎜🎜🎜🎜🎜🎜최적화된 코드(QQ 로봇에 연결됨)를 이전 코드와 보다 편리하게 비교하기 위해 로컬 비교를 시작하고 변경되지 않은 코드를 치워두었습니다. 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜우리는 로봇 프레임워크를 사용하고 있기 때문에 로봇의 상호 작용 구현 논리를 이해하지 못할 수도 있습니다. 실제로 우리의 생각을 제한해서는 안 됩니다. 윤자이 로봇과 같은 다른 로봇 프레임워크를 직접 수정하여 사용해 볼 수도 있습니다. 당신 자신.
go-cqhttp
를 사용하고 있습니다. 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
套了一个CF
的CDN
,会拦截人机交互请求。
那我们现在,除了需要获取OpenAi
的session-token
,还需要获取cf_clearance
。
同时,我们还需要获取user-agent
。
前往控制台的网络标签里面查看,如果是空白,你发一句消息就可以。
复制之后写到配置文件中,也就是py/config.js
文件。
目前原创作者打包了两个版本,一个Linux的,麻烦在于cf
的CDN
交互令牌会在2H
内失效,我们需要手动获取并更新,麻烦。
另一个是window
版本,已经实现自动获取CloudflareCookie
go-cqhttp
를 이해해야 하지만 유연하게 학습해야 하며 아이디어만 이해하면 됩니다. 사용 방법을 알아보려면 공식 문서를 방문하세요. 이 시점에서 이러한 코드에는 이미 친구 요청, 그룹 요청 및 메시지 답장을 처리하는 기능이 있습니다.
전 글과 비교하면 코드도 많이 추가되고 댓글도 많이 추가된 걸 볼 수 있습니다처음 두 기사에서는 ChatGPT와의 통신 문제와 QQ 메시지 처리 문제를 해결했습니다. 이제 QQ 메시지를 모니터링하는 방법을 다루어야 합니다. .물론, 이 코드들을 이해하지 못해도 상관없습니다. 내 기사를 직접 사용하세요.
원작자 Q 그룹에 놀러오세요. 저도 그 그룹에 속해 있습니다:
206867743
.연습 계속 - 연습 3부
업데이트와 문제가 발생하면서 원저자와 역패키지의 많은 저작자가 많은 콘텐츠를 업데이트했습니다. 원저자의 업데이트 기록을 살펴보겠습니다:
2022-12-12 23:52
Windows 컴퓨터 또는 서버에서만 사용할 수 있는 Windows 전용 버전을 추가했습니다. 자동으로 cloudflare 쿠키를 얻을 수 있습니다.2022-12-12 12:38 콘텐츠 업데이트 CloudFlare 구성 추가, 종속성 업데이트, 계정 비밀번호는 지원되지 않습니다. 아직 CloudFlare 구성은 알려지지 않았지만 얼마나 자주 변경해야 할까요? 이제 벽을 뛰어넘어야 할 것 같습니다
2022-12-10 17:42 업데이트 콘텐츠에 계정 비밀번호 지원을 추가할 수 있습니다. 토큰을 사용하지 않고 계정 비밀번호를 직접 추가합니다. 2022-12-10 00:23 각 QQ 개인 채팅이 구별됩니다. 각 QQ 그룹은 독립적인 세션입니다. 답변의 단어 제한을 늘리세요. 제한을 초과하면 그림 답변으로 변환됩니다(구성 파일 참조). 세션을 재설정하려면 로봇을 보내세요: 세션 재설정ChatGPT
에는 CF
의 CDN
이 탑재되어 있어 인간과 컴퓨터의 상호 작용 요청을 가로챌 수 있습니다. 🎜🎜🎜🎜🎜 이제 OpenAi
의 session-token
을 얻는 것 외에도 cf_clearance
도 얻어야 합니다. 🎜🎜동시에 user-agent
도 얻어야 합니다. 🎜🎜 🎜🎜Go 콘솔의 네트워크 탭을 확인하세요. 비어 있으면 메시지를 보낼 수 있습니다. 🎜🎜복사하여 구성 파일인 py/config.js
파일에 작성하세요. 🎜🎜현재 원 작성자는 Linux용 두 가지 버전을 패키지했습니다. 문제는 cf
의 CDN
상호 작용 토큰이 2H
내에 만료된다는 것입니다. >. 수동으로 구해서 업데이트해야 하는데, 이게 귀찮습니다. 🎜🎜다른 하나는 CloudflareCookie
를 자동으로 획득한 window
버전입니다. 🎜🎜구성 가이드🎜🎜🎜🎜🎜이 버전은 Windows에서만 사용할 수 있으며 모든 Windows 컴퓨터 또는 서버가 작동합니다. 🎜🎜🎜 여전히 토큰만 지원합니다. 🎜🎜🎜클라우플레어 관련 쿠키를 얻기 위해 시스템이 자동으로 Chrome을 실행합니다. 최초 실행 시 수동 확인이 필요할 수 있으니 주의 깊게 클릭해 주세요. 🎜🎜🎜🎜스크립트는 Google Chrome만 열 수 있으며 다른 브라우저는 구성하지 않습니다. 🎜🎜기타 설명🎜🎜저자의 최신 버전 코드에는 몇 가지 새로운 기능도 추가되었습니다. 🎜🎜🎜🎜🎜스스로 조사해보세요. 🎜그렇다면 많은 리버스 패키지 작성자들도 완벽한 솔루션을 고민하고 있으니 천천히 기다려 볼까요!
그럼 다음 문장을 보세요:
위 내용은 Python을 사용하여 OpenAi API에 연결하여 지능형 QQ 로봇을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!