yu-auto-reply 项目介绍
yu-auto-reply 是一个基于 Java Spring Boot 的平台监控及自动回复工具,由知名开发者程序员鱼皮创建。它具备极高的灵活性,支持配置多种监控任务,并能一键快速部署。此项目特别适合需要自动化信息处理和回复的人群,例如技术社区管理者、在线问答平台的运营人员等。
项目主要功能
监控能力
- 知识星球提问监控:实时关注知识星球的提问情况。
- 默认监控:支持模拟数据的监控。
回复能力
- OpenAI 回答:可以接入 OpenAI 的服务,支持选择不同的模型,比如 gpt-4,提供智能化回复。
- 默认回复:支持模拟数据的回复。
配置能力
- 多任务配置:用户可以配置多个任务,每个任务可灵活选择不同的监控和回复方式。
部署能力
- Docker 支持:项目支持容器化的 Docker 部署方式。
- Railway 一键部署:提供简便的一键部署服务。
- 环境变量动态配置:通过设置环境变量改变项目配置,无需直接修改代码。
快速启动指南
- 配置文件修改:用户需要编辑项目中的
application.yml
文件,主要涉及到以下几个方面:- OpenAI 配置:用户需要提供一个有效的 API Key。
- 知识星球配置:用户需获取自己的 cookie 信息。
- 任务配置:灵活配置多个监控任务,详细示例如下:
# openAI 配置
openai:
model: ${OPENAI_MODEL:text-davinci-003}
apiKey: ${OPENAI_API_KEY:你的apiKey}
# 知识星球配置
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 * * * * ?'
- 启动项目:运行项目的主类
MainApplication
,项目即可启动。
一键部署指南
通过 Railway 提供的一键部署功能,用户可以快速启用项目。用户只需点击部署按钮,设置自己的环境变量,项目即可在平台上运行。
架构设计
项目采用多种设计模式实现高可扩展性和灵活性,特别是实现了监控者与回答者的解耦合。通过定义 Answerer
和 Monitor
接口,并使用中介者模式让 JobMediator
组合二者,生成监控者和回答者的过程则交由工厂模式处理,配置的读取和任务创建则由 Spring Scheduler 负责。
开发扩展
自定义监控器
- 编写一个类,实现
monitor/Monitor
抽象类。 - 在
factory/MonitorFactory
的createMonitor
方法中增加自定义监控器的创建逻辑。
自定义回答者
- 编写一个类,实现
answerer/Answerer
接口。 - 在
factory/AnswererFactory
的createAnswerer
方法中增加自定义回答者的创建逻辑。
欢迎贡献
开发者非常欢迎贡献者在有问题时提交 PR 和 Issues,同时鼓励对编程感兴趣的朋友加入开发讨论,或者在需要项目教学时参考编程导航知识星球。
常见问答
问:为什么优先支持知识星球?
答:由于 OpenAI 的 API 并不免费,而知识星球可以限制提问次数以防止滥用接口,因此首先支持。
通过上述简单介绍,相信大家对 yu-auto-reply 项目有了一个基本的了解。这个工具不仅适用面广,而且配置灵活,期待有更多人使用和贡献。