我在参与极狐GitLab创作营 JIHULAB 101活动的时候,发现极狐GitLab官方启用了一个机器人,会在issue哪里进行服务,我就突发奇想,很多地方都有自动回复的客服机器人,那在极狐GitLab能不能造个机器人玩?我发现极狐GitLab官方的机器人并不能做到客服回复的水平:
我觉得我可以造一个玩玩,所以,出现了如下的画风:
机器人思路首先,本文只讨论在极狐GitLab实现机器人的思路,并不包含NLP自然语言处理和人工智能部分,这部分可以有现成的云服务进行集成,我就不多说了。一个用户被@以后有没有什么事件或接口呢?找遍API文档,并没有专门的API接口来提供,那我就开始想办法了,怎么才能知道有人@我了呢?当有人@我以后在我的待办列表里会出现一条数据,这个待办列表是有API接口的,接口地址是:https://jihulab.com/api/v4/todos?state=pending&per_page=100然后获得待办列表,里面有项目ID、issue的ID、类型等信息,这样我就知道有人@我了,并且知道项目ID、issue的ID、内容,这就好办了。然后去发生事件的ISSUE接口:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid,就可以进行回复和查看详情了。回复完以后在待办事件里标记为已完成:https://jihulab.com/api/v4/todos/:id/mark_as_done,这样就算处理完了。实现步奏
- 扫描待办列表:https://jihulab.com/api/v4/todos?state=pending&per_page=100
- 获得ISSUE详情:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid
- NLP处理内容:自行对接各种机器人接口
- 回复ISSUE:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid/notes
- 标记已完成:https://jihulab.com/api/v4/todos/:id/mark_as_done
用处在极狐GitLab拥有自己的客服机器人不是一件很酷的事情吗?