wechaty / summer

Summer of Wechaty (SoW) is a program for connecting students with the Wechaty community for coding & tech writing.
https://wechaty.github.io/summer-of-wechaty
Apache License 2.0
31 stars 12 forks source link

Wechaty Summer 导师报名 2022 #92

Open binsee opened 2 years ago

binsee commented 2 years ago

导师列表

2

导师姓名

李彬彬

导师邮箱

shanmu@juzi.bot

导师在社区贡献时使用的邮箱

5285894+binsee@users.noreply.github.com

导师贡献的社区仓库地址

组织详情

组织名称

Wechaty

组织类型

开源社区

官网地址

https://wechaty.js.org/

组织 logo

https://wechaty.js.org/img/wechaty-logo.svg

公共邮箱

wechaty@googlegroups.com

编程语言标签

Python,Go,JavaScript,Java

涉及技术领域标签

NodeJS,NLP,AI, RPA; Conversational AI

组织简介

Wechaty 是一个用于构建聊天机器人的开源软件。它是一个现代的对话式 RPA SDK,聊天机器人开发者可以用仅仅几行代码来创建一个机器人。

详细介绍

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

项目列表

本届可以提交 4 个项目

项目 1

项目名称

优化 Wechaty-Puppet-xp 项目的稳定性

项目支持报名语言/Project Support Language

项目主导师/Project Mentor

李彬彬

项目描述

Puppet-xp 是 Wechaty 社区中一个供开发者免费接入个人微信的 puppet,是在微信生态下入门 Chatbot 的良好选择之一。 Puppet-xp 使用 Frida 框架接入个人微信,使前端开发者也可以参与到 puppet 的开发过程中。然而因 Frida 内部机制及当前代码实现方式原因,存在两个问题,需要进行解决:

  1. 当前其核心代码使用 JavaScript 编写,且只能使用单文件,不利于编写与维护大量代码。不能在运行前进行有效的验证,运行起来错误的代码会直接导致程序崩溃。且造成程序崩溃后,没有有效的信息来快速判断引发错误的代码位置,非常不利于开发和使用,因此需要使用 TypeScript 对核心代码进行重构,便于维护和开发。
  2. 存在内存释放不及时的问题,会导致长时间运行的 Chatbot 占用内存会越来越多,不利于 Chatbot 的稳定运行,因此需要解决内存占用问题。

需要功能增强:

  1. 适配支持自动登录的个人微信版本,如 3.5.x

需要注意:

难度/Difficulty

涉及技术领域标签/Labels of Technical Field

; Wechaty,Frida,TypeScript,动态追踪调试

编程语言标签/Labels of Programming Language

; TypeScript

项目产出要求/Project Output Requirements

产出要求概述 具体产出细节
调查 Agent 长时间运行后的内存占用情况、运行稳定性 1. 对 agent 的各功能进行测试,统计各功能引发的内存占用额外增长情况。
2. 跟踪统计代码中各处申请内存的生命周期。
3.对比重构前后的测试情况,总结性能和稳定性提升情况。
使用 TypeScript 对 Agent 进行全面重构 1. 将现有 agent js 代码拆分为不同功能模块,并使用 TypeScript 重构。
2. 解决使用 TypeScript 重构后的 agent 可能产生的程序运行崩溃问题。
适配个人微信 3.5.x 以后的版本 适配 3.5.x 以后的版本,以支持自动登录功能。需确保各功能可在新版本中的可用性。

项目技术要求/Project Technical Requirements

技术要求概述 技术要求细节
Frida 熟悉 Frida 框架,了解其内存管理机制,熟悉 Frida-compile 工具
TypeScript 熟练使用 TypeScript 编写和组织代码
动态跟踪调试 熟练使用动态跟踪调试工具,快速定位异常问题

项目成果仓库/Project Repository

最终成果仓库
https://github.com/wechaty/puppet-xp