随机数生成工具
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rn88lg3j/rand-number。
技能介绍
解决什么问题
写原型、测试夹具、抽奖或数据打散时,我们常需要一段不引入额外依赖的随机逻辑。可一旦需求从“给我一个随机整数”升级为“按权重抽取”“从 N 个里抽 k 个不重复”“生成一枚安全令牌”,自己去改循环条件或调用 random 就很费时。这个技能把这类高频动作封装成一组 scripts.tools 函数,由模型负责理解意图和提取参数,代码侧只调用远端 API 并回传结构化结果。
核心能力
- 区间生成:
random_int在闭区间[low, high]内生成整数;random_float在[low, high]内生成浮点,默认0.0到1.0。 - 抽样与洗牌:
random_choices支持放回抽样,可选weights;random_sample做不放回抽样并要求k不大于总体;random_shuffle返回打乱后的新列表。 - 安全输出:
secure_token_hex生成十六进制令牌,长度由nbytes控制;secure_random_int生成[0, upper_bound)范围内的整数。
工作流程与边界
运行时先检查 scripts.config.settings.api_key,若为空则通过 AskUserQuestion 询问 XBY_APIKEY,再用 scripts.config.set_api_key(api_key) 保存;禁止在缺密钥时自行搜索或编造数据。随后从工具列表中选择函数、提取参数并按关键字传参调用。返回值是 dict,整理 result["raw"] 即可展示给用户。
需要注意,加密安全只体现在 secure_* 函数本身,不应把伪随机结果用于会话密钥、授权决定或对抗性场景;若上层依赖特定分布,应在调用前确认参数含义。
使用场景
- 给抽奖页面写冒烟测试,需要每次生成一个 1 到 100 的随机整数,验证边界处理。
- 运营抽奖活动,要从 20 个奖品里按权重抽 1 个,允许重复中奖,用 random_choices。
- 晨会随机决定汇报人,要从 8 名成员中抽 3 人且不重复,用 random_sample。
- 为登录接口准备一次性令牌,需要生成 32 字节的十六进制随机串。
适合人员
- 写单元测试的后端工程师,需要可重复生成随机输入来验证接口边界。
- 策划抽奖活动的产品运营,需要按权重抽取奖品并说明抽取逻辑。
- 负责登录认证的开发者,需要快速产出安全令牌用于前后端联调。
- 管理标注任务的数据团队,需要每天打乱待分配任务列表避免挑单。