使用Actions On Google客户端库构建智能助手
这个库是官方的Node.js SDK的一个Kotlin移植版,为Kotlin和Java开发者提供了一种快速构建Google Assistant智能行动的途径。Ticketmaster Assistant Action(例如:“Ok Google, 问Ticketmaster寻找摇滚音乐会附近”)已经在生产环境中使用了这个库。
项目介绍
Actions On Google Client Library for Kotlin不仅与原生的Node.js SDK保持紧密的API一致性,而且其实现也尽可能地贴近Node.js版本,以便于在添加新特性时进行代码维护。它支持v2版本的Actions on Google API,并且包含了完整的测试套件,所有测试均通过。
项目技术分析
- 面向Kotlin和Java开发者:这意味着任何熟悉JVM语言的人都可以轻松上手。
- 对话流和支持交易的示例:库中包含了对Dialogflow和Actions SDK的支持,以及关于如何创建对话组件和交易API的示例。
- API匹配度高:库的API设计与官方Node.js SDK非常接近,确保了跨平台开发的一致性。
- 可扩展到其他平台:尽管主要针对Dialogflow和Google Assistant,但可以扩展以适应Facebook Messenger、Slack等其他平台。
项目及技术应用场景
- 智能家居控制:控制家庭设备如灯、空调和安全系统。
- 个性化推荐服务:如音乐播放、新闻推送或天气预报。
- 购物助手:帮助用户查找商品、比较价格、完成购买过程。
- 客户服务机器人:为用户提供实时的帮助和信息查询服务。
- 娱乐应用:预订电影票、游戏比赛门票等。
项目特点
- Kotlin/JVM兼容:适合Kotlin和Java开发者使用。
- 全面测试:所有从Node.js SDK移植过来的测试都已执行并全部通过。
- 高效移植:库的结构和功能与Node.js SDK类似,方便跨平台更新。
- V2支持:包括Dialogflow和ActionSDK,且已有实际应用案例验证。
- 多平台潜力:虽然目前主要面向JVM,但未来有可能支持JavaScript和其他平台。
- 自定义数据支持:允许向原始平台传递自定义数据。
快速开始
对于V1版本,这个库已经发布到了jCenter。只需在你的Gradle或Maven配置文件中添加依赖即可开始开发。V2版本的使用方式,请参考项目中的示例。
在Kotlin或Java中,你可以创建一个简单的响应来与用户交互。以下是Kotlin和Java的示例代码:
fun welcome(app: DialogflowApp) = app.ask(...)
Function1<DialogflowApp, Object> welcome = app -> app.ask(...);
然后,将这些处理函数映射到对应的意图,像这样:
val actionMap = mapOf(WELCOME to ::welcome, ...)
Map<String, Function1<DialogflowApp, Object>> intentMap = new HashMap<>();
intentMap.put(ConversationComponentsSampleKt.WELCOME, welcome); ...
最后,在一个Servlet中处理HTTP请求:
@WebServlet("/conversation")
class WebHook : HttpServlet() {
override fun doPost(req: HttpServletRequest, resp: HttpServletResponse) {
DialogflowAction(req, resp).handleRequest(actionMap)
}
}
@WebServlet("/conversation/java")
public class ConversationComponentsSampleJava extends HttpServlet { ... }
许可证
本项目采用许可证.md许可协议。
总之,Actions On Google Client Library for Kotlin是一个强大而灵活的工具,它使得在Kotlin和Java中构建Google Assistant应用变得更加简单。如果你想要利用Google Assistant的能力,这是一个值得尝试的开源项目。