本规则文档面向 Domo App Platform 的 AI 能力开发,采用 toolkit-first 的方式,即优先使用 @domoinc/toolkit 中的 AIClient,而非旧的 endpoint-first 方案(旧指引已归档至 archive/legacy-rules/domo-ai-endpoints.md)。
一、用途 用于在 Domo App Platform 中调用 AI 能力,包括文本生成、自然语言转 SQL(text-to-sql)以及自然语言转 Beast Mode(text-to-beastmode),并规范响应解析方式。
二、主要能力
- 文本生成:通过 AIClient.generate_text 调用,可传入提示文本、模板(如 'You are a business analyst. ${input}')、选项(如 tone: 'professional')以及参数(如 temperature: 0.7)。
- text-to-sql:通过 AIClient.text_to_sql 调用,传入自然语言问题与数据源描述数组(包含 dataSourceName、description、columns 等字段)。
- text-to-beastmode:通过 AIClient.text_to_beastmode 调用,传入自然语言描述与数据源信息(dataSourceName、columns)。
三、使用方式 安装依赖:yarn add @domoinc/toolkit 导入:import { AIClient } from '@domoinc/toolkit'; 调用示例(文本生成): const response = await AIClient.generate_text( 'Explain this sales trend in simple terms', { template: 'You are a business analyst. ${input}' }, { tone: 'professional' }, undefined, { temperature: 0.7 } ); 响应解析规则:AIClient 的响应结构并不总是与其他 toolkit 客户端一致,通常使用 response.data,也可能同时包含 output 与 choices。应始终防御式解析: const body = response.data || response.body || response; const text = body.output || body.choices?.[0]?.output;
四、适用场景 适用于在 Domo App Platform 中构建需要 AI 文本生成、自然语言查询数据(text-to-sql)或生成 Beast Mode 表达式的应用。
五、限制与注意事项
- 方法命名使用 snake_case(如 generate_text、text_to_sql)。
- 响应需从 data/body 回退解析,输出优先取 output,回退到 choices[0].output。
- 需在 UI 中处理错误与加载状态。
- 相关规则参考:.cursor/rules/04-toolkit.mdc(Toolkit AI 方法与注意事项)、.cursor/rules/09-gotchas.mdc(命名与响应陷阱)。
- 文档未提供具体收费、价格、平台支持范围或效果保证等信息。