Skip to content

johnfans/cafe_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cafe_bot

咖啡馆小樊bot

项目已完善至可以公开贡献的阶段,但编码还请尽可能“照猫画虎”。用户请阅读使用说明书,本地部署请阅读快速开始,贡献请阅读贡献指南

简单的贡献无需本地运行,整体测试交给小樊就好,你只需要确保核心代码的正确。

项目技术栈及依赖

  • 开发语言:Python
  • 核心框架:wxauto
  • 其他依赖:Flask,flask_sqlalchemy,火山引擎SDK,numpy等
  • 数据库:MySQL

环境要求

仅可使用 Windows,win7及以上或winserver2012及以上

Python 3.10及以上

wxauto 39.1.18版本

微信电脑版 3.9.12

Flask 3.1.1以上

火山引擎SDK 3.0.9以上

numpy 2.0以上

MySQL 8.0以上 推荐用navicat管理,防止sql文件执行异常。

使用说明书

  • 命令前缀:所有指令以 / 开头;默认回复会延迟约 2–5 秒,夜间 2 点-8 点不响应。

  • 帮助:/help/帮助 返回功能清单。

  • 来图:/来一份图 或类似“发/来…图”触发;冷却时间为2分钟

  • 抽卡:/抽卡 发送随机图片(含稀有度提示);和来图共享冷却时间

  • 总结:/总结 [条目数/分钟数][条/分],使用条和分区分数量窗口和时间窗口。

  • 分析:/分析 [条目数/分钟数][条/分] [你的提示词] ,把近期记录交给 LLM 按提示词分析。

  • 语录检索/随机:

    • /语录@[群成员] 列出该用户语录;
    • /语录检索 [关键词]@[群成员] 关键词检索;
    • /语录随机@[群成员]/语录随机(全局随机)。
  • 语录收录:需引用一条消息并 使用 /收录@[群成员];24 小时内单人/全局有次数限制,禁止套娃收录。

备注:群成员修改群昵称可能导致关联失效,每次收录会重新关联群昵称与用户

  • 班味排行:/班味排行榜 统计最近 24 小时上班话题数量排名;/班味比重榜 统计上班话题占比排名。

  • 反馈:/issue [你的内容] 通知维护者。

  • 管理指令:/sudo sql\n<SQL>(仅授权用户)执行 SQL 并回显结果。

快速开始

第一步

安装wxauto框架,由于原作者停止维护了,所以从我那里clone下来后安装

git clone https://github.com/johnfans/wxauto.git

cd "path-to-wxauto"

pip install -e .

第二步

搭建数据库。直接用导航猫连接你的MySQL数据库,运行sql_struct里面的所有sql文件。

第三步

安装必要的库

#安装火山引擎SDK
pip install volcengine-python-sdk[ark]
#安装数据库驱动
pip install pyodbc,PyMySQL
#安装flask框架及数据库连接池
pip install flask,flask_sqlalchemy

第四步

编辑用户环境变量 ARK_API_KEY 为你的火山引擎密钥

第五步

clone该仓库,项目目录下创建文件夹0,1,2放入你的抽卡素材。创建文件夹temp用于收集下载的图片。修改跟踪的群聊名称。完成后启动运行listen.py启动服务。

贡献指南

基本模块简介

listen.py: 主函数,安放所有控制流程代码

gacha.py: 抽卡算法模块

db_execute.py: 和主流程无关的数据库操作放这里

setu.py: 对接海星来来涩图接口

llm.py: 对接火山引擎大模型

新功能编码指南

order_analysis指令解析函数开始,开发新功能必须要在这里新建elif,将对应的命令指向你的功能。

在这里你可以:

  • 直接使用parts[index]直接获得命令各部分.

  • 使用msg.contentmsg.sender获得原始消息和发送人。

  • 使用chat.SendMsg(message)发送文本消息,使用chat.SendFiles(path)发送图片和文件。

  • 使用service_judge()函数进行服务频率控制

绝对不可以在这里写耗时超过3秒的操作!网络io提交到线程池pool2_executor,大模型和较为耗时的数据库操作相关提交到线程池pool3_executor

在线程池中你可以执行所有耗时操作,但需要注意:

  • 发送消息请在with lock下进行

  • 不要放死循环占用线程池,定时任务请单独建立线程。

代码书写规范

  • 放到该放的文件下,涉及新的第三方接口请单独创建文件编写接口逻辑

  • 使用下划线命名法

  • 剩下能跑就行,其他没了

贡献方法

  1. 直接提交PR,要求完整能跑。

  2. 提交issue,写出你的设计并附核心代码。

  3. 线下联系小樊。

备注:由于环境搭建较为困难,简单功能实现和bug修复无需搭建环境测试,直接提交即可,小樊会去运行测试,测试结果和通过各种方式通知你

About

咖啡馆小樊bot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages