赞
踩
GitHub上开源的项目go-cqhttp可以帮助快速搭建,并且操作十分简单
如果你是Windows,推荐使用下面的两个文件,Linux也没事,文档中写的很清楚
下载好之后是下面的三个文件:
双击go-cqhttp.exe,会出现控制台和三个弹窗,弹窗全部点击确定,控制台会自动关闭,这时会发现文件夹里多了一个文件go-cqhttp.bat,如下图所示,双击打开它
在出现的控制台上选择0,并将控制台关闭,接下来就是配置文件
返回文件夹,会发现多出一个文件:config.yml 如下图所示,使用记事本编辑它
文本内容如下图所示,uin是QQ号,password为QQ密码, 因为现在的QQ都有登陆保护或者验证,本次使用的是扫码登录,将uin和password全部置为空,多出的空格不必删除,删除就会报错
再将倒数几行的 地址 和 密钥 前面的 # 删掉,这一步不可以省略
保存文件之后,双击打开go-cqhttp.bat,此时会在文件夹内生成几个登录文件并尝试打开摄像头进行QQ的登录扫描,如果打开摄像头时报错协议不支持或者版本过低,则用记事本打开device.json并将其内容"protocol":6改为"protocol":2
到此,必要的操作和配置文件已经整理好,双击go-cqhttp.bat就可以登录我们自己的QQ了
如果自己弄不明白或者环境配置不上以及任何问题,欢迎和我私聊,如果希望快一点也可加我的微信:BeWhite_Studio
将以下代码命名为:receive.py
- # 接收QQ端消息
- import socket
- import json
-
- ListenSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- ListenSocket.bind(('127.0.0.1', 5701))
- ListenSocket.listen(100)
-
- HttpResponseHeader = '''HTTP/1.1 200 OK\r\n
- Content-Type: text/html\r\n\r\n
- '''
-
-
- def request_to_json(msg):
- for i in range(len(msg)):
- if msg[i] == "{" and msg[-1] == "\n":
- return json.loads(msg[i:])
- return None
-
-
- # 需要循环执行,返回值为json格式
- def rev_msg(): # json or None
- Client, Address = ListenSocket.accept()
- Request = Client.recv(1024).decode(encoding='utf-8')
- rev_json = request_to_json(Request)
- Client.sendall(HttpResponseHeader.encode(encoding='utf-8'))
- Client.close()
- return rev_json
'运行
将以下代码命令为:QQMessages.py
- # 发送QQ端消息
-
- import socket
-
-
- def send_msg(resp_dict):
- client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
- ip = '127.0.0.1'
- client.connect((ip, 5700))
-
- msg_type = resp_dict['msg_type'] # 回复类型(群聊/私聊)
- number = resp_dict['number'] # 回复账号(群号/好友号)
- msg = resp_dict['msg'] # 要回复的消息
-
- # 将字符中的特殊字符进行url编码
- msg = msg.replace(" ", "%20")
- msg = msg.replace("\n", "%0a")
-
- if msg_type == 'group':
- payload = "GET /send_group_msg?group_id=" + str(
- number) + "&message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n"
- elif msg_type == 'private':
- payload = "GET /send_private_msg?user_id=" + str(
- number) + "&message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n"
- else:
- return 0
- print("发送" + payload)
- client.send(payload.encode("utf-8"))
- client.close()
- return 0
'运行
将以下代码命名为Main.py 并运行,如果当有人给你的QQ发消息“在吗”时,自动回复“我在”,则功能正常,其他功能可自行完善
- from receive import rev_msg
- from QQMessages import send_msg
-
-
- def TEST():
- while 1:
- rev = rev_msg()
- if rev["post_type"] == "message":
- if rev["message_type"] == "private":
- if rev['raw_message'] == '在吗':
- qq = rev['sender']['user_id']
- send_msg({'msg_type': 'private', 'number': qq, 'msg': '我在'})
- elif rev["message_type"] == "group":
- group = rev['group_id']
- if "[CQ:at,qq=机器人的QQ号]" in rev["raw_message"]:
- if rev['raw_message'].split(' ')[1] == '在吗':
- qq = rev['sender']['user_id']
- send_msg({'msg_type': 'group', 'number': group, 'msg': '[CQ:poke,qq={}]'.format(qq)})
- else:
- continue
- else:
- continue
-
-
- if __name__ == '__main__':
- TEST()
如果自己弄不明白或者环境配置不上以及任何问题,欢迎和我私聊,如果希望快一点也可加我的微信:BeWhite_Studio
我在测试的时候使用的是文心一言,其他的大家可以自行读官网文档
这里推荐一个网站:LuckyCola,该网站集成了很多的人工智能,简单方便
以下是人工智能对话的代码,此代码中的账密都是我自己的,故不方便展示。当有文心一言的appKey和uid之后,就可以将以下代码中的appKey和uid切换成自己的,并调用方法则可实现
- import configparser
- import requests
- import json
-
-
- class res:
- def __init__(self):
- super().__init__()
- config = configparser.ConfigParser()
- config.read('properties/constant.properties', encoding='utf-8-sig')
- self.appKey = config.get('api', 'appKey')
- self.uid = config.get('api', 'uid')
- self.url = config.get('WenXin', 'url')
- self.body = None
- self.text = None
-
- def response(self, text):
- try:
- self.text = text
- self.body = {
- 'appKey': self.appKey,
- 'ques': self.text,
- 'uid': self.uid,
- 'isLongChat': 1
- }
- # 将字典转换为JSON格式的字符串
- body_json = json.dumps(self.body)
- # 发送POST请求
- response = requests.post(self.url, data=body_json, headers={'Content-Type': 'application/json'})
- start = "result"
- end = "countMsg"
- start_index = response.text.find(start) + len(start)
- end_index = response.text.find(end)
- # 打印响应结果
- return response.text[start_index + 3:end_index - 4]
- except Exception:
- return "发生错误,请稍后重试"
'运行
以下代码都是我在基础的功能上加的一些强化功能,演示如下:
群聊:
单聊:
自定义机器人可以实现自己的AI小助手,或者是个性化的群管家,也可实现托管自己的QQ
如果自己弄不明白或者环境配置不上以及任何问题,欢迎和我私聊,如果希望快一点也可加我的微信:BeWhite_Studio
作者声明:未经允许,禁止转载,如果需要,请联系微信:BeWhite_Studio
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。