在自动化脚本开发领域,大语言模型的融入为脚本赋予了智能分析、自然语言交互、动态决策的能力,让传统的自动化操作从 "机械执行" 升级为 "智能处理"。本文将从平台基础能力、大模型 API 核心用法、前置配置、实战案例、避坑技巧等方面,全面讲解如何在自动化脚本中使用大语言模型。
一、大模型集成优势
冰狐智能辅助平台平台内置了BigModel专属 API,支持百度千帆、DeepSeek、豆包、千问等主流大语言模型的一键调用,让自动化脚本具备了 AI 能力。其集成大模型主要有三个方面:一是语法简单 ,冰狐 JS 去除了标准 JS 中繁杂的语法特性,取消了===/!==等复杂运算符,变量声明、循环、条件判断等基础语法极易掌握;二是安全可靠 ,大模型的 Key/Secret 无需硬编码在脚本中,可通过平台自定义数据功能统一存储,避免信息泄露;三是深度融合,大模型的调用结果可直接与冰狐的自动化操作结合,比如通过大模型分析通知内容后执行对应的 APP 操作,实现 "AI 决策 + 自动化执行" 的闭环。同时,冰狐 JS 支持多线程并发编程、在线编辑、动态部署立即生效,还提供了丰富的系统事件回调(如通知监听、窗口切换、屏幕状态变化)和设备内置常量(屏幕分辨率、设备 UUID、当前窗口类名等),这些能力为大模型与自动化脚本的结合提供了丰富的场景支撑。
二、大模型核心 API 详解
冰狐平台为大语言模型调用提供了两个核心 API:BigModel构造函数和invoke调用方法,这是实现大模型集成的基础,所有大模型操作均围绕这两个 API 展开。
2.1 BigModel 构造函数
BigModel用于创建大模型实例,初始化模型类型、鉴权信息和模型参数,其参数为必填 + 选填组合,具体说明如下:
| 参数名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| type | integer | 是 | - | 模型类型标识,百度千帆 = 1、DeepSeek=2、豆包 = 3、千问 = 4 |
| custom_data_key | string | 是 | - | 平台自定义数据中存储模型 API Key 的键名 |
| custom_data_secret | string | 是 | - | 平台自定义数据中存储模型 API Secret 的键名,部分模型仅需 Key 则传空字符串 |
| options | object | 否 | {model:'', temperature:0.7, maxTokens:1024} | 模型配置参数,model 指定具体模型版本,temperature 控制生成随机性(0-1),maxTokens 限制生成文本长度 |
核心注意点 :custom_data_key和custom_data_secret并非直接传入 API Key/Secret 的字符串,而是平台自定义数据中对应的键名,这是冰狐平台为了安全设计的鉴权信息存储方式,避免硬编码导致的信息泄露。
2.2 invoke 调用方法
invoke是BigModel实例的核心方法,用于向大模型发送请求并获取返回结果,返回值为字符串类型,其唯一参数prompt支持两种格式,适配不同的调用场景:
- 字符串格式 :适用于简单的单次提问场景,直接传入自然语言问题即可,如
bm.invoke("如何编写冰狐自动化脚本?"); - 数组格式 :适用于多轮对话、带系统提示词的场景,数组中每个元素为键值对对象,支持
system(系统角色,定义模型身份)、user(用户角色,提问)、assistant(模型角色,历史回答)三种角色,如[{"system":"你是自动化脚本专家"}, {"user":"冰狐JS如何实现循环操作?"}]。
三、自定义数据存储鉴权信息
在调用大模型前,必须先在冰狐平台配置自定义数据,用于存储大模型的 API Key 和 Secret,这是脚本成功调用大模型的前提,具体配置逻辑如下:
- 从对应大模型官网(如百度千帆、DeepSeek)获取有效的 API Key 和 Secret,部分模型(如 DeepSeek)仅需 API Key;
- 进入冰狐智能辅助平台的微服务 / 自定义数据 模块,创建自定义数据项:
- 若模型需要 Key 和 Secret,创建两个数据项,分别定义键名(如
bd_qianfan_key、bd_qianfan_secret),值为对应的 API Key 和 Secret; - 若模型仅需 Key,创建一个数据项存储 Key,Secret 对应的键名在脚本中传空字符串即可;
- 若模型需要 Key 和 Secret,创建两个数据项,分别定义键名(如
- 脚本中
BigModel构造函数的custom_data_key和custom_data_secret参数,填写上述自定义数据的键名,而非实际的 Key/Secret 值。
该配置方式的优势在于,自定义数据可云端统一管理,多台设备执行脚本时无需重复配置,且开发者可灵活修改鉴权信息,不影响脚本代码。
四、实战案例
以下所有 Demo 均基于冰狐自研 JS 子集开发,严格遵循平台语法规范(如变量先声明后使用、循环 / 条件判断必须带{}、不使用匿名函数等),包含基础单次调用 、多轮对话调用 、自动化 + 大模型融合调用三个核心场景,覆盖大部分实际开发需求,可直接在冰狐平台在线编辑并运行。
4.1 基础单次调用
场景 :向百度千帆模型发送简单提问,获取并打印返回结果,适用于一次性的智能问答场景。前置配置 :在冰狐自定义数据中创建bd_qianfan_key(存储百度千帆 API Key)、bd_qianfan_secret(存储百度千帆 API Secret)两个数据项。Demo 源码:
javascript
// 冰狐JS必须以main作为入口函数
function main() {
// 1. 创建百度千帆模型实例,type=1,传入自定义数据键名,使用默认模型参数
var bm = new BigModel(1, 'bd_qianfan_key', 'bd_qianfan_secret');
// 2. 定义提问内容,字符串格式prompt
var question = '冰狐智能辅助平台的自动化脚本有哪些核心功能?';
// 3. 调用invoke方法获取大模型返回结果
var aiResult = bm.invoke(question);
// 4. 打印结果,冰狐JS支持console.log标准输出
console.log('大模型回答:');
console.log(aiResult);
// 5. 返回结果,main返回值为脚本整体返回值
return aiResult;
}
代码说明 :该脚本是大模型调用的基础模板,核心步骤为创建实例→定义 prompt→调用 invoke→处理结果,冰狐 JS 会自动从自定义数据中读取鉴权信息,无需开发者手动处理。
4.2 多轮对话调用
场景 :将大模型定义为 "冰狐自动化脚本专家",并进行针对性提问,适用于需要模型具备特定身份的专业问答场景,DeepSeek 模型仅需 API Key,因此custom_data_secret传空字符串。前置配置 :在冰狐自定义数据中创建dp_seek_key数据项,存储 DeepSeek API Key。Demo 源码:
javascript
function main() {
// 1. 创建DeepSeek模型实例,type=2,Secret传空,自定义模型参数(temperature=0.8提高随机性)
var bm = new BigModel(2, 'dp_seek_key', '', {temperature: 0.8, maxTokens: 2048});
// 2. 定义多轮对话prompt,数组格式,包含system和user角色
var promptArr = [
{system: '你是冰狐智能辅助平台的自动化脚本专家,精通冰狐自研JS语法,回答简洁易懂,只讲核心要点'},
{user: '冰狐JS中数组支持负索引,具体如何使用?请举一个实际的例子'}
];
// 3. 调用invoke方法
var aiAnswer = bm.invoke(promptArr);
// 4. 打印结果
console.log('冰狐JS专家解答:');
console.log(aiAnswer);
// 5. 全局变量存储结果,供其他模块使用(冰狐JS__global修饰符声明全局变量)
var __global aiResult = aiAnswer;
return '调用成功';
}
代码说明 :通过options参数自定义了模型的temperature和maxTokens,让生成结果更灵活、长度更长;使用__global修饰符声明全局变量,可将大模型结果共享给脚本的其他模块或线程,这是冰狐 JS 的专属特性。
4.3 融合调用
场景 :冰狐自动化脚本监听x信通知,当收到新通知时,调用豆包大模型分析通知内容,并打印分析结果,实现 "自动化监听 + AI 分析" 的融合,是实际开发中最典型的场景之一。前置配置 :在冰狐自定义数据中创建doubao_key、doubao_secret数据项,存储豆包大模型鉴权信息;开启设备的无障碍权限(冰狐移动端脚本必备)。Demo 源码:
javascript
// 声明全局变量,存储x信通知内容,用于main函数和回调函数通信
var __global wxNoticeContent = '';
// 入口函数,初始化大模型实例
function main() {
console.log('开始监听x信通知,启动大模型分析服务...');
// 启动x信APP,冰狐自动化核心API
var ret = launchApp('com.tencent.mm', 'txt*:x信', {maxStep: 40, afterWait: 2000});
if (1 == ret) {
console.log('x信启动成功,已开始监听通知');
} else {
console.log('x信启动失败,脚本退出');
return '启动失败';
}
return '监听中';
}
// 系统通知回调函数,冰狐JS内置,收到通知时自动调用
function cbNotification(textList, className, packageName, rawEvent) {
// 仅处理x信的通知,packageName为x信包名com.tencent.mm
if (packageName == 'com.tencent.mm') {
console.log('收到x信通知,内容数组:', textList);
// 将通知数组转为字符串,作为大模型提问的参数
wxNoticeContent = textList.join(',');
// 调用自定义的大模型分析函数
analysisWxNotice(wxNoticeContent);
}
}
// 自定义函数:调用豆包大模型分析x信通知内容
function analysisWxNotice(noticeText) {
// 创建豆包模型实例,type=3
var bm = new BigModel(3, 'doubao_key', 'doubao_secret', {model: 'doubao-pro', temperature: 0.5});
// 构造带通知内容的prompt
var prompt = `请分析以下x信通知的核心内容,判断是好友消息、群消息还是公众号通知,提取关键信息:${noticeText}`;
// 调用大模型
var analysisResult = bm.invoke(prompt);
// 打印分析结果
console.log('x信通知AI分析结果:');
console.log(analysisResult);
// 发送消息到UI线程,更新前端显示(冰狐JS内置sendMessage API)
sendMessage('wx_notice_analysis', analysisResult);
}
// 脚本被强制停止时的回调函数,释放资源
function cbForceExit() {
console.log('脚本被强制停止,停止监听x信通知,关闭大模型服务');
wxNoticeContent = '';
}
代码说明:
- 该脚本融合了冰狐的自动化 APP 操作 (
launchApp)、系统事件回调 (cbNotification、cbForceExit)、大模型调用 、跨线程通信 (__global、sendMessage)四大核心能力; - 通过
cbNotification监听系统通知,根据packageName过滤x信通知,实现精准监听; - 自定义
analysisWxNotice函数封装大模型调用逻辑,让代码更模块化,符合冰狐 JS 的开发规范; - 使用
sendMessage将分析结果发送到 UI 线程,可实现前端页面的实时更新,提升交互体验。
五、语法规范与避坑技巧
冰狐自研的 JS 子集虽简单,但有专属的语法规范,若违反则会导致脚本运行失败,结合大模型调用的场景,整理了核心的语法规范和避坑技巧,确保脚本开发一次成功。
5.1 核心语法规范
- 变量必须先声明后使用 :所有变量必须通过
var声明,未声明的变量会直接导致脚本报错,如var bm = new BigModel(...)不可简写为bm = new BigModel(...); - 语句块必须带 {} :
if、for、while、函数体等即使只有一条语句,也必须使用大括号包裹,如if (ret == 1) {console.log('成功');}不可省略{}; - 取消 ===/!== 运算符 :冰狐 JS 仅支持
==和!=进行相等判断,无需考虑数据类型,如1 == '1'的结果为true; - 数组支持负索引 :可通过
arr[-1]获取数组最后一个元素,arr[-2]获取倒数第二个,简化数组操作; - 注释支持 // 和 / / **:单行注释用
//,多行注释用/**/,可在脚本中灵活添加注释,提升可读性。
5.2 关键避坑技巧
- 鉴权信息配置错误 :若脚本提示 "模型调用失败",首先检查自定义数据的键名是否与脚本中
custom_data_key/custom_data_secret一致,且 Key/Secret 值有效,部分模型需要绑定 IP 白名单,需确保冰狐设备的 IP 在白名单内; - 调试模式与发布模式区分:冰狐分调试模式和发布模式,调试脚本仅能在调试模式的 APP 上运行,若调试时脚本失败,先确认设备已开启冰狐调试模式(非 Android 系统调试模式);
- 避免中文符号:脚本中除字符串外,不可出现任何中文符号(如中文逗号、中文括号),即使是不可见的中文字符也会导致解析失败,若简单脚本运行失败,可删除代码重新编写;
- 模型参数合理设置 :
temperature值过高会导致生成结果杂乱,过低则会过于死板,建议根据场景设置 0.5-0.8;maxTokens需根据需求设置,避免因值过小导致结果被截断; - 多线程通信使用全局变量 :系统回调函数(如
cbNotification)与main函数不在同一线程执行,需通过__global修饰的全局变量实现数据通信,不可直接在回调函数中使用main函数的局部变量。
六、大模型与冰狐自动化脚本的融合场景拓展
冰狐平台的大模型 API 并非单独存在,而是与自动化脚本的核心能力深度融合,除了上述的 "通知监听 + AI 分析",还有诸多典型的落地场景,开发者可基于基础 API 灵活拓展:
- APP 操作智能决策 :通过大模型分析 APP 页面的文本内容(冰狐
textList获取),判断下一步执行的自动化操作(如点击、滚动、输入),让脚本具备动态决策能力; - 自然语言驱动自动化:通过大模型解析用户的自然语言指令(如 "打开x信并给张三发送消息"),转换为冰狐的自动化 API 调用,实现 "说一句话就执行脚本";
- 自动化脚本异常处理:当脚本执行失败时,将错误信息传入大模型,由大模型分析失败原因并给出解决方案,甚至自动生成修复后的代码;
- 数据智能分析与处理:通过冰狐自动化脚本爬取 APP 中的数据(如商品价格、资讯内容),再由大模型进行数据清洗、分析、总结,生成可视化的报告;
- 智能客服自动化:结合冰狐的窗口监听和大模型的自然语言生成,实现 APP 内的智能客服自动回复,无需人工干预。
七、总结
开发者只需掌握BigModel构造函数和invoke方法的核心用法,遵循 JS 的语法规范,即可快速实现 "AI + 自动化" 的融合,让脚本从 "机械执行" 升级为 "智能处理"。在实际开发中,建议先从基础的单次调用开始,熟悉 API 的使用和前置配置,再逐步尝试多轮对话和自动化融合场景,同时注意避坑技巧,确保脚本的稳定性和可用性。