全新上线!免费体验最热门Claude2API接口Python版本整合QQ
off999 2025-07-10 19:56 6 浏览 0 评论
前面三期全新上线!免费体验最热门的Claude2API接口Python版本!介绍了Claude2 api python版本的基础功能:包括创建会话、聊天、获取历史会话,清理历史记录等功能,文件上传功能和发送消息并附带附件功能;docker容器运行,运行cookie传参数使用,避免程序写死;增加replit 部署。之前也有很大家说到过后面整合微信和企业微信功能。今天将企业微信代码编写完成了,目前该项目已经更新到了v0.0.7 版本。v0.0.6版本实现微信功能,感兴趣的小伙伴可以在西瓜视频上面观看 《全新上线!免费体验最热门的Claude2API接口Python第三集支持微信》。
2023年8月26日我又更新了一期视频《全新上线!免费体验最热门的Claude2API接口第四集微信企业微信》。今天我把代码更新了目前最新版本是v0.0.8版本。本次版本主要升级了整合了QQ功能。实现了go-cqhttp和Claude2 api 接口的整合。下面介绍一下新增加功能:
下载
1.下载代码
https://github.com/wwwzhouhui/Claude2-PyAPI
我们需要通过git 客户端下载代码
git clone https://github.com/wwwzhouhui/Claude2-PyAPI.git
cd Claude2-PyAPI
如果国内网速下载代码比较慢可以增加一个代理
git clone https://ghproxy.com/https://github.com/wwwzhouhui/Claude2-PyAPI.git
以上完成代码下载。
代码更新说明
ImApp.py
import config
from common.log import logger
from channel import channel_factory
def run():
try:
# load config
config.load_config()
# create channel
channel = channel_factory.create_channel("qq")
# startup channel
channel.startup()
except Exception as e:
logger.error("App startup failed!")
logger.exception(e)
if __name__ == "__main__":
run()
主要功能是读取配置文件,然后通过创建一个工厂方法 来创建一个QQ频道。后面考虑整合更多IM 使用了工厂方法设计模式。
channel_factory.py
"""
channel factory
"""
from channel.wechat.wechat_channel import WechatChannel
from channel.wechatcom.wechatenterprise_channel import WechatEnterpriseChannel
from channel.qqchat.qqchat_channel import QqchaChannel
def create_channel(channel_type):
"""
create a channel instance
:param channel_type: channel type code
:return: channel instance
"""
if channel_type == 'wx':
return WechatChannel()
if channel_type == 'wxcom':
return WechatEnterpriseChannel()
if channel_type == 'qq':
return QqchaChannel()
raise RuntimeError
目前工厂实现QQ、微信、企业微信功能。后面如果实现其他IM 可以在此基础上进行扩展,代码耦合性更好了。
qqchat_channel.py 代码如下
from aiocqhttp import CQHttp, Event, MessageSegment
from channel.channel import Channel
from common.log import logger
from config import conf
from bridge.bridge import Bridge
bot = CQHttp()
@bot.on_message('private')
async def _(event: Event):
context = dict()
logger.info(event.message)
await bot.send(event, QqchaChannel.build_reply_content(event.message,event.message, context))
return {'reply': event.message}
@bot.on_startup
async def startup():
logger.info("启动完毕,接收消息中……")
class QqchaChannel(Channel):
def __init__(self):
self.host = conf().get('reverse_ws_host')
self.port = conf().get('reverse_ws_port')
def startup(self):
# startup()
# bot.on_startup(startup)
# logger.info("startup启动完毕,接收消息中……")
bot.run(host=self.host, port=self.port)
def handle(self, msg):
logger.info("handle"+msg)
def send(self, msg, receiver):
logger.info('[QQ] sendMsg={}, receiver={}'.format(msg, receiver))
bot.send(receiver, msg)
def build_reply_content(self, query, context=None):
return Bridge().fetch_reply_content(query, context)
为了后期方便扩展,代码目前配置文件从config.json中读取
这里面增加了websocket 反向代理链接go-cqhttp,程序启动后会监听 8080端口
go-cqhttp
这里我们借用了go-cqhttp这个软件来实现QQ 功能。它的代码下载地址:
https://github.com/Mrs4s/go-cqhttp 官方这里介绍这个软件使用,我在这里就不详细展开了。
我们下载go-cqhttp 解压到widows 本地 启动go-cqhttp.exe 会生成一个go-cqhttp.bat 文件
双击go-cqhttp.bat 文件会提示我们生成哪中代理模式
这里我们就选择3 反向代理websocket.选择好后会生成一个config.yml 文件,打开config.yml文件
# go-cqhttp 默认配置文件
account: # 账号相关
uin: 1004359274 # QQ账号
password: '' # 密码为空时使用扫码登录
encrypt: false # 是否开启密码加密
status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
relogin: # 重连设置
delay: 3 # 首次重连延迟, 单位秒
interval: 3 # 重连间隔
max-times: 0 # 最大重连次数, 0为无限制
# 是否使用服务器下发的新地址进行重连
# 注意, 此设置可能导致在海外服务器上连接情况更差
use-sso-address: true
# 是否允许发送临时会话消息
allow-temp-session: false
# 数据包的签名服务器
# 兼容 https://github.com/fuqiuluo/unidbg-fetch-qsign
# 如果遇到 登录 45 错误, 或者发送信息风控的话需要填入一个服务器
# 示例:
# sign-server: 'http://127.0.0.1:8080' # 本地签名服务器
# sign-server: 'https://signserver.example.com' # 线上签名服务器
# 服务器可使用docker在本地搭建或者使用他人开放的服务
sign-server: '-'
heartbeat:
# 心跳频率, 单位秒
# -1 为关闭心跳
interval: 5
message:
# 上报数据类型
# 可选: string,array
post-format: string
# 是否忽略无效的CQ码, 如果为假将原样发送
ignore-invalid-cqcode: false
# 是否强制分片发送消息
# 分片发送将会带来更快的速度
# 但是兼容性会有些问题
force-fragment: false
# 是否将url分片发送
fix-url: false
# 下载图片等请求网络代理
proxy-rewrite: ''
# 是否上报自身消息
report-self-message: false
# 移除服务端的Reply附带的At
remove-reply-at: false
# 为Reply附加更多信息
extra-reply-data: false
# 跳过 Mime 扫描, 忽略错误数据
skip-mime-scan: false
# 是否自动转换 WebP 图片
convert-webp-image: false
# http超时时间
http-timeout: 0
output:
# 日志等级 trace,debug,info,warn,error
log-level: warn
# 日志时效 单位天. 超过这个时间之前的日志将会被自动删除. 设置为 0 表示永久保留.
log-aging: 15
# 是否在每次启动时强制创建全新的文件储存日志. 为 false 的情况下将会在上次启动时创建的日志文件续写
log-force-new: true
# 是否启用日志颜色
log-colorful: true
# 是否启用 DEBUG
debug: false # 开启调试模式
# 默认中间件锚点
default-middlewares: &default
# 访问密钥, 强烈推荐在公网的服务器设置
access-token: ''
# 事件过滤器文件目录
filter: ''
# API限速设置
# 该设置为全局生效
# 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配
# 目前该限速设置为令牌桶算法, 请参考:
# https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
rate-limit:
enabled: false # 是否启用限速
frequency: 1 # 令牌回复频率, 单位秒
bucket: 1 # 令牌桶大小
database: # 数据库相关设置
leveldb:
# 是否启用内置leveldb数据库
# 启用将会增加10-20MB的内存占用和一定的磁盘空间
# 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
enable: true
sqlite3:
# 是否启用内置sqlite3数据库
# 启用将会增加一定的内存占用和一定的磁盘空间
# 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
enable: false
cachettl: 3600000000000 # 1h
# 连接服务列表
servers:
# 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
#- http: # http 通信
#- ws: # 正向 Websocket
#- ws-reverse: # 反向 Websocket
#- pprof: #性能分析服务器
# 反向WS设置
- ws-reverse:
# 反向WS Universal 地址
# 注意 设置了此项地址后下面两项将会被忽略
universal: ws://127.0.0.1:8080/ws
# 反向WS API 地址
api: ws://your_websocket_api.server
# 反向WS Event 地址
event: ws://your_websocket_event.server
# 重连间隔 单位毫秒
reconnect-interval: 3000
middlewares:
<<: *default # 引用默认中间件
我们需要填写 QQ 号 这个作为机器人QQ使用。 其他都不需要修改。
这个就是我们go-cqhttp 程序连接服务端反向代理地址。另外在go-cqhttp.exe文件目录会生成一个device.json
打开这个device.json
{"display":"MIRAI.584732.001","product":"mirai","device":"mirai","board":"mirai","model":"mirai","finger_print":"mamoe/mirai/mirai:10/MIRAI.200122.001/0164521:user/release-keys","boot_id":"8baf0dbc-8d42-1233-aa38-b1f701f27a31","proc_version":"Linux version 3.0.31-w9KHXyO8 (android-build@xxx.xxx.xxx.xxx.com)","protocol":2,"imei":"063641062330092","brand":"mamoe","bootloader":"unknown","base_band":"","version":{"incremental":"5891938","release":"10","codename":"REL","sdk":29},"sim_info":"T-Mobile","os_type":"android","mac_address":"00:50:56:C0:00:08","ip_address":[10,0,1,3],"wifi_bssid":"00:50:56:C0:00:08","wifi_ssid":"\u003cunknown ssid\u003e","imsi_md5":"591793082e2b65517948acf3cbe70805","android_id":"9b9f638f7a51d072","apn":"wifi","vendor_name":"MIUI","vendor_os_name":"mirai"}
修改"protocol":2 2代表QQ 手表模式。后面启动程序就可以监听服务端了
启动程序
运行ImApp.py 就可以启动程序了。
第一次启动go-cqhttp 会出现 QQ 登录的二维码,我们使用手机端QQ 扫描二维码完成登录。
程序演示
我们启动好ImApp.py 启动好go-cqhttp,电脑登录另外一个QQ
我们使用 另外的qq 给这个机器人发送消息。
演示效果如下
程序运行后我们查看网页端claude2界面是否是我们通过QQ 程序调用的
以上截图就可以发现完全是QQ 消息通过claude2api接口发送实现调用的。
总结
总体来说以上操作还是比较简单的看过前面几期视频和文章的小伙伴 应该能够快速上手,怎么免费体验一下qq调用cluade2接口,还不快乐试一试吧。
本期就分享到这里面,觉的还不错麻烦您留言 、点赞+ 关注。
相关推荐
- 推荐一款Python的GUI可视化工具(python 可视化工具)
-
在Python基础语法学习完成后,进一步开发应用界面时,就需要涉及到GUI了,GUI全称是图形用户界面(GraphicalUserInterface,又称图形用户接口),采用图形方式显示的计算机操...
- 教你用Python绘制谷歌浏览器的3种图标
-
前两天在浏览matplotlib官方网站时,笔者无意中看到一个挺有意思的图片,就是用matplotlib制作的火狐浏览器的logo,也就是下面这个东东(网页地址是https://matplotlib....
- 小白学Python笔记:第二章 Python安装
-
Windows操作系统的python安装:Python提供Windows、Linux/UNIX、macOS及其他操作系统的安装包版本,结合自己的使用情况,此处仅记录windows操作系统的python...
- Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字
-
Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字一、项目功能利用Tkinter组件中的Canvas绘制图形和文字。二、项目分析要在窗体中绘制图形和文字,需先导入Tkinter组...
- 一文吃透Python虚拟环境(python虚拟环境安装和配置)
-
摘要在Python开发中,虚拟环境是一种重要的工具,用于隔离不同项目的依赖关系和环境配置。本文将基于windows平台介绍四种常用的Python虚拟环境创建工具:venv、virtualenv、pip...
- 小白也可以玩的Python爬虫库,收藏一下
-
最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。Playwright是...
- python环境安装+配置教程(python安装后怎么配置环境变量)
-
安装python双击以下软件:弹出一下窗口需选择一些特定的选项默认选项不需要更改,点击next勾选以上选项,点击install进度条安装完毕即可。到以下界面,证明安装成功。接下来安装库文件返回电脑桌面...
- colorama,一个超好用的 Python 库!
-
大家好,今天为大家分享一个超好用的Python库-colorama。Github地址:https://github.com/tartley/coloramaPythoncolorama库是一...
- python制作仪表盘图(python绘制仪表盘)
-
今天教大家用pyecharts画仪表盘仪表盘(Gauge)是一种拟物化的图表,刻度表示度量,指针表示维度,指针角度表示数值。仪表盘图表就像汽车的速度表一样,有一个圆形的表盘及相应的刻度,有一个指针...
- 总结90条写Python程序的建议(python写作)
-
1.首先 建议1、理解Pythonic概念—-详见Python中的《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易...
- [oeasy]python0137_相加运算_python之禅_import_this_显式转化
-
变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串输入单个变量没有问题但是输入两个变量之后一相加就非常离谱添加图片注释,不超过1...
- Python入门学习记录之一:变量(python中变量的规则)
-
写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...
- 掌握Python的"魔法":特殊方法与属性完全指南
-
在Python的世界里,以双下划线开头和结尾的"魔法成员"(如__init__、__str__)是面向对象编程的核心。它们赋予开发者定制类行为的超能力,让自定义对象像内置类型一样优雅工...
- 11个Python技巧 不Pythonic 实用大于纯粹
-
虽然Python有一套强大的设计哲学(体现在“Python之禅”中),但总有一些情况需要我们“打破规则”来解决特定问题。这触及了Python哲学中一个非常核心的理念:“实用主义胜于纯粹主义”...
- Python 从入门到精通 第三课 诗意的Python之禅
-
导言:Python之禅,英文名是TheZenOfPython。最早由TimPeters在Python邮件列表中发表,它包含了影响Python编程语言设计的20条软件编写原则。它作为复活节彩蛋...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)