AI 自动回复工具,支持定义监控平台和ChatGPT自动回答

名称: liyupi/yu-auto-reply

地址: https://github.com/liyupi/yu-auto-reply

fork: 85        star: 213        开发语言: Java

简介: AI 自动回复工具,支持灵活配置多个平台的监控和回答。目前已支持知识星球自动回复、OpenAI(ChatGPT)自动回答

 

yu-auto-reply 是一个基于Java Spring Boot 的平台监控及自动回复工具,支持同时接入多个监控的平台,还能为每个平台自定义自动回答的方式,比如由ChatGPT自动回复,同时还支持一键部署。目前已经支持星球自动回复和ChatGPT的自动回答。

 

  架构设计

AI 自动回复工具,支持定义监控平台和 ChatGPT 自动回答

该项目采用了多种设计模式,解耦监控者及回答者,可以灵活配置多个不同平台的监控,并且可以给每个平台绑定不同的自动回答,比如 OpenAI。

 

项目实现关键的关键点:
  1. 定义 Answerer 回答者接口,统一回答的方法
  2. 定义 Monitor 监控者接口,统一监控的方法,通过 Answerer 回调参数实现对监控到的消息进行自动回复
  3. 使用中介者模式,用 JobMediator 类组合 Monitor 和 Answerer,而不是把回答者和监控者强绑定
  4. 使用工厂模式,根据配置生成监控者和回答者
  5. 使用 Spring Scheduler,读取 yml 配置来自动创建多任务 

    功能特性

监控能力

  • 知识星球提问监控

  • 默认监控(模拟数据)

回复能力

  • OpenAI 回答(支持自选模型,比如 gpt-4)

  • 默认监控(模拟数据)
配置能力
  • 支持配置多个任务

  • 每个任务可以灵活指定监控和回答方式

部署能力

  • 支持 Docker 容器化部署

  • 支持 Railway 一键部署

  • 支持动态指定环境变量来改变配置

快速启动

1)修改application.yml配置,主要包含 3 部分:
  • openAI 配置(需要有一个 API Key)
  • 知识星球配置(需要自行获取 cookie)
  • 任务配置

详细配置如下:

# 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 即可

  开发

支持自定义开发,我们可以在项目原来的基础上接入我们自己需要监控的平台和回答者。

 

接入第三方监控平台

1)编写一个类,实现 monitor/Monitor 抽象类
2)修改 factory/MonitorFactory 的 createMonitor 方法,补充创建你自己的监控者
自定义回答
1)编写一个类,实现 answerer/Answerer 接口
2)修改 factory/AnswererFactory 的 createAnswerer 方法,补充创建你自己的回答者

 

  操作演示

AI 自动回复工具,支持定义监控平台和 ChatGPT 自动回答

演示视频可以通过下面的链接可以到 B 站观看:https://www.bilibili.com/video/BV1WX4y1o7aL

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...