{"id":28445062,"url":"https://github.com/wechaty/bot5-assistant","last_synced_at":"2025-06-29T20:33:09.939Z","repository":{"id":40444358,"uuid":"422558478","full_name":"wechaty/bot5-assistant","owner":"wechaty","description":"BOT Friday Club Meeting Assistant BOT","archived":false,"fork":false,"pushed_at":"2022-05-10T18:38:20.000Z","size":1183,"stargazers_count":3,"open_issues_count":11,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-06T10:11:34.172Z","etag":null,"topics":["assistant","bot5","meeting","plugin","wechaty"],"latest_commit_sha":null,"homepage":"https://friday.chatie.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wechaty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-29T12:01:12.000Z","updated_at":"2024-06-20T05:48:20.000Z","dependencies_parsed_at":"2022-08-09T20:31:18.190Z","dependency_job_id":null,"html_url":"https://github.com/wechaty/bot5-assistant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wechaty/bot5-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fbot5-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fbot5-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fbot5-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fbot5-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty","download_url":"https://codeload.github.com/wechaty/bot5-assistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fbot5-assistant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262663420,"owners_count":23345048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assistant","bot5","meeting","plugin","wechaty"],"created_at":"2025-06-06T10:11:12.209Z","updated_at":"2025-06-29T20:33:09.919Z","avatar_url":"https://github.com/wechaty.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BOT5 Club Assistant Bot Plugin\n\n[![NPM Version](https://img.shields.io/npm/v/wechaty-bot5-assistant?color=brightgreen)](https://www.npmjs.com/package/wechaty-bot5-assistant)\n[![NPM](https://github.com/wechaty/bot5-assistant/workflows/NPM/badge.svg)](https://github.com/wechaty/bot5-assistant/actions?query=workflow%3ANPM)\n[![Powered by Wechaty](https://img.shields.io/badge/Powered%20By-Wechaty-brightgreen.svg)](https://github.com/Wechaty/wechaty)\n\nBOT5 Meeting Assistant BOT powered by RSVP.ai \u0026 Wechaty \u0026 XState.\n\n![BOT5 Club](docs/images/caq-bot5-qingyu.webp)\n\n\u003e Blog post: [基于Wechaty+轻语实现会议主持助手，崔安颀，Oct 29, 2021, BOT5 Club](https://bot5.ml/events/seminar-minutes-2021-08/#1--%E4%BC%9A%E8%AE%AE%E4%B8%BB%E6%8C%81%E5%8A%A9%E6%89%8B%E6%9C%BA%E5%99%A8%E4%BA%BA)\n\n## BOT5 Club Seminar Flow Chart\n\n```mermaid\nflowchart LR\n  Initializing --\u003e Preparing\n  Preparing --\u003e Talking\n  Talking --\u003e Membershiping\n  Membershiping --\u003e Chairshiping\n  Chairshiping --\u003e Afterparty\n  Afterparty --\u003e Minuting\n```\n\n### 0. Initializing\n\n```mermaid\ngraph LR\n  subgraph Initializing\n    Loading --\u003e Restoring\n  end\n```\n\n```mermaid\njourney\n  title Initializing\n  section Loading\n    Load state from storage: 3: Bot\n  section Restoring\n    Set context: 4: Bot\n    Set state: 5: Bot\n  section Saving\n    Save state to storage: 3: Bot\n```\n\n### 1. Preparing\n\n```mermaid\ngraph LR\n  subgraph Preparing\n    Calling --\u003e Publicity\n    Publicity --\u003e Registering\n    Registering --\u003e Checkining\n    Checkining --\u003e Starting\n  end\n```\n\n```mermaid\njourney\n  title Preparing\n  section Calling\n    Call for chairs/talks: 3: Bot\n    Set chairs: 4: Admin\n    Set talks: 5: Chair\n    Set schedule: 4: Chair\n  section Publicity\n    Send post image twice per day: 3: Bot\n  section Registering\n    Register: 3: Member\n    Send register image: 4: Bot\n  section Checkining\n    8/4/2/1h: 3: Bot\n    20/10m: 3: Bot\n    Check in: 3: Member\n    Send checkin image: 4: Bot\n  section Starting\n    Start: 4: Bot\n```\n\n### 2. Talking\n\n```mermaid\ngraph LR\n  subgraph Talking\n    Introducing --\u003e Welcoming\n    Welcoming --\u003e Retrospecting\n    Retrospecting --\u003e Presenting\n  end\n```\n\n```mermaid\njourney\n  title Talking\n  section Introducing\n    Introcude Club: 3: Bot\n    Introduce Talks: 4: Admin\n  section Welcoming\n    Welcome newcomers: 4: Chair\n    Self introduction: 3: Newcomer\n  section Retrospecting\n    Retrospect past seminar: 3: Chair\n  section Presenting\n    Present talks: 4: Speaker\n```\n\n### 3. Membershiping\n\n```mermaid\ngraph LR\n  subgraph Membershiping\n    Thanking --\u003e Upgrading\n    Upgrading --\u003e Brainstorming\n    Brainstorming --\u003e Photoing\n  end\n```\n\n```mermaid\njourney\n  title Membershiping\n  section Thanking\n    Thank speakers: 3: Chair\n    Send certificate image: 4: Bot\n  section Upgrading\n    Newcomer upgrade: 3: Newcomer\n    Trail member upgrade: 3: Member\n    Member upgrade: 4: Member\n    Trail chair upgrade: 4: Chair\n    Chair upgrade: 5: Chair\n  section Brainstorming\n    Brainstorm: 3: Member\n  section Photoing\n    Photo: 4: Member\n```\n\n### 4. Chairshiping\n\n```mermaid\ngraph LR\n  subgraph Chairshiping\n    Rotating --\u003e Summerizing\n    Summerizing --\u003e Roasting\n    Roasting --\u003e Pledging\n    Pledging --\u003e Photoing\n  end\n```\n\n```mermaid\njourney\n  title Chairshiping\n  section Rotating\n    Naming: 3: Member\n    Voting: 3: Member\n    Deciding: 4: Member\n  section Summerizing\n    Summerize: 3: Chair\n  section Roasting\n    Roast: 2: Member\n  section Pledging\n    Pledge: 3: Vice\n  section Photoing\n    Photo: 4: Member\n```\n\n### 5. Afterparty\n\n```mermaid\ngraph LR\n  subgraph Afterparty\n    Housekeeping --\u003e Drinking\n    Drinking --\u003e Photoing\n    Photoing --\u003e Paying\n  end\n```\n\n```mermaid\njourney\n  title Afterparty\n  section Housekeeping\n    Housekeep: 3: Member\n  section Drinking\n    Drink: 5: Member\n  section Photoing\n    Photo: 5: Member\n  section Paying\n    Pay: 3: Member\n```\n\n### 6. Minuting\n\n```mermaid\ngraph LR\n  subgraph Minuting\n    Recording --\u003e Uploading\n    Uploading --\u003e Blogging\n  end\n```\n\n```mermaid\njourney\n  title Minuting\n  section Downloading\n    Download video: 3: Bot\n  section Uploading\n    Upload video: 3: Bot\n  section Blogging\n    Post blog PR: 4: Bot\n```\n\nSee also: [BOT5 Club Chair Manual](http://bot5.ml/manuals/chair/)\n\n## Getting Started\n\n### Step 1: Install\n\n```sh\nnpm install wechaty-bot5-assistant --save\n```\n\n### Step 2: Make a bot\n\n```sh\n$ vim mybot.js\n\nimport { WechatyBuilder } from 'wechaty'\nimport { Bot5Assistant } from 'wechaty-bot5-assistant'\n\nconst bot = WechatyBuilder.build()\n\nbot.use(Bot5Assistant({\n  room: [\n    /^BOT5/,\n  ]\n}))\n.on('scan', (url, code) =\u003e console.log(`Scan QR Code to login: ${code}\\n${url}`))\n.on('login', user =\u003e console.log(`User ${user} logged in`))\n.start()\n```\n\n### Step 3: Run\n\n```sh\nnode mybot.js\n```\n\n## Options\n\n```ts\nconst DEFAULT_CONFIG = {\n  // Which room(s) you want the bot to work with.\n  // Can be a RegExp (for topic) or a function (filter room instance)\n  // E.g. room: function (room) { room.topic().indexOf('我的') \u003e -1 }\n  room: [/BOT5/i, 'room_id@chatroom'],\n}\n```\n\n## RSVP.ai\n\nRSVP.ai is a machine-learning company that provides deep natural language understanding services for conversation-styled applications. It grew out of a collaboration between Tsinghua University and University of Waterloo.\n\nRSVP.ai is a small and dedicated team making the smart machines today become the thinking machines tomorrow.\n\n## Finate State Machine (FSM)\n\nIt's a finite state machine, which means it has a finite number of states.\n\n\u003e Huan(202110): the above line is auto generated by GitHub Pilot.\n\nWe are trying to use [XState](https://xstate.js.org/) to implement the FSM and using FSM to manage our meeting state transitions.\n\nCurrently we are just getting started, you can learn more about the BOT5 Club Meeting FSM at \u003chttps://wechaty.github.io/bot5-assistant/\u003e\n\n## Resources\n\n### Projects\n\n- [Dialogs modeled as finite state machines, Giorgio Robino, Jul 14, 2016](https://solyarisoftware.medium.com/dialoghi-come-macchine-a-stati-41bb748fd5b0)\n\n### Papers\n\n- [Dialog Management for Credit Card Selling via Finite State Machine Using Sentiment Classification in Turkish Language, Gizem Sogancıo ˘ glu et. al., INTELLI 2017 : The Sixth International Conference on Intelligent Systems and Applications (includes InManEnt)](https://www.thinkmind.org/articles/intelli_2017_2_30_60066.pdf)\n- [State Machine Based Human-Bot Conversation Model and Services, Shayan Zamanirad et. al., May 9, 2020, CAiSE 2020](https://www.semanticscholar.org/paper/State-Machine-Based-Human-Bot-Conversation-Model-Zamanirad-Benatallah/ffa524c4e247a9f532ea4ddb6407be0c9cc8d301)\n- [Tartan: A retrieval-based socialbot powered by a dynamic finite-state machine architecture, George Larionov, 4 Dec 2018](https://arxiv.org/abs/1812.01260)\n- [A Chatbot by Combining Finite State Machine , Information Retrieval , and Bot-Initiative Strategy, Sanghyun Yi, Published 2017](https://www.semanticscholar.org/paper/A-Chatbot-by-Combining-Finite-State-Machine-%2C-%2C-and-Yi/1fc7c24d80ede54871696e8e44a60fb6d0c8a475)\n\n## History\n\n### main v0.3 (Nov 29, 2021)\n\n1. add `stt()` for convert speech to text\n\n### v0.2 (Oct 29, 2021)\n\n1. Code init in Bot Friday Club meeting\n1. Code clean for integrating with [Friday BOT](https://github.com/wechaty/friday)\n1. Add XState FSM support\n\n## Author\n\n- [@caq](https://github.com/caq), [Anqi CUI](http://me.caq9.info/), Co-founder \u0026 Chief AI Officer of [RSVP.ai](https://rsvp.ai/)\n- [@huan](https://github.com/huan), Huan LI, Founding chairman of [BOT5 Club](https://bot5.ml), author of [Wechaty](https://wechaty.js.org)\n\n## Reference\n\n- [Wechaty](https://github.com/wechaty/wechaty)\n\n### Silk to Text\n\n- [Tencent Cloud - 文档中心 \u003e 语音识别 \u003e API 文档 \u003e 录音文件识别极速版相关接口 \u003e 录音文件识别极速版](https://cloud.tencent.com/document/product/1093/52097)\n\n## Copyright \u0026 License\n\n- Code \u0026 Docs © 2021-now Wechaty Contributors\n- Code released under the Apache-2.0 License\n- Docs released under Creative Commons\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Fbot5-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwechaty%2Fbot5-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Fbot5-assistant/lists"}