Gavin老师Transformer直播课感悟 - 基于ElasticSearch的Rasa项目实战之微服务源码逐行解析(四十二)

本文深入解析Rasa与ElasticSearch整合的微服务源码,涉及Rasa微服务的代理模式,自定义ActionElasticsearchKnowledgeBase,以及ElasticsearchKnowledgeBase的实现,详细阐述如何利用ElasticSearch作为知识库存储介质进行查询操作。
摘要由CSDN通过智能技术生成

    本文继续围绕工业级业务对话平台和框架Rasa,深入解析Rasa与ElasticSearch整合项目的微服务源码。

一、基于ElasticSearch的Rasa项目实战之微服务源码解析

  1. Rasa微服务和ElasticSearch整合中代码架构分析

      Rasa微服务是指Rasa server使用在endpoint.yml文件里定义的URL来发送HTTP POST请求(通过aiohttp工具包进行远程异步通信)给action server来调用远程actions,这样的设计模式称为代理模式。对于用户来说,只知道在和对话机器人进行交互。

为了整合ElasticSearch进行知识库查询,需要自定义一个action “ActionElasticsearchKnowledgeBase”,并创建基于ElasticSearch的knowledge base并继承自rasa_sdk提供的KnowledgeBase接口,这个接口提供了一个默认实现InMemoryKnowledgeBase,在实际项目开发中,如果使用基于内存的knowledge base,就不能实现对知识库中存储的领域知识的动态更新,所以一般需要建立自定义的知识库。

 2.  KnowledgeBase源码解析

在KnowledgeBase的初始化方法中,使用lambda函数来定义每一个指代mapping:

下面定义了获取object的attribute的方法,注意方法使用了async关键字,这样就可以在执行读取数据等耗时操作时不会对后续操作造成阻塞:

根据lambda函数对传入的object_type转换为对用户友好的信息表示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值