精选 Alan AI 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。 本备忘单涵盖所有核心脚本概念、客户端 API 方法、句柄与工具,助您使用 Alan AI 构建多模态对话体验。
pattern — 触发语音/文本命令或播放响应的模式短语value — 指定的数值/文本值params — 传递的参数action — 执行的操作output — 数据输出结果[...] — 可选的数据或参数定义语音/文本命令以播放响应
intent('pattern'[, 'patternN'], reply('pattern'))
定义语音/文本命令以播放响应或执行操作
intent('pattern'[, 'patternN'], p => { action })
定义替代模式 (Alternatives)
intent('phrase1|phrase2')
定义可选词汇与短语
intent('pattern (可选 phrase|)')
播放响应(多条模式时随机选取一条响应)
reply('pattern'[, 'patternN'])
播放响应
p.play('pattern')
为助手回复定义语音设置:口音 (en, fr, de, it, ru, es),性别 (male/female),语音类型,
语调 pitch,语速 rate
p.play([voice(code, gender, type, pitch, rate), ]'pattern')
定义播放选项:强制执行:true(按钮未激活时依然执行),activate:true(提前激活按钮),
deactivate:true(事后停用按钮)
p.play('pattern'[, opts(options)])
向应用发送命令
p.play({command:data})
定义输入中预期的静态值列表
$(SLOTNAME value1|value2) => p.SLOTNAME.value
提供标签分类或识别槽位值
$(SLOTNAME value1~label1|value2~label2) => p.SLOTNAME.label
启用模糊匹配以捕获相似变体
$(SLOTNAME~ value1|value2) => p.SLOTNAME.value
设置槽位为可选
$(SLOTNAME value1|value2|)
捕获多个槽位值
intent('$(SLOTNAME value1|value2) and $(SLOTNAME value1|value2 )') => p.SLOTNAME_ (array), p.SLOTNAME_[0].value, p.SLOTNAME_[1].value
捕获日期数值
$(DATE) => p.DATE.value, p.DATE.moment, p.DATE.luxon
捕获时间数值
$(TIME) => p.TIME.value, p.TIME.moment
捕获基数词/数字
$(NUMBER) => p.NUMBER.value, p.NUMBER.number
捕获序数词
$(ORDINAL) => p.ORDINAL.value, p.ORDINAL.number
捕获地理位置
$(LOC) => p.LOC.value
捕获人名
$(NAME) => p.NAME.value
在项目全局作用域定义动态槽位
project.name = {en: "value1|value2|value3"}
$(SLOTNAME p:name) => p.SLOTNAME.value
在对话会话层级定义动态槽位
p.userData.name = {en: "value1|value2|value3"}
$(SLOTNAME u:name) => p.SLOTNAME.value
配合视觉状态获取动态槽位数据
let name = ["value1|value2|value3"]
p.visual.data = {en: name};
$(SLOTNAME v:name) => p.SLOTNAME.value
简写形式定义动态槽位
project.name = {en: "value1|value2|value3"}
$(p:name) => p.SLOTNAME.value
为动态槽位定义标签:参阅 用户自定义槽位。
为动态槽位启用模糊匹配:参阅 用户自定义槽位。
将动态槽位设为可选:参阅 用户自定义槽位。
捕获多个槽位值:参阅 用户自定义槽位。
捕获数字与/或字母组合
const reg = "([A-Za-z]{1}\\s?){6}"
$(SLOTNAME* ${reg}) => p.SLOTNAME.value
捕获任何用户输入文本
$(SLOTNAME* .+) => p.SLOTNAME.value
定义上下文
let contextName = context(() => { action })
激活上下文
intent('pattern', p => {..., p.then(contextName)}
向上下文传递数据
p.then(contextName, state: {data:yourData}) => p.state.data
解析完成上下文
p.resolve([data:yourData])
重置上下文
p.resetContext()
定义随时匹配且无需切换当前上下文的意图
intent(noctx, 'pattern', ...) or noContext(() => {intent(...)})
播放预期输入的提示语
fallback('pattern1'[, 'patternN'])
给上下文命名标题
title('contextName')
存储从客户端应用传递的静态设备与用户特定数据
authData.data => p.authData.data
存储项目作用域内全局可用的状态数据
project.info = {data:yourData} => project.info.data
存储意图匹配得分
p.score
存储上下文之间传递的数据
p.state.data
存储通过 setVisualState() 从客户端应用传递的视觉上下文数据
p.visual.data
存储对话会话期间可访问的用户特定状态数据
p.userData.data
定义当脚本保存且对话模型构建完成时执行的操作
onCreateProject(() => { action })
定义当对话会话启动时执行的操作
onCreateUser((p) => { action })
定义当对话会话结束时执行的操作
onCleanupUser((p) => { action })
定义当设置视觉状态时执行的操作
onVisualState((p, s) => { action })
定义当客户端应用触发用户事件时执行的操作:buttonReady、buttonClicked、
micPermissionPrompt、micAllowed、firstActivate、showPopup、popupCloseClicked、recognized
onUserEvent((p, e) => { action })
定义当激活上下文时执行的操作
onEnter((p) => { action })
定义要建立索引的资源 URL
corpus({url: url, depth: depthLevel})
定义助手在对话中使用的文本语料库
corpus('text')
发起 API 请求
axios, request
处理时间与时区
moment-timezone, luxon
处理数组、数字、对象与字符串等
lodash
提供提示词列表以帮助识别特定术语
recognitionHints('hint'[, 'hintN'])
向 Alan Studio 日志中写入信息日志
console.log(data)
向 Alan Studio 日志中写入错误日志
console.error(data)
从客户端应用向对话脚本发送关于视觉状态的信息
setVisualState(visualStateData:object)
无需语音/文本命令即可发送数据或执行操作
projectAPI.method = function(p, param, callback) {
p.userData.data = param.data;
callback();
};
callProjectApi(method:string, data:object, callback:function)
在客户端应用中播放文本消息
playText(text:string)
作为用户输入向 Alan 发送文本消息
sendText(text:string)
在客户端应用中执行命令
playCommand(command:object)
以编程方式激活 Alan 按钮
activate()
以编程方式停用 Alan 按钮
deactivate()
检查 Alan 按钮的状态
isActive()
从父元素/页面中移除 Alan 按钮(Web、Ionic 支持)
remove()
检查唤醒词状态(iOS、Android 支持)
getWakewordEnabled()
设置唤醒词状态(iOS、Android 支持)
setWakewordEnabled(enabled:boolean)
// 以下以 Web 平台示例为例
处理从对话脚本发送至客户端应用的命令
onCommand: function (commandData) { action }
处理 Alan 按钮状态变更
onButtonState: function (e) { action }
处理与 Alan 云端虚拟助手项目的连接状态
onConnectionStatus: function (e) { action }
处理从 Alan 接收到的事件
onEvent: function (e) { action }