通过AppFlow定时同步飞书文档到百炼知识库

更新时间:
复制为 MD 格式

配置阿里云AppFlow,可实现飞书文档到百炼知识库的自动、定时同步,在构建RAG检索时节省大量人工维护知识库成本。

方案架构

image

  1. 定时触发:AppFlow内置的定时触发器按预设规则(例如,每天早上6点)启动同步流程。

  2. 数据读取:AppFlow使用预配置的飞书应用凭证(App IDApp Secret)调用飞书开放API,以只读方式访问并导出指定的飞书知识库、目录或单个文档内容。

  3. 数据写入:AppFlow通过一个具备特定权限的RAM角色,获得向百炼服务写入数据的授权。

  4. 数据纳管与索引:数据被写入百炼指定的“应用数据”目录后,关联的百炼知识库会自动检测到数据更新,并触发知识索引的重建,使新知识可被检索。

利用AppFlow作为低代码集成平台,可免去开发和维护数据同步脚本。通过飞书机器人和阿里云RAM角色,实现了数据访问的权限隔离与最小化授权。

实施步骤

步骤一:准备目标百炼知识库

配置同步流程前,需创建用于存储文档的目标知识库,并获取其关键身份信息。

  1. 登录百炼控制台,在左侧导航栏选择知识库管理,然后点击创建知识库。

  2. 在创建页面,完成以下关键配置:

    • 数据来源:选择应用数据目录。

    • 类目:选择或新建一个应用数据目录,并记录其 ID。

    • 开启自动同步知识索引:开启此选项。AppFlow 推送的数据将由百炼自动处理和索引。

  3. 获取两个关键 ID:

    • 百炼业务空间ID:进入目标业务空间后,在浏览器地址栏中找到 spaceId=xxx 参数,xxx 即为业务空间 ID。

    • 应用数据目录ID:在知识库管理 > 应用数据页面,找到上一步关联的目录,点击其名称进入详情页,获取目录 ID。image

步骤二:配置访问百炼的 RAM 权限

为使 AppFlow 有权限向百炼写入数据,需创建一个 RAM 角色并授予其最小化操作权限。

  1. 登录 RAM 控制台,创建 RAM 角色。

    1. 选择信任主体类型为云服务。

    2. 信任主体名称选择计算巢服务/AppFlow。

  2. 为 RAM 角色创建并授予权限策略。

    1. 在 RAM 控制台的权限策略页面,点击创建权限策略。

    2. 在脚本编辑页签中,粘贴以下 JSON 内容。

      {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "sfm:ApplyFileUploadLease",
              "sfm:AddFile",
              "sfm:DescribeFile",
              "sfm:DeleteFile",
              "sfm:SubmitIndexAddDocumentsJob",
              "sfm:GetIndexJobStatus",
              "sfm:DeleteIndex",
              "sfm:DeleteIndexDocument"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
    3. 创建策略后,返回 RAM 角色列表,找到已创建的角色,点击新增授权,将创建的自定义策略授权给该角色。

  3. 在百炼控制台为 RAM 角色授权。

    1. 返回百炼控制台,进入目标业务空间,在左侧导航栏选择权限管理。

    2. 点击新增用户,选择RAM角色,然后从列表中选择并添加上一步创建的 RAM 角色。此操作用于授予该 RAM 角色操作百炼业务空间内资源的权限。

    3. 在列表中点击对应角色的权限管理,单击编辑,至少勾选知识库-操作应用数据-操作两个权限,单击确认。

步骤三:创建并配置飞书应用

在飞书创建机器人应用并授予只读权限,以供AppFlow访问飞书数据。

  1. 登录飞书开发者后台,创建一个新的自建应用。

  2. 在应用能力页面,添加机器人能力。此操作使应用可以被添加到群聊中,便于后续进行知识库授权。image

  3. 在应用身份权限页面,为保障数据安全,请遵循最小权限原则,开通以下权限。

    权限名称

    权限标识

    说明

    获取、搜索知识库信息

    wiki:wiki:readonly

    wiki:node:retrievewiki:wiki三选一

    必需。允许访问知识库。

    导出云文档

    drive:export:readonlydocs:document:export

    必需。允许导出文档内容。

    读取多维表格

    bitable:app:readonly

    可选。如需同步多维表格内容,请添加此项。

  4. 配置知识库的访问权限。请按以下顺序操作,通过群聊为机器人授权:

    1. (推荐设置)如果需要同步整个知识库,需要在知识库设置——成员设置——管理员——添加管理员,搜索并添加一个包含有这个机器人的群聊(一定要先把机器人添加到群,再到知识库添加群)

      image.png

      image.png

    2. 如果同步指定的某些文档,打开文档,参考下图操作,搜索上面的应用添加。如果已经添加了管理员,可以不用再添加文档应用。

      image.png

  5. 在应用发布 > 版本管理与发布页面,点击创建版本。填写应用版本号和更新说明,确认权限变更无误后,点击保存,然后申请线上发布。应用配置的任何变更都需发布新版本并经企业管理员审核后才能生效。

  6. 发布成功后,在应用的凭证与基础信息页面,获取并记录App IDApp Secret,供后续步骤使用。

步骤二:创建AppFlow自动同步流程

  1. 访问AppFlow模板中心,搜索并找到定时同步飞书文档到百炼应用数据模板,点击使用。

  2. 在触发事件配置页,根据需求设置执行频率,例如每天早上6点执行。点击下一步。image

  3. 配置飞书应用连接器:

    • 在连接凭证处,点击添加新凭证。在弹出的窗口中,填入上一步获取的飞书应用App IDApp Secret。

    • 在入参配置中,选择要同步的内容类型(知识库、目录或指定文档),并填写对应的Token。

      • 知识库Token:打开飞书知识库首页,其URLwiki/space/之后的一串字符即为知识库Token。image

      • image

        • 示例URL: https://example.feishu.cn/wiki/space/a1b2c3d4e5f6g7h8

        • 应填写: a1b2c3d4e5f6g7h8

      • 文档或目录Token:打开目标文档或目录,其URLwiki/之后,&、?之前的部分即为Token。image

        • 示例URL: https://example.feishu.cn/wiki/faketoken?from=home

        • 应填写: faketoken

  4. 配置百炼知识库连接器:

    • 点击百炼知识库节点,并点击下一步,在连接凭证处点击下拉菜单添加新凭证。

    • 认证方式选择 RAM角色,然后从下拉列表中选择在步骤二中创建的 RAM 角色。

    • 在入参配置中,填写步骤一获取的百炼业务空间ID和应用数据目录ID。

  5. 完成所有配置后,点击保存并发布。

步骤三:在百炼中创建知识库并验证

  1. 进入百炼控制台,创建一个新的知识库。

  2. 数据来源选择类目。

  3. 开启自动同步知识索引

  4. 选择刚才配置自动同步的类目即可。image

步骤四:结果验证

  1. 回到AppFlow的流程管理页面,找到已创建的流程,手动触发一次同步。

  2. 在执行日志中查看本次运行状态是否成功。

  3. 前往百炼控制台的数据来源页面,检查对应目录下是否已出现来自飞书的文档数据。

  4. 进入知识库详情,确认文档是否已被成功索引。

费用说明

大模型百炼根据知识库规格和向量、排序模型调用费用计费。详情参考知识库计费说明