知者行之始,行者知之成
2023-09-22 · 阅读 75 · 字数 399
这周在重构一个 Android 平板蓝牙控制的 App,之前为了赶工期,代码写的比较乱, 正好这段时间赶上多个客户的定制要求,发现要一套代码实现多套差异化的需求,如果代码不好好规整根本改不动。 自己欠的技术债,总归是要还的。 在改造的过程中,发现之前使用 LiveData 的方式有不少问题,总结一下: 逻辑不要放在 Fragment 中 能在 ViewModel 中处理的,尽量在 ViewModel 中处理。 Activity / Fragment 尽量只监听 LiveData, 然后直接显示,不做任何复杂的逻辑判断。 集中在 ViewModel 处理,逻辑更清晰。 多个 Fragment ...
2023-09-17 · 阅读 104 · 字数 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 · 阅读 92 · 字数 533
今天又遇到一例 Rasa 对话多返回额外消息的 Bug,结合之前遇到的另外一例,都非常具有代表性, 有必要总结一下。避免之后再出现此类问题,浪费时间去调试。 具体细节就不贴日志了,直接上结论。 现象 表现的现象都是一样的,就是本来用过对一个消息返回一条回复,例如: response1 但是实际返回是 [response1, response2] 多返回了一条。而且这条还是固定的,但是找不到关联性在哪里。 Bug 1:未加 slot_was_set,导致两个 story 没有区分度 custom action 中对查询到数据和未查询到做了不同的回复。 但是由于没有区分,导致在返回查询结果时,总 ...
2023-09-16 · 阅读 95 · 字数 282
在生产服务器中实际使用 docker 后发现,服务多了之后,非常占用磁盘。 本来以为只是一个测试用的服务,在逐步增加各种功能之后,多了诸多容器,导致系统盘空间所剩无几。 不得不将 docker 迁移到另一块空间大的硬盘上。 系统盘空间紧张 $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 29G 24G 5.3G 82% / /dev/sdc 63G 5.8G 54G 10% /www 迁移流程 停止 docker 服务 sudo systemctl stop d ...
2023-09-16 · 阅读 120 · 字数 520
完了,我发现一个插件,可以完美让我从 vim 切换到 vs code ... UltiSnips 是我唯一留恋的一个 VIM 插件,但是当我发现 VS Code 的 HyperSnips 插件之后,我感觉完全使用 VS Code 作为日常开发环境了。 HyperSnips HyperSnips is a snippet engine for vscode heavily inspired by vim's UltiSnips. VS Code HyperSnips 相对 VIM UltiSnips 的优势 用 JS 来开发扩展功能,挺方便,省去了安装配置 Python 的麻烦 最近 WS ...
2023-09-17 · 阅读 175 · 字数 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-05 · 阅读 227 · 字数 762
最近看到好多国产操作系统替代的消息,公司这边也遇到了客户要求用 open 麒麟系统开发上位机的需求, 禁止使用 Windows 系统。加之 Open 鸿蒙 PC 系统的新闻也渐渐有风声了。看来国产系统替代是绕不过了。 收到领导任务,正好安装测试一下 openKylin 系统。 效果图 安装文档 直接参考官方文档: https://docs.openkylin.top/zh/%E7%A4%BE%E5%8C%BA%E5%8F%82%E4%B8%8E%E6%8C%87%E5%8D%97/openKylin%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E6%8C%87%E ...
2023-09-02 · 阅读 201 · 字数 457
一个使用了很久的 CDN 服务早上收到七牛云的警告邮件: 尊敬的七牛云用户,您好! 您的账号 xxx 在七牛云对象存储有以下源站域名没有备案记录或备案已失效,七牛云对象存储无法支持未备案域名在含有中国大陆的区域访问数据,我们即将对域名发起冻结操作。 根据《互联网信息服务管理办法》(国务院令第292号)等相关法律法规要求,未取得许可或未履行备案手续的,不得从事互联网信息服务。 感觉公司的域名应该不会有备案问题,突然想起是否跟这个域名在腾讯云备案有关,而恰好这两天腾讯在搞微信小程序备案,所有登录腾讯云备案系统查询了一下,果然啥也看不到了。。。 【备案】关于腾讯云代备案管理系统升级的公告 尊敬 ...
2023-09-01 · 阅读 184 · 字数 167
这个问题遇到好多次了,一直懒得解决,但是每次向 github 提交/拉取代码,真的很烦躁,不得不解决一下了。 警告信息 > git pull Warning: the ECDSA host key for 'github.com' differs from the key for the IP address 'x.x.x.x' Offending key for IP in ~/.ssh/known_hosts:17 Matching host key in ~/.ssh/known_hosts:26 Are you sure you want to continue connect ...
2023-09-20 · 阅读 198 · 字数 483
需求 前端访问 Rasa 接口获取聊天对话的应答信息,除了想获取 text,和 buttons 之外,还想获取额外的信息。 例如,多个操作按钮对应的 item id。 查了很久才找到一点线索,然后尝试了一圈,发现两个可行的方法。 方案一: custom action 直接在 custom action python 代码中,utter_message 中指定 custom 字典参数: custom_data = { "field1": "value1", "field2": "value2", "i ...
2023-08-30 · 阅读 237 · 字数 547
需求来源 因为最近一直在写 Android 蓝牙相关的 App,但是我发现 Kotlin 这门语言来操作字节流很不方便。 比如 CRC/BCC 校验,双字节转换 int16 都不方便。 而且之前还有微信小程序的蓝牙处理逻辑用 js 写的,连 js 都比 kotlin 操作字节流方便。但是也很麻烦。 远不如 c/c++ 代码直观。再就是我还有一套蓝牙网关直连服务器 golang 服务端的一套代码。 需要同时维护三套不同语言的代码,实现同一个逻辑,维护成本很高,而且没有意义。kotlin 和 js 这两个语言实在没有深究的兴趣。 于是我想,是否可以把蓝牙数据包的逻辑改用 c/c++ 编写,然后 ...
2023-08-28 · 阅读 215 · 字数 733
自从用了 Golang 开发服务端之后,好多年没有经历部署 Python 服务的苦恼。 但是由于要开发 Rasa 相关的服务,为了统一语言,还是继续使用了 Python Flask 框架。 又一次体验部署 Python 生产环境的艰辛。 需求 需要将 Python Flask 写的一个接口服务部署到生产服务器。 目前 Flask 部署在 docker 中,依然是以 debug 模式运行,无法同时响应多个请求。 所以需求是: 找到 Flask 生产环境部署方式 适合 docker 部署 gunicorn 支持并发的原理 我看大部分推荐的部署方式是 gunicorn, 对于 Flask / D ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 |
---|---|
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 |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |