软工AI Bot NABCD分析
目标:
打造一个基于大数据的 IT 问答机器人服务,通过运用人工和AI 技术,极大提高问答产品的用户满意度。
适合高校《软件工程》,《人工智能》课程作为结对编程或者团队项目。
项目代号:小猿
人员:
高校学生,助教
用户的痛点 (NEED)
- 新用户在学习一门技术 (编程语言)有很多问题,但是在一般的完整提问后没有任何保证能得到及时回应
- 新手不知道如何提高质量的问题,别人也不知道如何回答
- 即使很想知道答案(是急需解决的问题),也可以付钱,但是也没有途径请到高手来回答
- 我这个问题肯定以前有人回答过,但是我找不到
- 【答辩】是否对问答领域有限制?
- 计划领域为多个主流编程语言的相关问题。
- 【答辩】后期是否考虑接入问答社区?
- 后台存在一个问答社区,用户也可以直接在社区中搜索。
- 【要求】定义有限目标,一个范围,确保工作量可控也确保服务质量可控。
- 【改进】Alpha阶段范围只限于一种编程语言
解决方案(APPROACH)
-
研发回答机器人,功能如下:
-
当用户提问的时候,马上回答用户,并请用户进一步说明问题 (解决痛点 #1, #2)
-
当用户提问并没有得到完美解答的时候, 机器人可以提示标注有
问题特征
的专家,让他们来回答。 (解决痛点 #3) -
N 天没有进展的问题, 机器人可以
@更多的人
来回答,或者提示作者提高奖励幅度 (解决痛点 #3) -
回答满意度反馈
- 满意:记录下回答过程,作为较好的答案保存
- 不满意:问题有新回答时,通知用户;找更多的人来回答,并提高回答该问题的奖励
-
-
在AI 成熟之前,可以用人工的回答来代替 AI
-
建立AI 回答机器人(小猿)
-
前期人工回答
-
从人工回答过渡到AI
- 将明显的回答交给AI
- 逐步提高AI的回答几率
-
-
交互方面:引入问答机器人。不论是人工回答还是AI回答,用户都只和问答机器人进行交互。
- 【问题】目前是否考虑过整体的技术栈?
- 【要求】如果涉及到模型的话,建议后端采用Python类框架比如Django,或者模型部分单独封装并对上层业务系统提供API。
- 【答辩】基于已有模型和算法,如何根据用户的提问找到用户真正需要的信息?
- 前期需要人工介入,将用户提出的新问题补充入数据集,相当于一个训练模型的过程。
- 【要求】将这件事在技术和业务流程层面上进行确认,确保可行性。
收益(Benefit)
- 能够让用户在提出问题后更及时地被回应
- 帮助新手在提问题时进一步说明问题,完善问题。
- 提高提问者急需回答的问题的解决效率
- 帮助提问者找到曾经有人回答过的类似问题
成本(Cost & Competition)
开发成本:
- UI设计:用户与机器人对话界面,类似淘宝客服。
- 机器人交互:技术难点,现有框架可供参考。
- 数据更新:知识库数据,搜索问答知识的更新。
- 用户奖励机制:优秀回答可以获得虚拟货币的奖励。
- 成功的回答转化为相关搜索结果
用户成本:
几乎没有,可能有的时候想要得到满意的回答需要一点时间。
竞争:
类似同类产品,如知乎,小猿搜题等等。
-
【答辩】基于什么样的原理?如何保证效果一定比现有搜索引擎好?和搜索引擎有何区别?
-
原理部分是一个技术难点,可能是基于关键词抽取与匹配。通过语义匹配来搜索相似问题,根据用户画像建模来邀请定向用户回答。
-
效果方面,我们的回答能够尽力做到与
用户类型
匹配。对于新手友好”的角度来说(这个问题在D部分也有提到),因为搜索引擎并不能保证这一点。
-
-
【答辩】和搜索引擎有何区别:
- 搜索式(搜索功能)和交互式(问答功能),增强用户体验。
- 可针对提问用户类型选出合适的回答。(与前面说的“新手友好”类似)
- 搜索引擎可以理解为一个开放域上的信息检索,好处是搜索的范围很广,但有时因为搜索时间的权衡无法应用一些先进的技术;AI Bot更像是垂直领域的,你们可以专门针对某个领域进行相应的优化,做到小而美
交付与数据(Delivery & Data)
交付方面:
- 功能入口点:问答服务
- 功能入口点:搜索不满意的时候, 可以提示用户 “请试一下我们的问答机器人”
- 用户可以邀请其他用户来回答, 如果邀请的用户提供了最好的答案,那么发起邀请的用户也会得到回报。
数据方面:
- 建立知识图谱(难点)
- 引入现有知识库
软件发布与用户量估计
我们希望通过网站的形式发布软件。用户可以在网页端对知识搜索和提问。
预估发布一周后,网页端用户量约有200-400人。
- 【答辩】如果一个搜索内容在中文互联网上不存在该如何应对?
- 这也就是要处理用户问了“超出知识范围的问题”的情况,需要前面所说的,人工介入。
- 【答辩】如果产品目标用户主要是初学者,则需要考虑给出一个简明的答案,是否会针对这种情况进行优化?
- 可以对一些回答进行标记:“适合初学者”、“适合进阶”等。前期通过人工回答和用户反馈情况进行标记,后期可再结合AI进行标记。