Skip to Content

数据循环存储

场景与目标

  • 目标:搭建一个“行为流”,实现调用 AI Agent 生成行程并将其结构化数据自动拆解存入数据库,最后在前端多层嵌套列表展示。
  • 适用场景:AI 助手、自动化报告生成、复杂任务拆解与入库。
  • 核心逻辑:前端提交需求 -> 触发异步行为流 -> AI 生成 JSON -> 嵌套循环解析 -> 数据库多表关联存储 -> 前端动态渲染。

前置要求

本教程为AI旅行规划系列的第 2 部分。在开始本节配置前,请确保你已完成 [第一篇:API与Agent配置],并成功创建了数据表、高德 API 以及 AI Agent。

实现步骤

数据存储

详见总览数据存储部分。


逻辑与状态配置

核心行为流搭建:调用 AI 与存储

  1. 新建行为流:命名为“计划生成与存储”。

  2. 配置输入:添加一个长整数类型的参数 trip_id

  3. 创建触发器:选择“数据库内容变化”,监听 trip 表的“数据增加时”,并将新增数据的 id 绑定到行为流输入的 trip_id

  4. 设置执行方式:将执行方式切换为 异步

  5. 查询数据:添加 获取数据 节点,根据 trip_id 查询该旅行计划的详细需求。

  6. 开始会话:添加 开始会话 节点,选择预先配置好的 AI Agent,并将查询到的出发地、目的地、预算等字段一一绑定到 Agent 的输入项。

拆解并循环存储结构化数据

由于 AI 返回的是包含多天、每天多个景点的复杂结构,我们需要使用嵌套循环进行存储。

  1. 外层循环:添加 列表循环 节点,遍历 AI 输出的 daily_itineraries 列表。

  2. 添加每日计划:在循环内部添加 添加数据 节点,将当前项的 day_numbersummary 存入 daily_itinerary 表,并关联 trip_id

  3. 内层循环:在每日计划添加成功后,嵌套第二个 列表循环,遍历当前天的 itinerary_details

  4. 添加行程明细:添加 添加数据 节点,存储地点、交通、时间等。

    • 地理位置处理:使用内置函数 GENERATE_GEO_POINT,将 AI 返回的经度和纬度转换为系统可识别的地理位置格式。

  5. 更新主表状态:当所有循环执行完毕,添加 更新数据 (Update Data) 节点。将 AI 生成的标题和总结存入 trip 表,并将 is_completed 设为 True

UI 搭建与交互

绑定输入表单

  1. 按钮行为:选中“开始生成”按钮,添加“点击时”触发的 添加数据 行为,目标为 trip 表。

  2. 参数映射:将页面上的输入框(出发地、目的地、人数等)和日期选择器分别绑定到数据库字段。

绑定列表展示数据

展示区采用三层嵌套列表结构:

  1. 第一层(计划列表):数据源设为 trip 表。

    • 过滤器account_id 等于当前用户,且 is_completed 为真。

  2. 第二层(每日计划):数据源设为 daily_itinerary 表。

    • 过滤器trip_id 等于上层列表当前项的 id

  3. 第三层(详情列表):数据源设为 itinerary_detail 表。

    • 过滤器daily_itinerary_id 等于上层列表当前项的 id

  4. 坐标显示:对于经纬度文本,使用公式 GET_VALUE_FROM_GEO_POINT 从地理位置字段中提取具体数值。

验证

步骤 1:提交需求

在预览页面模拟登录后,填写一份旅行需求,点击“开始生成”。 预期结果:页面显示提示,数据库 trip 表新增一条记录。

步骤 2:后台处理监测

切换至数据库管理后台,观察数据变化。

预期结果daily_itinerariesitinerary_details 表开始自动填充数据,关联关系正确。

步骤 3:前端结果展示

等待片刻后查看前端展示区。

预期结果:页面自动渲染出结构清晰的定制化旅游攻略。

⚠️

如果列表没有正确显示数据,请检查过滤器配置是否正确,特别是 is_completed 是否已在行为流末尾被正确更新为 True

Last updated on