分类下相关文章
2024-04-06 · 阅读 2026 · 字数 842
默认,Rasa 服务器只使用 1 个 worker。 对于生产环境,这肯定是不能接受的。 rasa 多并发 单机高并发设置 环境变量 SANIC_WORKERS 设置为 1 以上 默认 Rasa custom action server 也只使用 1 个worker。将环境变量 ACTION_SERVER_SANIC_WORKERS 的值设置为 1 以上 注意:locker store 的设置不是 InMemoryLockStore 时, 才可以启用多个 worker。 为何直接增加 worker 数量行不通 因为每一次请求的回复都需要基于对话的历史,而同一个用户的多个请求分散到多个 wo ...
2023-09-17 · 阅读 1438 · 字数 523
需求背景 例如,我想让 Rasa 提示用户输入要购买的图书数量,需要输入 1 本到 100 本。 方案一 slots: book_number: type: float min_value: 1 max_value: 100 但是这里的 min_value 及 max_value 只是限制了范围, 在输入的数字超过范围时,自动修正为边界值,没有起到校验失败时提示的效果。 这个方案不好。 注: slot type 没有整型,只有 float 类型。 方案二 Rasa Custom Action validating: https://rasa.com/docs/ra ...
2023-09-17 · 阅读 1201 · 字数 533
今天又遇到一例 Rasa 对话多返回额外消息的 Bug,结合之前遇到的另外一例,都非常具有代表性, 有必要总结一下。避免之后再出现此类问题,浪费时间去调试。 具体细节就不贴日志了,直接上结论。 现象 表现的现象都是一样的,就是本来用过对一个消息返回一条回复,例如: response1 但是实际返回是 [response1, response2] 多返回了一条。而且这条还是固定的,但是找不到关联性在哪里。 Bug 1:未加 slot_was_set,导致两个 story 没有区分度 custom action 中对查询到数据和未查询到做了不同的回复。 但是由于没有区分,导致在返回查询结果时,总 ...
2023-09-17 · 阅读 1748 · 字数 406
需求 在每次 rasa form 获取用户输入之后,将这个过程中用到的 slot 值重置。 即,置为 None。 防止下次进入同一个 form 时,slot 非空的情况导致未提示用户输入就进入之后的流程。 slot 重置 custom action 中,return 列表中加入 SlotSet 即可。例如: 在获取用户名之后,将用户名重置: return [ SlotSet("name", None), ] 错误的做法 SlotSet("name", None), return [ ] 这样,并不会生效。 custom action 中 retu ...
2023-09-20 · 阅读 1853 · 字数 483
需求 前端访问 Rasa 接口获取聊天对话的应答信息,除了想获取 text,和 buttons 之外,还想获取额外的信息。 例如,多个操作按钮对应的 item id。 查了很久才找到一点线索,然后尝试了一圈,发现两个可行的方法。 方案一: custom action 直接在 custom action python 代码中,utter_message 中指定 custom 字典参数: custom_data = { "field1": "value1", "field2": "value2", "i ...
2023-08-27 · 阅读 1207 · 字数 340
现象 rasa custom action 中的代码,无法获取到 slot 值: items = tracker.get_slot("items") 而我确实在之前的流程中已经设置了 slot 的值 return [ SlotSet("items", items), FollowupAction("action_a"), ] 疑惑 通过打印日志,可以确定的是,赋给 slot 的值不是空。 可是为何获取不到呢? 我怀疑是 story 中没有加入对应的流程,即 slot_was_set 逻辑。 解决方法 测试了一下,确实如此,加入 ...
2023-11-08 · 阅读 1828 · 字数 873
使用场景 例如,用 Rasa 实现一个自动聊天机器人,要同时实现多端: 网页端 微信小程序端 Android / iOS 原生 App 端 Windows 端 每一端的回复内容会有些许差异,如: utter_greet 网页端:欢迎使用大象计算器,地球上最不强大的计算器 微信小程序端:欢迎使用大象计算器微信小程序,您也可以关注大象工具公众号接收各种骚扰信息 突然想到 Rasa channel 是否可以实现这个功能,于是查了一下官方文档,看起来很挺合适。 不同 channel 返回不同 response 参考: https://rasa.com/docs/rasa/connectors/ ...
2023-08-02 · 阅读 1568 · 字数 295
需求场景 在 rasa custom actions 的 python 代码中,需要调用一些三方 http api,并对查询结果进行缓存。 例如,调用天气查询接口一次查询未来三天的天气。将三天的结果放到一个 slot 中缓存。然后,用户通过聊天对话询问某一天的天气时,就可以直接返回 cache 中的结果,无需每次都调用三方接口。 rasa slot 是否支持 list,dict 类型 之前只用过 slot 存储 text,number 这样简单的基础数据类型。不确定是否支持 list 和 dict 这样的类型。 查了一下 rasa 的官方文档,确实支持,只需要将 slot 类型设置成 any。 ...
2023-07-22 · 阅读 1458 · 字数 132
在给家里台式机增加了块新 SSD 之后,终于有足够的空间可以安装 Rasa 了。。。 参照 开源对话机器人框架 Rasa (一):安装 中的流程使用 pip3 安装了rasa 之后。 执行: > rasa --version rasa: command not found 却发现 rasa 没有找到。 实际的 rasa 安装路径为: /home/zhongwei/.local/bin/rasa 说明 $HOME/.local 不在 PATH 中。 修改 ~/.bashrc 添加 export PATH=$PATH:$HOME/.local/bin 使配置生效 source ~/.b ...
2023-08-30 · 阅读 1816 · 字数 654
domain.yml 中的 slot 配置 以下是一段有问题的 slot 配置 slots: email: type: any influence_conversation: true mappings: - type: from_text conditions: - active_loop: email_form 训练时的错误信息 > rasa train --force InvalidSlotConfigError: An AnySlot cannot be featurized. Please use a dif ...
2023-07-12 · 阅读 1697 · 字数 1142
漏洞现象 在部署好 botfront,并创建了管理员账号之后,第二天发现账号消失了。 我本以为是本地目录权限问题,导致 mongodb 没有将数据写入磁盘。 但是,修改了本地目录权限之后,这个问题又出现了。 感觉出大问题了。 查看 mongodb 日志 通过 docker logs 查看了 mongodb 镜像的日志。 {"t":{"$date":"2023-07-10T12:33:33.424+00:00"},"s":"I", "c":"-", ...
2023-07-09 · 阅读 2317 · 字数 734
Botfront 是一个非常方便的 Rasa GUI 图形化管理后台。可以在网页里: 编辑所有的 Rasa 配置文件 执行训练 使用 web 聊天组件 非常适合没有 linux 服务器操作经验的用户。 整个安装配置过程参考 https://botfront.io/docs/installation/server-cluster 即可。 这里只是记录一下文档中没有提及的细节。 版本 botfront@1.0.5 目录结构 $ tree -a . ├── .botfront │ ├── botfront.yml │ └── docker-compose-template.yml ├── ...
2023-07-04 · 阅读 2509 · 字数 717
Rasa 可以管理用户 session,每个 session 由 conversation_id 唯一标识。 当你从 web 聊天组件或者 telegram app, fackbook messager 等不同的 channel 向 rasa webhook 发送一条消息时, 你所指定的 sender_id 即被转换为 conversation_id, 然后传递给 Rasa Core。 注意,默认情况下,Rasa session 是存储在内存中,即一旦你关闭 rasa 服务,session 就会丢失。 可以通过将对话信息存储到数据库来解决这个问题,例如,MongoTrackerStore, R ...
2023-07-01 · 阅读 2376 · 字数 1045
例如,我想在 Rasa 对话过程中,缓存当前用户选择的服务 ID。 方便在调用其他业务接口时使用该 slot 的值。 custom actions 代码示例 actions.py 中,假设要将 my_slot 设置为 some_value: from typing import Any, Text, Dict, List from rasa_sdk import Action, Tracker from rasa_sdk.events import SlotSet class MyCustomAction(Action): def name(self) -> Text: ...
2023-07-21 · 阅读 2719 · 字数 117
例如,我想在 Rasa actions.py 中,对 dispatcher.utter_message 返回的消息进行格式化。 加粗 这里类似 Markdown 的语法,需要加粗的文本前后加双星号即可。 换行 使用 \n Rasa 会自动 trim 掉前后的空格。 示例: dispatcher.utter_message( text=f"**Reservation No.{index+1}** \n Name: {item['name']}" ) 效果: 注意 如果换了其他前端方案,例如 ChatUI,就不支持 markdown 语法了。需要自己去兼容。 ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |