无穷尽的Q&A

钉钉...钉钉... 双双同学刚到工位,报销答疑群的消息就万马纷沓而来。她只能咧嘴无奈的摇摇头。水都还没有喝一口就开始“人工智能”的去回复。原本很阳光心情开始蒙上一层薄薄阴影。在这无休无止的Q&A中,就算你对工作有磐石一般强硬,有芦苇一般坚韧... 也经不住如此水滴石穿般消磨。工作激情便如磨刀之石,不见其消,日有所损。

然则,不只双双有这样的困境,人事的同学也是每天为各种简单的咨询扰得不胜其烦,牢骚满腹;还有负责合同用章的coco同学同样不堪其扰... 更让人苦恼是无人值班的周末,问的同事在焦急的等待,而支持的同事可能无法及时响应...

“母婴护理”做为公司的核心业务,虽然每个护士同学上岗前都有过专业的训练,但是在实践过程中难免遇到各类问题,这时她们只有去问有经验的护士或者护士长...

所有种种问题,最后都是由一名“专家”完成了解答。这个“专家”在哪里,这成了我一直思考的问题。显然,我还不至于去搞一个真正的“专家系统”。

OpenAi Assistant 横空出世

面对上面的困境,我们也有尝试使用 openai 的 emebedding能力,但是效果不是太好,并且每次问答要花费50美分;也用闻达独立搭建过,就是不太稳定(可能是没部署好吧,老是要重启)。一直在想,为啥如雨后春笋般出现的各路大模型,没有一个可以非常方便的让我们导入领域知识呢。一筹莫展之时,OpenAi 11月7号的发布会给我带来了希望。其中新增的Assistant就如立于高山之巅远看东方已见光芒四射喷薄欲出的一轮朝日。发布会只有45分之短,但是其涵盖的内容却不短。鉴于英文听力能力欠缺,找了一个“AI同声中文版”发布会视频,有需要的可以点击「链接」观看,一定不虚此点。

一个简单的通用方案&问题

OpenAi 的assistant 已经具备了根据提供的领域知识检索(retrieve)特定问题的答案了。接下来就是接入企微自建应用,考虑到语音便利性,这次增加了对语音的支持,通过腾讯云asr接口识别语音,再通过文字调用Assistant。大致组件如下图。其中问答有个特别的地方就是在创建一个 “Run”后,需要轮询检查其是否是终态,如果是 “completed”再去检索消息,获取最终的回复。

实现一个Assistant的流程如下,为了偷懒,我就直接在平台创建了assistant及上传文件。

1.Create an Assistant in the API by defining its custom instructions and picking a model. If helpful, enable tools like Code Interpreter, Retrieval, and Function calling.

2.Create a Thread when a user starts a conversation.

3.Add Messages to the Thread as the user ask questions.

4.Run the Assistant on the Thread to trigger responses. This automatically calls the relevant tools.

知识小达人组件图

有了想法,趁着大好的周末,早上带着两娃去学校踢球,贪婪的享受着冬日阳光,消耗完体力娃子们,吃过午饭便早早的开始了午睡。趁着着孩子们睡觉的光景,我又有大把的时间开始打代码实现想法了。有时真感觉自己不再年轻了,遛个娃,写个代码就觉得可以受用一个周末。

由于之前的一些准备工作,不到两小时demo就基本完成了。没有压力之下的代码,几乎不用调试就跑起来了,原来没有压力也可以动力十足,也许这就是专注的力量。基本用起来是没啥问题了,唯一的问题就是响应时间几乎在30秒左右。对于人事一类的问答尚可,一些需要快速响应的场景,这个时间稍微慢了些。



近些时间尝试过好几种方式,这里也简单做个对比,鉴于能力,这个对比不一定准确,仅供参考。


方式

响应速度

单次花费

稳定性

整体

Fine-tuning

20s

训练成本高,难度大。效果不好。

Embeddings

20s

高(50美分)

单次成本高,回答不全面

Assistant

30+s

低(数美分)

回答全面,响应速度稍差

闻达

20s

自备服务器,稳定性不太好。

         

未来的思考

目前是直接嫁接在企业微信的自建应用之上(钉钉也是同理),可以通过不同应用对应不同的Assistant,解决不同场景的答疑。任何企业,只要有现成资源的情况下,任何问答场景都可以快速应用。

如果要移植到微信小程序或者app,就可以使用同声传译插件快速语音识别,并可通过tts 文字转语音,提升应用的便利性。

希望语音小助手的上架,可以为双双同学,为coco同学,为那些每天还埋没在无休无止的问答中的同事们带来些许支持,扫除阴影,还他们一个阳光的心情。

微信:jijunjian

成为一名优秀的程序员!

基于OpenAi通用特定领域的智能语音小助手的更多相关文章

  1. 基于百度通用翻译API的一个翻译小工具

    前几天写了一个简单的翻译小工具,是基于有道翻译的,不过那个翻译接口有访问限制,超过一定次数后会提示访问过于频繁,偶然发现百度翻译API如果月翻译字符少于200万是不收取费用的,所以就注册了一个百度开发 ...

  2. 基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手.主要的功能是通过企业微信的 WebHook 来推送疫情信息.这里将使用 Serverless ...

  3. 基于特定领域国土GIS应用框架设计及应用

              基于特定领域国土GIS应用框架 设计及应用              何仕国 2012年8月16日   摘要: 本文首先讲述了什么是框架和特定领域框架,以及与国土GIS 这个特定领 ...

  4. 用Java开发的【智能语音开发板MEGA ESP32AI】

    有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? MEGA E ...

  5. DSSA特定领域软件体系结构

    一.何为DSSA 特定领域软件架构(Domain Specific Software Architecture,DSSA)是一种有效实现特定领域软件重用的手段.简单地说,DSSA就是在一个特定应用领域 ...

  6. 基于STM32+华为云IOT设计智能称重系统

    摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...

  7. 转:IT巨头纷纷“卡位” 智能语音成人机交互入口必争之地

    http://www.cs.com.cn/xwzx/hwxx/201707/t20170712_5368595.html 随着物联网的迅速发展,作为重要接口的智能语音技术已成为国内外IT巨头的必争之地 ...

  8. 基于事件驱动的DDD领域驱动设计框架分享(附源代码)

    原文:基于事件驱动的DDD领域驱动设计框架分享(附源代码) 补充:现在再回过头来看这篇文章,感觉当初自己偏激了,呵呵.不过没有以前的我,怎么会有现在的我和现在的enode框架呢?发现自己进步了真好! ...

  9. 基于OpenAI的代码编辑器,有点酷有点强!

    最近随着OpenAI的一系列大动作,把软件领域搅的天翻地覆.各行各业各领域,都出现了大量新产品. 开发工具领域首当其冲,各种新工具层出不穷,今天TJ就给大家推荐一个全新的开发工具:Cursor 从官网 ...

  10. 基于Labelstudio的UIE半监督智能标注方案(本地版)

    基于Labelstudio的UIE半监督智能标注方案(本地版) 更多技术细节参考上一篇项目,本篇主要侧重本地端链路走通教学,提速提效: 基于Labelstudio的UIE半监督深度学习的智能标注方案( ...

随机推荐

  1. UiAutomator2.0(转)

    1.     概述 UI测试(功能测试.黑盒测试)不需要测试者了解应用程序的内部实现细节,只需要知道当执行了某些特定的动作后是否会得到其预期的输出.这种测试方法,在团队合作中可以更好地分离的开发和测试 ...

  2. Jenkins服务开机自启动

    最近因为护网行动,每天都要对服务器进行开.关机操作.为了省事儿,对Jenkins服务进行开机自动启动服务改造.实现如下: 1. 通过chkconfig --list命令列出系统中已安装的服务及其启动状 ...

  3. WPF中非递归(无后台代码)动态实现TreeView

    在UI界面中,树形视图是比较常用的表示层级结构的方式,WPF中提供了TreeView控件.对于TreeView控件的基本使用已经有很多文章.大都是介绍如何在XAML中使用硬编码的固定信息填充Treev ...

  4. 3、Spring之入门案例

    3.1.创建module 3.1.1.右击project,创建新module 3.1.2.选择maven 3.1.3.设置module名称和路径 3.1.4.module初始状态 3.1.5.配置打包 ...

  5. 《SQL与数据库基础》06. 函数

    目录 函数 字符串函数 数值函数 日期函数 流程函数 本文以 MySQL 为例 函数 函数是指一段可以直接被另一段程序调用的程序或代码. 要查看函数操作的结果,可以使用 SELECT 函数(参数); ...

  6. DORA指标:公司业务成果的“占卜师”

    2009 年,受 John Allspaw 和 Paul Hammonds 在 Velocity 上演讲的启发,Patrick Debois 组织了一次名为"DevOps Days" ...

  7. Programming abstractions in C阅读笔记:p139-p143

    <Programming Abstractions In C>学习第55天,p139-p140,总结如下: 一.技术总结 1.文件I/O操作 文件I/O操作可以分为一下这些步骤: (1)声 ...

  8. Node.js 使用 officecrypto-tool 读取加密的 Excel (xls, xlsx) 和 Word( docx)文档

    Node.js 使用 officecrypto-tool 读取加密的 Excel (xls, xlsx) 和 Word( docx)文档, 还支持 xlsx 和 docx 文件的加密(具体使用看文档) ...

  9. JSTL fn函数使用总结

    首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function ...

  10. Gitbook Android App

    最有用Ionic 2 做了一个Gitbook 混合app, 上线google play的时候提醒我触犯了假冒行为,可能是logo和名字问题吧,放弃: 上线腾讯被认为是h5 app,不是native a ...