Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

基于Wechaty 开发开源的二师兄社群逗乐机器人 #83

Open
wj-Mcat opened this issue May 15, 2021 · 10 comments
Open

基于Wechaty 开发开源的二师兄社群逗乐机器人 #83

wj-Mcat opened this issue May 15, 2021 · 10 comments

Comments

@wj-Mcat
Copy link
Contributor

wj-Mcat commented May 15, 2021

开源软件供应链点亮计划

“开源软件供应链点亮计划-暑期2021”(以下简称 暑期2021)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。

根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2021”活动奖金和奖杯。

官网:https://summer.iscas.ac.cn

Wechaty

Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的5年中,服务了数万名开发者,收获了 Github 的 9600 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。

Wechaty 官网暑期2021项目入口:https://wechaty.js.org/docs/ospp/2021/

项目名称

基于Wechaty 开发开源的二师兄社群逗乐机器人

背景介绍

王二狗曾经是一个被无数群主拿来活跃气氛的开心果,通过成语接龙,猜歇后语和猜歌名等简单好玩的游戏提升群内聊天频率,提升人与人之间的沟通。

Wechaty 社区目前已经支持微信、Whatsapp、企业微信、飞书等常见流行即时通讯工具,并且能够通过多语言 SDK (比如 Python Wechaty) 进行调用,我们在本次 Summer 2021 的项目中,社区希望能够开发一个开源的二师兄,完成讲笑话、成语接龙、猜图片、猜歌名、查航班、查天气、微博爆款热搜提醒等功能。

需求介绍

  1. 完成开源二师兄游戏项目搭建
  2. 开发讲笑话、成语接龙、猜图片、猜歌名、查航班、查天气、微博爆款热搜提醒等功能
  3. 设计二师兄对外公开 Logo、不同情绪下的形象
  4. 完成二师兄后花园页面开发

在初期开发中,完成讲笑话、成语接龙、猜图片、猜歌名、查航班等功能,即可完成原型验证 POC 。

项目难度

中(奖金:9,000元)

导师联系方式

  • 王丹丹:Wechaty Contributor, AI Chatbot Wechaty x PaddleHub UP 主
  • 吴京京:Python Wechaty creator, Wechaty committer, Microsoft Research Asia Intern

项目产出目标

  1. 每日代码 commit
  2. 每周提交一份 report (回复本 issue)
  3. 每两周一次在线会议
  4. 完成讲笑话、成语接龙、猜图片、猜歌名、查航班、查天气、微博爆款热搜提醒等功能
  5. 设计二师兄对外公开Logo以及不同情绪下的形象
  6. 完成二师兄后花园开发
  7. 完成计划列表中的计划
  8. 配置 GitHub Actions 实现自动化测试* (可选)

项目技术栈

  1. TypeScript programming language
  2. Git

参考链接

@wj-Mcat wj-Mcat changed the title 基于Wechaty 开发开源的王二狗社群逗乐机器人 基于Wechaty 开发开源的二师兄社群逗乐机器人 May 19, 2021
@ninetailskim
Copy link

@ReiKohaku 同学你好像提交了申请但是没有留下任何联系方式

@ReiKohaku
Copy link

基于 Wechaty 开发开源的二师兄社群逗乐机器人 期中项目报告

项目信息

  • 项目名称:基于 Wechaty 开发开源的二师兄社群逗乐机器人

  • 项目要求:基于Wechaty 开发开源的二师兄社群逗乐机器人 #83

  • 项目链接:https://github.com/ReiKohaku/piggy-bro

  • 方案描述

    本项目需要基于Wechaty开发一个多功能群聊机器人。

    该机器人的核心功能是编写并配置拦截器来实现对消息的响应。拦截器是一种固定传入参数和返回值类型的函数,通过编写拦截器的逻辑,可以拦截消息放行消息给下一个拦截器,同时做出一定的响应

    本项目预置了若干功能,如查天气、讲笑话、成语接龙、猜字谜等以供使用和参考。同时,本项目希望能够允许用户自行添加功能,所以用户可以通过自己编写拦截器的方式,来为机器人添加功能。

    本项目也将提供一个二师兄后花园页面,作为扩展的帮助文档、状态查询和日活功能使用。

  • 时间规划:

    • 开发可扩展式开发框架(7.1-7.7)

      • 熟悉Wechaty开发模式
      • 搭建二师兄开发脚手架
    • 具体功能实现(7.8-7.30)

      • 初步实现要求中的具体功能,可能包括且不限于:讲笑话、看热搜、查天气、成语接龙、猜图片、猜歌名
      • 初步编写相关功能API的注册与部署文档
    • 设计二师兄Logo及形象(8.1-8.7)

      • 为二师兄的Logo和形象做出初步描述
      • Logo及形象定稿
    • 开发二师兄后花园(8.8-8.30)

      • 设计后花园游玩流程及各项数值
      • 搭建二师兄后花园服务及页面
    • 编写文档与完善功能(9.1-9.30)

      • 编写使用、部署及开发文档
      • 整理代码并完善功能

项目进度

  • 已完成工作

    • 完成了机器人基本框架的全部搭建

    • 提供了讲笑话、看热搜、查天气、搜音乐、成语接龙、猜字谜的预置功能。

    • 二师兄的Logo已基本定稿。

  • 遇到的问题及解决方案

    目前的主要问题是不能很好地应对自然语义的复杂环境。

    由于设计上希望响应尽可能快速、高效,目前提供的示例插件均使用正则表达式来检查功能触发、解析参数。这样做有两个缺点:

    • 正则表达式的覆盖虽广,却也不全面。

      例如查天气功能中,预设了两种触发方式:“二师兄,查xx天气”和“二师兄,xx天气如何/怎么样”。但事实上问天气不止有这些问法,还有如“xx的天好不好”、“xx在下雨吗”等问法。这些特殊的问法并不能被正则表达式解析。

    • 正则表达式对参数的提取不是非常好。

      依旧以查天气功能距离,“二师兄,xx天气如何”这句话,关键在于提取出地名。但是由于“二师兄”这一触发词后面就是参数,所以提取地名就稍显困难。另外就如上一条举例,“xx在下雨吗”这类问话中,用户还表达了xx是否在下雨这一含义,这时更符合自然语言的应答应该是“xx在下雨”或“xx没有在下雨”。正则表达式暂时还做不到这些。

    关于这一问题的解决方案,有一种是接入微信开放平台的语境检测API,这样可以较为准确地识别语义。另外也可以考虑使用jieba库分词来解决语义分析和参数提取的问题。

  • 后续工作安排

    后续工作与计划基本一致,优先考虑完成计划清单上的任务。关于自然语义识别这方面将会视产能而定。

@Valerieeeee
Copy link

中期评审意见

  • 项目完成度:井维嘉同学能够按照既定计划进行开源项目开发,目前进度与计划相符;
  • 学生参与度:积极参与项目开发,主动调研新技术和解决现有问题。
  • 代码贡献量:完成了代码 Repo 的设立和整体框架的搭建,实现六种预置的逗乐功能以及扩展接口,此外logo也已基本定稿;贡献量较多
  • 综合评价及建议:项目进展顺利,希望接下来:
    1、进一步优化目前function的语义理解和对话管理;可以尝试一下深度对话的pipeline(从Botsociety-Rasa-Wechaty);
    2、增加更有娱乐性质的function,以及完善后花园功能。

评审结果:通过

@ReiKohaku
Copy link

期中 Demo Day 视频

期中报告:https://youtu.be/VQ56QFz69Ek
Live Code:https://youtu.be/i1AhcgQzQHw

@lijiarui
Copy link
Member

lijiarui commented Sep 1, 2021

Hi @ReiKohaku, Please upload the video to bilibili or Tencent as well, Thanks.

@ninetailskim
Copy link

@ReiKohaku
Copy link

[基于 Wechaty 开发开源的二师兄社群逗乐机器人] 进度报告

日期:2021-09-10

本周完成的成果

  1. 重写了拦截器(Interceptor)的构造和逻辑
  2. 搭建了二师兄后花园的API后端
  3. 编写了快速开始和拦截器开发文档

本周遇到的困难和需要配合的地方

  1. 自造Restful API轮子稍显吃力
  2. 拦截器有些臃肿,实现也不太优雅

下周的开发计划和预计成果

  1. 完成二师兄后花园后端与前端
  2. 编写其它开发文档
  3. 配置Github Issue Template

其他需要说明和同步的事项

@ReiKohaku
Copy link

[基于 Wechaty 开发开源的二师兄社群逗乐机器人] 进度报告

日期:2021-09-17

本周完成的成果

  1. 为拦截器添加了attribute
  2. 完成了二师兄后花园的搭建
  3. 配置了Github Issue Templates

本周遇到的困难和需要配合的地方

  1. 想要做自然语言处理,但是不好与当前项目融合

下周的开发计划和预计成果

  1. 完善文档

其他需要说明和同步的事项

@ReiKohaku
Copy link

Final Demo Day 视频

结项报告:https://youtu.be/Na9pGdf_6oY
Live Code:https://youtu.be/51EwCNB_Y90

@Valerieeeee
Copy link

  • 项目完成度:严格按原计划进行并完成了项目的开发;
  • 学生参与度:能够积极参与项目设计和解决方案的讨论和执行
  • 代码贡献量:完成了整体可拓展框架的搭建,实现六种预置功能以及扩展接口,此外完成拦截器的开发和“后花园”页面的前后端开发;贡献量较多
  • 综合评价及建议:项目进展顺利,交付完整,完成度较高;建议:继续优化目前功能,提高可用度;另外未来可以吸引更多开发者共同开发维护,增加新的功能,增添项目的趣味性和社交功能;

结项审核:通过

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants