基于cqhttp机器人项目整合chatgpt的python代码

准备工作

首先就是要先部署好下面的这个开源的机器人项目,项目地址和部署的教程都在这了。

GitHub - Mrs4s/go-cqhttp: cqhttp的golang实现,轻量、原生跨平台.

 在BV1Ck4y1K7wm这个

记得一定要选择http模式进行部署 

 连接chatGpt和qq机器人

上面的机器人部署好之后可以通过http请求操控qq机器人行为和获取qq的消息。

所以这里代码的主要实现思路就是接受qq收到的消息,利用chat-gpt提供的接口,进行提问后返回答案再让qq机器人去回答。

这里使用的不是chat-gpt的官方接口,因为那个要一直开着梯子才行,如果放到云服务器进行托管就没法用了,所以这里用了国内的接口。

F2API

在这个地址进去之后获取到下面的信息

主要是用到下面的CURL请求。

在线curl命令转代码

在这个curl转代码的网站将这个请求转换成在python中发请求的格式。

 然后再结合qq机器人的相关http路径就可以进行消息转发了。

代码要在Flask环境运行。

项目会监听qq机器人yml配置文件里面的消息转发的出口(在下图中的5000端口)获取到数据,再通过5700端口发送消息。

注意事项:  代码里面应该是监听5701端口,但是运行之后却还是监听5000端口,所以只能把yml文件里面的端口改成5000.所以要看项目启动时具体监听的端口号来配置。

import requests
from flask import Flask, requestapp = Flask(__name__)
bot_id = '' #写上qq机器人的qq号def openai_reply(question,id) -> str:if len(question)>1000 :return "单次会话数据过多,已重置。"headers = {# Already added when you pass json= but not when you pass data=# 'Content-Type': 'application/json','Authorization': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',}json_data = {'model': 'gpt-3.5-turbo','messages': [{'role': 'user','content': str(question+' 简单说明'),},],'temperature': 0.7,}response = requests.post('https://api.f2gpt.com/v1/chat/completions', headers=headers, json=json_data)# 转换成json格式数据方便提取response = response.json()print('本次消费的token总数量:'+str(response['usage']['total_tokens']))choices = response['choices']first_item = choices[0]return first_item['message']['content']@app.route('/', methods=["POST"])
def post_data():if request.get_json().get('message_type') == 'group':            # 如果是群聊信息状态码# 获取需要的消息Qun_id = request.get_json().get('group_id')                       # 那个群发的QQ_name = request.get_json().get('sender').get('nickname')        # 发送者人的昵称叫啥QQ_id = request.get_json().get('sender').get('user_id')           # 发送者的QQ号msg = request.get_json().get('raw_message')               # 发的什么东西if str("[CQ:at,qq=%s]" % bot_id) in msg:msg = msg.replace(str("[CQ:at,qq=%s]" % bot_id), "")msg = openai_reply(msg, str(QQ_id))requests.get("http://127.0.0.1:5700/send_group_msg?group_id={0}&message={1}".format(Qun_id,"[CQ:at,qq=%s]" % QQ_id + msg))return 'OK,do not say anymore'return 'OK'  # 对go-cqhttp进行响应,不然会出现重试,但是只要设置重试次数为0就不会重试了。app.run(debug=True, host='127.0.0.1', port=5701)  #监听本机的5701端口(数据来源于go-cqhttp推送到5701端口的数据)

效果演示

在qq群内@机器人发送问题,机器人会@发送者然后给出答案。

在qq机器人的日志输出就可以看见这些监听到的消息和发送的消息了。 

在云服务器上进行容器化部署

要部署在容器里面就要进行端口映射???好像也不用,在容器里面运行的话都是用的127.0.0.1。

所以要做的就是在容器里面准备好java环境给qq机器人项目运行,准备好python项目给这个python项目运行就可以了。

总结一下:

在云端部署不能使用官方提供的docker镜像部署,否则在做端口映射时,docker会抢占外部python的flask项目的5000端口。因此只能将tar.gz文件下载下来自己手动上传,可以使用xftp,图形化界面,直接拖拽上传。

而且签名服务器不能像Windows上部署时一样使用本地作为签名服务器,需要自己搭建signserver或者使用别人搭建的signserver服务器。

剩下的就没什么了,就是开个tmux给机器人的代码和flask项目一起跑就可以了。这样就可以一直运行了。

运行效果如下:

左边是机器人的日志,右边是flask项目的日志。然后群里面也可以正常运行。

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

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

相关文章

独家|GPT-4重要缔造者、OpenAI 首席科学家:人工智能不吃人

在荷马的史诗巨作《奥德赛》中,独眼巨人赛库斯波吕斐摩斯将奥德修斯和他的船员困在他的洞穴里,意图将他们吃掉。但奥德修斯设法弄瞎了巨人的眼睛并成功逃脱。 人工智能不会吃掉我们。 文 | Craig S. Smith 随着我们飞快地迈向一个充满人工智能的未来&…

10张图总结2023年人工智能状况

ISTOCK 来源:IEEE电气电子工程师 斯坦福大学以人为本人工智能研究所(Human-Centered AI Institute,HAI)收集了一年的人工智能数据(https://hai.stanford.edu/),提供了当今人工智能世界的全面情况…

ChatGPT腾讯云轻量云服务器,对接微信完全教程!

1、克隆项目到本地 项目地址:https://github.com/kexiaohua-15/chatgpt-on-wechat git clone https://github.com/kexiaohua-15/chatgpt-on-wechat #克隆项目代码本地 报错: 解决:yum install git -y 2、更新软件,安装项目包 cd chatgp…

量化交易----常见股票特征和编程实现

本节介绍一些常见的股票特征,可用于股票分析和预测模型训练 顺势指标CCI CCI中文译名为:随顺市势指标。它属于超买超卖指标中较特殊的一种。波动于广向正值无限大和微向负值无限小之间。本指标专门用以测量股价是否已超出常态分布范围 计算公式 CCI(N日…

量化交易 第三课 数据获取接口

获取数据 概述数据接口种类行业 & 板块 股票类表股票代码 & 代码补齐RiceQuant 上的股票股票自动搜索及补全 获取行业获取板块代码展示 获取股票合约数据某一合约历史数据通过 bar_dict 获取代码展示 获取财务数据查询财务数据过滤指标条件代码展示 定时获取数据每天运…

微信公众号开发,配置完整代码,示例

一、server.js文件 const express require(express) const app express() const crypto require(crypto) //引入node内置加密模块 const randomstring require(randomstring) //引入第三方产生随机字符串模块,来产生nonceStr const axios require(axios) /…

零代码编程:用ChatGPT自动登陆微信公众号后台

要实现微信公众号后台自动登陆&#xff0c;可以使用ChatGPT来编写Python代码实现。 微信公众平台账号密码登陆&#xff0c;要先点击“使用账号登录”&#xff0c;源代码是&#xff1a;<a href"javascript:;" class"login__type__container__select-type"…

Java代码 微信公众号推送(代码详细)

用的是idea, 需要修改的地方在于这些地方改了 然后吧账号密码填写进去就好了 运行类是 Yi 这个类 非常简单 祝大家成功 ,不会的关注私聊 微信公众号测试注册地址:微信公众平台 (qq.com) 我用的模板是这个只有一个数据 ,当然这个可以自己添加 做出来的效果当然上面那个…

如何优雅的在微信公众号中编辑代码

这篇文章严格意义上是写给有公众号且公众号文章需要贴代码的朋友们看的。 1 公众号编辑器真难用 自从入坑公众号以来&#xff0c;被公众号的这个编辑器简直折磨死了。我发的文章基本上是少不了贴代码的&#xff0c;可是每次贴上去的代码总是被公众号的编辑器无厘头的给我过滤掉…

初访Chirper:一个禁止人类发言的人工智能社交网络,AI们居然在吵架,太6了

最近&#xff0c;在网上仅仅用ChatGPT和AI聊天已经不够刺激了&#xff0c;现在&#xff0c;AI已经有了属于自己的专属社区&#xff1a;Chirper 简而言之&#xff0c;这是一个禁止人类发帖、评论、转发的类推特网站。人类进去后只能看见&#xff1a;成千上万个AI聊天机器人在其…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术&#xff0c;而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

产品负责人 VS 产品经理

概述 Scrum框架创造了对新角色的需求&#xff0c;其中就包括 “产品负责人” 。这不可避免额外地导致对产品负责人和产品经理角色的误解和误用&#xff0c;对团队产生不必要的压力。 角色混淆会带来噪音和摩擦&#xff0c;削弱团队对价值、质量、速度和满意度的关注。这种混乱…

从程序员到产品经理

一直以来我都觉得自己是个典型性程序员。 比如出门时候我总是穿格子衫、牛仔裤&#xff0c;戴着黑框眼镜背个双肩包&#xff1b; 比如休闲时候我是个死宅&#xff0c;喜欢玩游戏和看小说&#xff1b; 比如一直到23岁时候我依然是“妹手软”&#xff0c;没谈过恋爱。 当然可能也…

产品经理培训还好找工作吗?

本篇文章主要讲解粉丝后台留言问题&#xff1a;新人转产品&#xff0c;通过培训班还好找工作吗。 日期&#xff1a;2021年8月21日 作者&#xff1a;任聪聪 我以不同角度为大家解读&#xff0c;培训出来的产品经理是否还好找工作。 产品经理的就业行情还好吗 先来看两组数据&a…

人工智能 | ShowMeAI资讯日报 #2022.06.05

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…

人工智能 | ShowMeAI资讯日报 #2022.06.06

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…

人工智能 | ShowMeAI资讯日报 #2022.06.18

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…

人工智能 | ShowMeAI资讯日报 #2022.06.20

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…

人工智能 | ShowMeAI资讯日报 #2022.06.29

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…

人工智能 | ShowMeAI资讯日报 #2022.06.24

ShowMeAI日报系列全新升级&#xff01;覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向。点击查看 历史文章列表&#xff0c;在公众号内订阅话题 #ShowMeAI资讯日报&#xff0c;可接收每日最新推送。点击 专题合辑&…