liyupi / yu-auto-reply
- вторник, 28 марта 2023 г. в 00:13:48
AI 自动回复工具,支持灵活配置多个平台的监控和回答。目前已支持知识星球自动回复、OpenAI(ChatGPT)自动回答
作者:程序员鱼皮
编程学习圈:编程导航知识星球
[toc]
基于 Java Spring Boot 的平台监控及自动回复工具,支持灵活地配置多个监控任务,支持一键部署!
演示视频:https://www.bilibili.com/video/BV1WX4y1o7aL
本项目采用多种设计模式,解耦监控者及回答者,可以灵活配置多个不同平台的监控,并绑定不同类型的自动回复。
🙏🏻 大家喜欢这个项目的话,感谢动手点点 star,后面作者可能会官方提供更多的平台监控支持。
1)修改 application.yml
配置,主要包含 3 部分:
详细配置如下:
# openAI 配置
# https://platform.openai.com/docs/api-reference
openai:
model: ${OPENAI_MODEL:text-davinci-003}
apiKey: ${OPENAI_API_KEY:你的apiKey}
# 知识星球配置
# https://zsxq.com/
zsxq:
cookie: ${ZSXQ_COOKIE:你的星球cookie}
groupId: ${ZSXQ_GROUP_ID:你的星球id}
# 是否提醒提问者
silenced: ${ZSXQ_SILENCED:true}
# 任务配置
task:
# 任务列表,支持配置多个
list:
- name: task1 #任务名
monitor: zsxq #监控者
answerer: openai #回答者
cron: '0/30 * * * * ?' #执行周期
2)直接运行主类 MainApplication
即可
点击上述部署按钮后,会自动识别环境变量,改成自己的就可以了:
一图胜千言:
本项目最关键的设计就是在于 解耦监控者与回答者 ,你可以监控任何平台,并且给每个平台绑定不同的自动回答(比如 OpenAI)。
实现关键:
1)编写一个类,实现 monitor/Monitor
抽象类
2)修改 factory/MonitorFactory
的 createMonitor
方法,补充创建你自己的监控者
1)编写一个类,实现 answerer/Answerer
接口
2)修改 factory/AnswererFactory
的 createAnswerer
方法,补充创建你自己的回答者
作者平时非常忙 ,本项目也是仅用了几个小时抽空做的,开源出来给大家参考,但是 PR 和 Issues 响应不会很及时,感谢理解!
如有项目本身的问题,欢迎提 issues 和 PR;
如有编程方面的问题、或者需要项目教学,请看 编程导航知识星球
1)问:为什么先支持知识星球?
答:因为 OpenAI 的 API 不是免费的,星球可以限制提问次数,防止刷接口