飞书多维表格利用 Amazon Bedrock AI 能力赋能业务

背景

飞书多维表格是一款功能强大的在线数据管理与协作工具。它打破传统表格局限,将电子表格与数据库特性融合,支持看板、甘特图、表单等多种视图自由切换,可根据项目进度、任务管理等不同场景灵活展示数据。其丰富的字段类型能精准适配各类数据录入需求,且支持多人实时在线协作,团队成员可同步编辑、快速沟通。通过自动化流程与 "AI 捷径字段" 等功能,可轻松实现数据的自动计算、任务提醒、智能分析等操作,无论是项目管理、客户关系维护,还是日常工作流程优化,都能高效满足个性化业务需求。

📢限时插播:无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。

⏩快快点击进入《多模一站通 ------ Amazon Bedrock 上的基础模型初体验》实验

构建无限, 探索启程!

AI 捷径字段是一个飞书的开放平台,使用者可以根据自身业务需求开发自定义插件,也可以将插件推送到 "捷径字段中心" 对外提供服务。目前,在 "捷径字段中心" 里已经有丰富的第三方应用插件,可以满足许多通用业务场景。"AI 捷径字段" 提供了详细的开发文档,让企业可以开发有定制化逻辑的内部插件,例如:在插件的实现逻辑中调用企业内部服务 API、与企业的 AI 能力进行集成。

本文将利用 AI 捷径字段的开放能力,实现飞书多维表格与 Amazon Bedrock 的集成,并演示 AI 赋能业务的典型场景。

方案

方案介绍

基本概念

飞书 AI 捷径字段:是飞书多维表格中的一项功能,它允许用户通过简单的配置,借助 AI 自动生成所需的字段,从而大大提高工作效率,用户无需了解复杂的底层逻辑和细节,只需新增一列,进行简单配置,就能借助 AI 完成高阶工作。

飞书低代码平台 FaaS(Function as a Service,函数即服务) :开发者能使用编程语言编写函数代码,专注于实现特定业务逻辑。完成编写后,可便捷地将函数部署到飞书低代码平台环境中,无需操心服务器配置、安装和维护等底层工作。

Amazon Bedrock:是一项完全托管的服务,通过单个 API 提供来自领先人工智能公司的高性能基础模型,并提供通过安全性、隐私性和负责任的人工智能构建生成式人工智能应用程序所需的一系列广泛功能。使用 Amazon Bedrock,您可以轻松试验和评估适合您的使用案例的热门基础模型,通过微调和检索增强生成(RAG)等技术利用您的数据对其进行私人定制,并构建使用您的企业系统和数据来源执行任务的代理。

数据交互流程

数据流程分为三个阶段:1)多维表格前端,2)捷径服务端,3)Amazon Bedrock 服务器。业务逻辑和与 Amazon Bedrock 交互的代码封装在 FaaS 中,部署在捷径服务端。前端交互是多维表格文档,要处理的数据通过固定格式的表单与捷径服务端进行交互,然后再将接收到的用户数据和参数通过 Bedrock API 进行处理。需要注意的是在插件中访问的互联网资源需要申请域名白名单,向不在白名单内的域名发送的请求会被拒绝。

开发流程

运行环境:Nodejs 版本:14.16.0

克隆项目:

bash 复制代码
git clone https://github.com/Lark-Base-Team/field-demo.git

项目目录结构:

go 复制代码
├── config.json // 本地调试授权的配置文件
├── package-lock.json
├── package.json
├── src
│   └── index.ts // 项目入口文件
└── tsconfig.json

启动本地服务,可以在模拟环境中进行调试:

bash 复制代码
# 安装依赖
npm install
# 启动本地服务
npm run start

集成 Bedrock 代码示例 index.ts:

css 复制代码
// 定义捷径的入参
  formItems: [
    {
        key: 'prompt',
        label: t('prompt'),
        component: FieldComponent.Input,
        props: {
            placeholder: t('prompt_placeholder')
        },
        validator: {
            required: true,
        }
    },
    {
        key: 'bedrockEndpoint',
        label: t('endpoint'),
        component: FieldComponent.Input,
        props: {
            placeholder: t('endpoint_placeholder')
        },
        validator: {
            required: true,
        }
    },
    {
        key: 'accessKey',
        label: t('accessKey'),
        component: FieldComponent.Input,
        props: {
            placeholder: t('accessKey_placeholder'),
        },
        validator: {
            required: true,
        }
    },
    {
        key: 'secretKey',
        label: t('secretKey'),
        component: FieldComponent.Input,
        props: {
            placeholder: t('secretKey_placeholder'),
        },
        validator: {
            required: true,
        }
    },
    {
        key: 'modelType',
        label: t('modelType'),
        component: FieldComponent.SingleSelect,
        props: {
            placeholder: t('modelType_placeholder'),
            options: [
                { label: 'Amazon Nova Pro', value: 'amazon.nova-pro-v1:0' },
                { label: 'Amazon Nova Lite', value: 'amazon.nova-lite-v1:0' },
                { label: 'Amazon Nova Micro', value: 'amazon.nova-micro-v1:0' },
                { label: 'DeepSeek R1', value: 'deepseek.r1-v1:0' }
            ]
        },
        validator: {
            required: true,
        }
    }
  ],
  // 定义捷径的返回结果类型
  resultType: {
    type: FieldType.Text,
  },
  // formItemParams 为运行时传入的字段参数,对应字段配置里的 formItems (如引用的依赖字段)
  execute: async (formItemParams , context) => {
    const { prompt, modelType, bedrockEndpoint, accessKey, secretKey } = formItemParams;
    /** 为方便查看日志,使用此方法替代console.log */
    function debugLog(arg: any) {
      console.log(JSON.stringify({
        formItemParams,
        context,
        arg
      }))
    }

    // 创建 Bedrock Runtime 客户端
    const client = new BedrockRuntimeClient({ 
      endpoint: bedrockEndpoint, // 设置你的 Amazon Bedrock endpoint
      credentials: {
          accessKeyId: accessKey,
          secretAccessKey:  secretKey,
      }
    });

    const message = {
      content: [{ text: prompt }],
      role: ConversationRole.USER,
    };

    const request = {
      modelId: modelType.value,
      messages: [message],
      inferenceConfig: {
        maxTokens: 1000, // The maximum response length
        temperature: 0.7, // Using temperature for randomness control
      },
    };

    try {
        const response = await client.send(new ConverseCommand(request));
        console.log(response.output.message.content[0].text);
        const generatedText = response.output.message.content[0].text;

        return {
            code: FieldCode.Success,
            data: generatedText
        };
    } catch (error) {
        console.error('调用 Amazon Bedrock API 时出错:', error);
        return {
            code: FieldCode.Error,
            errorMessage: '调用 Amazon Bedrock API 时出错'
        };
    }
  },

发布流程

在项目目录下执行 npm run pack,然后将 output/output.zip 文件上传即可。然后提交多维表格捷径插件表单,可发布给所有用户,或公司内使用。具体开发和发布流程可以参考"字段捷径插件开发指南"。

典型场景

使用 Amazon Nova Pro 识别多维表格中的图片,帮助业务人员快速完成业务分析,加速决策流程

本案例展示多维表格与自定义字段捷径的交互方式,利用 Amazon Nova Pro 在图像内容识别场景中的优势,帮助业务人员无门槛使用 AI 应用工具并提高工作效率。

创建一个全新的飞书多维表格文档,将我们之前准备好的原始图片以附件的形式上传到多维表格内指定列(原始图片列)中。再新增一列,字段类型选择 "字段捷径中心",然后在 "字段捷径中心" 搜索并使用我们自己之前发布的插件,'待处理字段'使用我们放置图片的列,'处理命令'就是大模型 Prompt。

配置完成后,多维表格自动调用指定的字段捷径,并将 "原始图片" 列的数据作为参数传递给插件。我们使用的是异步调用,插件会将图片发送到后端的 Amazon Bedrock 服务中,调用 Amazon Nova Pro,根据 Prompt 进行图片分析,并将结果输出到 "图像识别" 列中。多维表格可以支持自动更新,不论你新增图片,还是在原有行中更新图片,多维表格都会调用插件更新输出内容。

结论

飞书多维表格已经内置了很多基础工具,可以满足用户常见的业务需求。但面对用户的个性化场景,就需要利用 "捷径字段" 这个开放平台,开发符合自己业务需求的工具。随着 AI 能力的越来越成熟,很多业务场景都可以借助 AI 提高工作效率。本案例就是将飞书多维表格与 Amazon Bedrock 进行集成,让 AI 赋能业务。用户不仅可以开发企业内部自己使用的工具,也可以将工具发布到 "字段捷径中心" 对外提供服务,拓展企业的 ToB 业务渠道。

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

本篇作者

本期最新实验《多模一站通 ------ Amazon Bedrock 上的基础模型初体验

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

⏩️[点击进入实验] 即刻开启 AI 开发之旅

构建无限, 探索启程!

相关推荐
struggle20251 小时前
DeepSpeed 是一个深度学习优化库,使分布式训练和推理变得简单、高效和有效
人工智能·深度学习
猎嘤一号1 小时前
使用 PyTorch 和 TensorBoard 实时可视化模型训练
人工智能·pytorch·python
从零开始学习人工智能3 小时前
多模型协同:基于 SAM 分割 + YOLO 检测 + ResNet 分类的工业开关状态实时监控方案
人工智能·yolo·分类
s153353 小时前
12-OPENCV ROCKX项目 人脸拍照
人工智能·opencv·计算机视觉
alasnot3 小时前
BERT情感分类
人工智能·深度学习·bert
只有左边一个小酒窝3 小时前
(九)现代循环神经网络(RNN):从注意力增强到神经架构搜索的深度学习演进
人工智能·rnn·深度学习
UQI-LIUWJ5 小时前
论文略读:REEF: Representation Encoding Fingerprints for Large Language Models
人工智能·语言模型·自然语言处理
强盛小灵通专卖员5 小时前
基于YOLOv12的电力高空作业安全检测:为电力作业“保驾护航”,告别安全隐患!
人工智能·深度学习·安全·yolo·核心期刊·计算机期刊
万米商云5 小时前
AI推荐系统演进史:从协同过滤到图神经网络与强化学习的融合
人工智能·深度学习·神经网络