为什么选择这个方案?

目前公司的售后数据主要维护在 WPS 表格中,已经形成了现有的办公习惯,因此不希望为了接入 AI 再迁移一套文档系统。

最开始主要考虑企业微信机器人提供的几种方式:

方案存在的问题
本地文档WPS 表格更新后,需要重新上传文档,维护成本较高
智能文档/知识集存在约 15 分钟的数据同步延迟,不适合查询实时变化的售后工单
机器人工作流 + AirScript实时读取 WPS 当前数据,再交给 AI 分析

因此最终采用:

企业微信机器人工作流 + AirScript + WPS 表格

利用企业微信机器人作为交互入口,工作流负责处理用户问题和调用接口,AirScript 负责读取 WPS 数据,大模型负责分析并生成最终回答。

整体实现思路

整个流程如下:

员工在企业微信群提问
        ↓
企业微信机器人
        ↓
机器人工作流
        ↓
HTTP 请求
        ↓
WPS 的 AirScript 脚本
        ↓
读取当前表格数据
        ↓
大模型分析
        ↓
机器人返回答案

例如员工直接在群里:

@售后机器人 S001处理完了吗?

机器人收到问题后,工作流调用 AirScript 读取 WPS 表格,再根据查询结果生成回答。

工作流配置

核心是在企业微信机器人的工作流中配置 HTTP 请求节点

基本流程:

用户问题
   ↓
HTTP请求
   ↓
调用WPS相关接口
   ↓
执行AirScript
   ↓
获取WPS数据
   ↓
大模型
   ↓
生成回答

HTTP 请求需要根据 WPS 开放平台的接口要求配置:

  • Method: POST
  • URL: 文档AirScript的webhook脚本URL
  • Authorization: WPS AirScript Token
  • Content-Type: application/json
  • Body: 根据 AirScript 执行接口要求填写

WPS 的 AppID、AppSecret 等信息在 WPS 开放平台创建应用后获取。

实际使用时,接口地址、请求参数及 AirScript Token 获取方式以当前 WPS 开放平台接口文档为准。

企微工作流如下(也可应用于扣子等其他工作流):

 

AirScript 脚本

WPS 端的脚本主要负责:

读取表格数据,并将数据返回给工作流。

// 获取当前激活的工作表
const sheet = Application.ActiveSheet;
const usedRange = sheet.UsedRange;
const startRow = usedRange.Row;
const startCol = usedRange.Column;
const totalRows = usedRange.Rows.Count;
const totalCols = usedRange.Columns.Count;
const endRow = startRow + totalRows;
const endCol = startCol + totalCols;

// 创建一个数组来存放所有数据
let data = [];
for (let i = startRow; i < endRow; i++) {
    let row = [];
    for (let j = startCol; j < endCol; j++) {
        const cell = sheet.Cells(i, j);
        row.push(cell.Text); // 将单元格文本添加到行数组
    }
    data.push(row); // 将行数组添加到数据数组
}

// 关键:将数据作为返回值,而不是打印
return {
    "data": data,
    "totalRows": totalRows,
    "totalCols": totalCols
};

脚本本身不需要负责发送企微消息,也不需要调用大模型。

它只完成:

WPS 表格 → JSON 数据

然后由企业微信机器人工作流继续处理。

实操步骤

 其中,AirScript 脚本编辑在wps在线文档中进行如下操作

效率→高级开发→AirScript脚本编辑

webhook URL获取如下:

AirScript Token获取如下:

大模型分析

获取 WPS 数据后,将用户的问题和相关表格数据传给大模型。

例如:

用户问题:
S001处理完了吗?

WPS查询结果:
单号:S001
处理结果:已补发
是否完结:是

大模型根据实际数据生成:

S001 已处理完成,目前处理结果为“已补发”。

为了避免 AI 自行编造数据,可以在提示词中限制:

只能根据本次工作流获取的WPS数据回答问题。

如果没有找到相关数据,直接说明“未找到相关信息”。

禁止编造、猜测或补充表格中不存在的信息。

这样可以让大模型主要负责理解和组织语言,而不是让它自己“猜测”表格内容。

最终实现效果

目前已经实现员工直接通过企业微信群查询 WPS 中的售后数据。

例如:

员工:
@售后机器人 S001处理完了吗?

机器人:
S001 已处理完成,
当前处理结果为“已补发”。

整个过程无需员工打开 WPS,也不需要将 Excel 重新上传到企业微信知识库。

最终形成:

       WPS表格
          ↓
      AirScript
          ↓
      HTTP请求
          ↓
   企业微信机器人工作流
          ↓
       大模型
          ↓
      群聊回答

总结

这套方案主要解决了两个问题:

一是避免本地文档需要反复上传;

二是避免依赖企业微信智能文档的同步延迟。

在保留公司现有 WPS 文档体系的基础上,通过企业微信机器人工作流增加了一层 AI 查询能力。

WPS 负责存数据,AirScript 负责读取,机器人工作流负责处理,AI 负责回答。

题外话

目前该方案也可基于扣子等相关工作流实现(但企微能免费使用),且只能采用于企微内部群。

企业微信的官方API不支持在外部群(含外部联系人的群)添加和使用群机器人,只能通过人工或RPA自动化软件等途径外部群接入bot,存在账号管控风险。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐