用若琪的源代码打造属于自己的人工智能 | 开发日记精选

简介: 从拿到若琪开发套件到开发出一个属于自己的人工智能助手,卜木好好钻研了一番若琪在 GitHub 开放的源代码,并把自己的劳动成果也分享到若琪的代码仓库。刚刚,我们对他做了一次简单的采访。
0e6094d7db6c20a4e237b5da00f41de5bc38cb43


卜木是一位工作三年的工程师,主营 PHP web。作为一个典型的硬件爱好开发者,他对各种硬件、软件都很感兴趣,搭建过树莓派私人服务器,也参与过某大型企业智能空气净化器物联软件开发。


注意到 Rokid ALL in ONE 全栈智能语音开发套件后,卜木开启了一段与 Rokid 的奇妙之旅。他以 xqbumu 在 Rokid 开放平台注册,开发了名为记事本的 Skill。开启这个技能,可以抛掉备忘录,动动嘴巴就能用若琪帮你做提醒。使用这个技能就相当于为自己配了一个低配版的贾维斯呢。


从拿到若琪开发套件到开发出一个属于自己的人工智能助手,卜木好好钻研了一番若琪在 GitHub 开放的源代码,并把自己的劳动成果也分享到若琪的代码仓库。下面我们对他做一次简单的采访。


Q:拿到若琪开发套件的时候啥心情?

A:因为刚好是圣诞节收到的嘛,我一直把她当作圣诞礼物。



Q:拿到开发套件后都是怎么玩的呀?

A:看看上面装了些什么,统统体验了一下,看看能怎么玩。



Q:若琪开发套件功能非常多,什么对你来说最好玩?

A:主要是可以深度了解到rokid的代码,进行无限的探索,然后实践到开发板上!



Q:看到你开发了记事本的 Skill 也分享了源码。为什么想做记事本呀?

A:词事本是一个在功能应用上比较综合的技能,包含 Rokid 提供的 session、db 等基础设施和交互流程。通过这样一个技能的开发,能最快地了解 Rokid。



Q:那下一步打算怎么玩?

A:尝试 rss 订阅技能,看看自动播放、promise、async/await 这些特性,打好基础之后就开始向硬件交互、设备间通讯等方面研究。


以下摘录于卜木开发日记:

《我的 Rokid 之路  附:记事本技能全部源代码》


目前已开发的技能 记事本

* 基本功能框架完成

* 欢迎各位开发提交PR


本人遇坑及经验总结如下:

1、没迅速找到官方的开发指南,直接进官方文档就上,然后无法通过APP内置的点击6下的开发模式连接Rokid,查询官方文档,可得知,需要通过Pebble设备方式进行连接,如果以后还有其它问题建议先进入开发套件常见问题解决方案汇总。


2、在配置WiFi时,本人路由器名称设置了默认隐藏,因此在通过蓝牙配置WiFi连接时,一直无法配置通过,总结以往raspberry pi把玩经验,果断尝试关闭隐藏WiFi,得以解决无法配置连接WiFi的问题,导致该问题需要修改固件里的WiFi连接脚本,这个本人就先不尝试了,具体问题及解决方案已经发送到Rokid讨论里了,希望能改进无法正常连接隐藏的WiFi,解决资料。


3、如果在APP的配网蓝牙连接这里搜索不到设备,要么使用点击6下的方式进入配网流程,要么使用Pebble设备的配网流程。


4、CPU板正对USB Type-c 的按键就是刷机用的按键,先按住,再通电,看出USB_Burning_Tool上出现设备,就可以松了,比用Debug板进行刷机方便很多,很人性化。


5、在Windows下使用adb shell连接到开发板后,使用ls命令,如果出现类似如下的内容,可能是自带的字符串着色与Windows的console不兼容,登入shell后,执行 alias ls=‘busybox ls --color=never’ 即可。建议Rokid预安装bash作为备用选项,或者开发者自行下载使用Cmder软件,可解决以上问题。(不怎么直接使用sh,一直用的bash或者zsh,没有出现过类似问题)


关于WiFi连接及配网

坑走完之后就是Demo了,能正式配置Rokid的WiFi连接,剩下的就很方便了,通过官方开发指南先做一个简单的人机对话,在开发过程中与Rokid的直接交流语言的JavaScript,因此若要开发更为灵活的服务功能,需要依托其它的后台接口开发。


交互构建

原本只想简单的写一个记录语音内容的技能(其中还包含其它方面的简单功能,只是是简单的),最后发现给自己挖的坑比较多。


因此建议在开发技能前,最好能完成完整的交互流程,以方便对技能可能涉及到的业务有一个整体的把控。


语音交互内容比较单一,但在整体的把控上确没有常见的app或者web开发直观,因此再次说明了有一份完整的交互流程作为一个技能开发的唯一的直观可视依据是很有必要的。


技能流程 


e64a3719427d29eb88fc02768aa967ce815e3431


关于入口词的一些事


Rokid 中可能涉及的入口词问题,本人发现Rokid 是针对技能貌似是独占的,前期可能刺激开发者或者其他人员抢占入口词,建议平台针对这点进行入口词融合、增加针对用户或者设备调试不同技能的优先级功能。



关于语言交互的设置


词表

*Rokid 预定义词表

*自定义词表
自定义词表除了可以通过普通的一行一个词的方式设定自己的词表,还可以通过如下的方式引用其它词表(引用词表以 $ 符号开头) $ROKID.YES_ZH$ROKID.NO_ZH


setConfirm
如果要通过setConfirm获取用户对话过程的任意内容,可以参考如下方式
意图定义:

json
 {
     "intent": "RecordAny",
     "slots": [
         {
             "name": "content",
             "type": "ROKID.ANY"
         }
     ],
     "user_says": [
         "!$content"
     ]
 }


服务代码对应handler使用如下setConfirm语句:

javascript
 this.setConfirm({
     confirmIntent: 'RecordAny',
     confirmSlot: 'content'
 });


dbServer

dbServer.set(key, value, callback) 该方法为异步形式,因此涉及数据库操作时,应该将其后的业务逻辑放于callback中,否则数据还没取回就执行到后面的业务中。


get:Rokid.dbServer.get(key, callback)与Rokid.dbServer.delete(key,callback)是否为异步形式尚未验证,建议同样将数据库操作之后的业务逻辑放于callback中。


鉴于关于数据库操作为异步形式,因此建议相关开发者自建统一的数据库存取管理的相关代码以避免多层嵌套(具体参考代码稍后会以GitHub的形式放出),或者改写为Promise形式,目前尚未改写成功。


集成测试中的后端服务测试与服务列表中的测试用例在逻辑上不属于同一个会话,因此在调试中需要做区别,也就是数据库里的数据不共享,需要单独各自添加测试数据。


想要参与讨论,欢迎传送到>>>原文与开发者切磋。

目录
相关文章
|
存储 人工智能 搜索推荐
SuperAGI 一个开发优先的开源自主人工智能代理框架
供应、生成和部署自主人工智能代理
|
22天前
|
人工智能 自然语言处理 自动驾驶
深入理解ChatGPT:下一代人工智能助手的开发与应用
【10月更文挑战第27天】本文深入探讨了ChatGPT的技术原理、开发技巧和应用场景,展示了其在语言理解和生成方面的强大能力。文章介绍了基于Transformer的架构、预训练与微调技术,以及如何定制化开发、确保安全性和支持多语言。通过实用工具如GPT-3 API和Fine-tuning as a Service,开发者可以轻松集成ChatGPT。未来,ChatGPT有望在智能家居、自动驾驶等领域发挥更大作用,推动人工智能技术的发展。
|
1月前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。
|
2月前
|
人工智能 自然语言处理 前端开发
基于ChatGPT开发人工智能服务平台
### 简介 ChatGPT 初期作为问答机器人,现已拓展出多种功能,如模拟面试及智能客服等。模拟面试功能涵盖个性化问题生成、实时反馈等;智能客服则提供全天候支持、多渠道服务等功能。借助人工智能技术,这些应用能显著提升面试准备效果及客户服务效率。 ### 智能平台的使用价值 通过自动化流程,帮助用户提升面试准备效果及提高客户服务效率。 ### 实现思路 1. **需求功能设计**:提问与接收回复。 2. **技术架构设计**:搭建整体框架。 3. **技术选型**:示例采用 `Flask + Template + HTML/CSS`。 4. **技术实现**:前端界面与后端服务实现。
|
3月前
|
人工智能 自然语言处理 算法
【人工智能】探索GPT-4o mini:解锁成本效益新纪元,赋能开发创新与效率
在人工智能领域的浩瀚星空中,OpenAI再次以其创新之光照亮了前行的道路,推出了备受瞩目的GPT-4o mini模型。这款被誉为“迄今为止最具成本效益的小模型”不仅继承了GPT系列强大的自然语言处理能力,更在成本控制上实现了重大突破,为开发者们开启了一扇通往高效与创新的大门。
68 1
|
6月前
|
机器学习/深度学习 人工智能 搜索推荐
未来人工智能在后端开发中的应用前景
随着人工智能技术的不断发展,后端开发领域也迎来了新的机遇与挑战。本文探讨了人工智能在后端开发中的应用前景,分析了其对传统开发模式的影响和未来发展趋势。
|
4月前
|
人工智能 自然语言处理 搜索推荐
人工智能:赋能开发的革命性力量
在科技飞速发展的今天,人工智能(AI)正深刻影响软件开发。AI作为强大的助手,通过自动化需求分析、智能代码补全及测试等手段大幅提升开发效率。同时,AI助力软件创新,如个性化推荐系统改善用户体验,并通过数据分析辅助决策,降低项目风险。随着AI技术普及,掌握相关技能变得至关重要,推动开发者技能升级与人才培养。总之,AI正重塑软件开发,加速流程、激发创新,引领行业发展至新高度。
146 1
|
3月前
|
人工智能 网络协议 Java
23.12月中旬 上海寻序人工智能科技-上海嘉定-Java开发实习生-薪资150-230/d 面经
关于上海寻序人工智能科技有限公司Java开发实习生岗位的面试经验分享,涵盖了技术问题如对象存储MinIO、ArrayList扩容、Object类方法、hashCode和equals方法、处理哈希冲突、JVM垃圾回收器、GC算法、网络协议、邮件协议、HTTP请求方法、Linux和Docker命令、Dockerfile制作等。
|
6月前
|
人工智能 运维 数据库
未来的后端开发:人工智能与云计算的融合
【2月更文挑战第10天】 传统的后端开发一直依赖于对数据库、服务器和网络等底层技术的熟练运用,然而随着人工智能和云计算技术的飞速发展,未来的后端开发方向也将发生深刻的变革。本文将探讨人工智能与云计算在后端开发中的应用前景,以及它们将如何重塑后端开发的方式和手段。
|
5月前
|
人工智能 前端开发 搜索推荐
人工智能(AI)和低代码开发平台
人工智能(AI)和低代码开发平台
115 1
下一篇
无影云桌面