大象笔记

知者行之始,行者知之成

对话机器人 Rasa(四十一):两例 slot 未赋值问题

突然习惯了在 rasa custom action 中直接赋值 slot, 而不在 yml 流程中注明。 我发现在 rasa 中,如果不在 stories.yml 中写明 slot_was_set,则对应的 slot 就不会在 custom action 中赋值成功,这是为什么? 而有的流程,不在 stories.yml 中标注 slot_was_set,slot 也能赋值成功。 实际上,这是一个错觉。 因为,实际测试发现。只有特地类型的 slot 需要在 stories 中写明 slot_was_set,其他类型的 slot 都可以在 custom action 中直接赋值。 案例一:影响流 ...

阅读全文...

对话机器人 Rasa(四十):一则 FollowUpAction 引起的随机返回问题

问题现象 在 Rasa 某个 action 中,使用了 FollowUpAction 的方式, 但是在执行过程中,出现了多余返回的问题。 我起初以为是类似之前遇到的 对话机器人 Rasa(二十四):两例多返回额外消息的 bug 定位 ,是因为 slot set 导致的,或者 form loop 未标记结束导致的。 但是,经过一段一段代码逐一注释,并插入调试返回之后。发现问题的根源是 FollowUpAction 的使用。 return [ FollowUpAction("action_next_step"), SetSlot("slot_name", ...

阅读全文...

为了避免律师函警告,从 miniconda 切换到 miniforge

今天无意间在某书上刷到,某公司使用 anaconda 管理 Python 开发环境,收到了律师函。 说是在商用场景下,如果公司超过 200 人,就会收到律师函(虽然公司目前没有这么多人,但是万一哪天超过了呢?)。而 miniconda 也不安全,我没有看懂 miniconda 什么情况下会收函, 但是为了避免律师函警告,折腾了半天,从 miniconda 切换到 miniforge 了,Python 世界的妖孽真多 😅 怪不得安装 miniconda 时,需要同意某个协议,但是正常人谁会去看命令行里的用户协议啊。。。 真是大坑。 什么是 miniforge miniforge 是 minico ...

阅读全文...

公司要在办公电脑上安装加密软件,折腾啊

最近公司要求在所有电脑上安装加密软件。其功能是自动将本机的文件,做加密。 加密之后,要通过聊天软件传给其他人,就得先解密。这个解密流程类似企业微信,或者钉钉里的审批流程。 x,我这里一堆 Excel 批量导入的功能,以及 Word 自动化模板处理功能。不知道到时候怎么上传线上环境。只能每次都走审批流程了。 安装加密软件前的准备 微信聊天记录清空,卸载,只保留企业微信来传输文件。注意是防止个人隐私聊天记录被截屏。 退出 wps 账号,并清空本地文件。防止个人文档被加密后,同步到 wps 云盘。那就麻烦了。 安装 我看了一下安装的是北京亿赛通科技的加密软件,没有听说过。 测试 测试了一下,目前 ...

阅读全文...

企业微信同步内部员工通讯录 golang 实现

基于自建应用、自有系统。 腾讯官方文档 概述 - 文档 - 企业微信开发者中心 https://developer.work.weixin.qq.com/document/path/90193 通讯录同步相关接口,可以对部门、成员、标签等通讯录信息进行查询、添加、修改、删除等操作。 企业如果需要从自有的系统同步通讯录到企业微信,需要使用通讯录同步secret。 自建应用、代开发应用、第三方应用在提供功能时,往往需要获取通讯录,开发者可查阅成员、部门、标签相关的接口说明。注意,自建应用、代开发应用、第三方应用仅能读取通讯录,不能编辑,且仅能读取可见范围内的通讯录。 2022年8月15日起,通过 ...

阅读全文...

Golang time.Parse 时区问题引起的时间比对 bug

使用 golang 开发的大赛报名截止时间功能,发现一个奇怪的 bug,就是截止时间判断不准确。 现象是,截止时间设置的是今天上午十点,但是判断函数只有在下午 18 点时才生效。 我第一反应是大概就是时区问题。 未指定时区前 now := time.Now() registerStartTime, err := time.Parse("2006-01-02 15:04:05", registerStart) registerEndTime, err := time.Parse("2006-01-02 15:04:05", registerEnd) fm ...

阅读全文...

[Magento 2 定制化开发] 之十四:Magento 产品详情页面 Details 和 More Information 标题文字修改

想修改 Magento 产品详情页面 Details 和 More Information 标题文字。 首先需要确认是修改哪个文件: 包含 More Information 的文件 > cd /some_path/magento2/vendor/magento > grep "More Information" -r . ./module-page-builder/view/frontend/page_layout/product-full-width.xml: <argument name="title" translate=&qu ...

阅读全文...

通过 MySQL SQL 批量修改 Magento 产品详情

背景 Magento 批量导入的产品详情中,图片的 alt 属性有问题,导致在前端显示不正常。需要通过 SQL 批量修改。 产品详情在哪个表 Magento 2.4.6 版本,产品详情在 catalog_product_entity_text 表中,字段 value 中存储了产品详情的 HTML 内容。 这里很有意思,magento 的产品 SKU,name,price,detail 存储在不同的表中,例如: 产品 SKU 存储在 catalog_product_entity 表中 产品名称存储在 catalog_product_entity_varchar 表中 产品价格存储在 catal ...

阅读全文...

Python 获取不同时区的当前时间

需求背景 需要给处于不同时区的用户,显示不同的当前时间。 如果直接使用 datetime.now() 返回的只是服务器的时间,无法满足不同时区用户的需求。 解决方法 ZoneInfo 参考: https://docs.python.org/3/library/zoneinfo.html 从官方文档可看到,python 3.9 开始内置了这个库。用法: Python 3.12.3 (main, Feb 4 2025, 14:48:35) [GCC 13.3.0] on linux Type "help", "copyright", "credi ...

阅读全文...

Magento 自定义模块实现批量导入产品信息 (一)

背景 通过 Magento Admin 后台手动批量导入 CSV 太慢(在产品比较多的情况下)。需要等待很长时间。 如果能够通过程序,自动化导入批量的 CSV 文件,那就能大大提升效率,减少繁琐的手动操作及等待时间。 而 Magento 又不支持导入的 RESTful API,也不支持命令行,所以只能使用其他的方案。 Magento 定制化模块 网上找到一个方案,看起来是比较靠谱的: https://magento.stackexchange.com/questions/359280/import-product-data-programmatically-using-csv 里面推荐使用定制 ...

阅读全文...

高新技术企业资格测评微信小程序

五一小长假节前给一个客户开发了一套高新技术企业测评小程序。主要功能是方便想申报高新企业的客户了解申报过程中的一些细则,以及通过内置的自评工具,及调查问卷功能,方便辅导机构有针对性地进行指导。以下是一些主要功能界面的截图: 首页界面 常见功能 FAQ 界面 可以查看并检索关于高新技术企业在申报过程中的疑问。里面的资料也都是从政府官方资料中摘取的,非常具有权威性。 专家咨询功能 包括在线微信聊天咨询,及电话等联系方式,以及微信地图导航功能。 研发费用占比计算器功能 研发费用占比=企业近三个会计年度的研发费用总额/企业近三个会计年度的销售收入总额×100%。对于不同销售收入等级的企业,其研发 ...

阅读全文...

对话机器人 Rasa(三十九):使用 Python 编写自动化测试脚本

之前使用 Bash Shell 脚本来实现的 Rasa 长对话流程的测试(多轮对话,因为很多 bug 只有在多轮对话的特定流程之后才会复现)。 但是,Shell 变量太难搞了,特别是单引号及双引号混用的情况。 例如,下面这段脚本: #!/bin/bash set -e # or use "set -o errexit" to quit on error. set -x # or use "set -o xtrace" to print the statement before you execute it. # 定义一个变量,值为 test_us ...

阅读全文...