Skip to Content
最佳实践AI预测文本输入

AI输入内容预补全

项目访问链接

场景与目标

  • 核心目标:通过根据初始输入提供文本预测,从而增强用户体验。
  • 方案选择
    • 方法一:多项建议列表
      • 概述:提供多个由 AI 生成的独立选项供用户选择,并将所有建议保存到数据库中。
      • 适用场景:搜索栏联想、AI 灵感激发工具或邮件主题生成。
    • 方法二:实时流式补全
      • 概述:提供单个实时的、逐字生成的预测内容,作为行内建议无缝完成当前句子。
      • 适用场景:快速聊天应用、文本编辑器或快速表单填写。
  • 核心逻辑
    • 方法一:输入触发 -> 异步行为流 -> AI Agent(结构化数组) -> 数据库表 -> UI 列表(订阅模式)。
    • 方法二:输入触发 -> AI Agent(流式输出) -> 页面变量 -> UI 文本组件。

方法一:多项建议列表

此方法生成一组存储在数据库中的建议列表,允许用户从几个不同的补全方案中进行选择。

数据存储

为了处理 AI 生成的异步特性,我们将建议存储在一张表中,以便前端可以“订阅”它们的变化。

  • 数据模型:创建名为 建议记录 的数据表。
字段名称类型说明
用户输入文本用户输入的原始文本片段
补充文本文本AI 生成的单条补全字符串
会话id长整数该次 AI 生成任务的唯一会话 ID

AI Agent配置

Agent必须返回结构化数据,以便后端逻辑处理多个选项。

  1. AI Agent:创建Agent Agent_内容补全
  2. 输入参数:添加 用户输入 (文本)。
  3. 提示词模板
    • 角色:你是一个文本补全助手。
    • 任务详情:基于 \{输入/用户输入\},返回 3 个不同的补全选项,每项不超过 10 个字。
  4. 输出配置:设置为 结构化 (Structured)。定义一个 ARRAY(STRING) 类型的字段,命名为 suggestions

行为流搭建

  • 名称AI输入内容补充
  • 执行方式:设置为 异步

  • 节点逻辑
    1. 开始节点:定义参数 content (文本)。
    2. AI 节点 (开始会话):选择 Agent_内容补全。将其输入参数绑定为行为流的 content
    3. 循环 (循环存储补全建议)
      • 数据源:选择 AI 节点输出的 suggestions 数组。
    4. 添加数据 (存储补全建议):在循环内部,向 建议记录 表插入一条记录。
      • 用户输入:绑定到行为流参数 content
      • 补充文本:绑定到循环节点的 当前项 (item)。
      • 会话id:绑定到 AI 节点的 id

UI 搭建与交互

  1. 输入框触发:在 输入框 组件的 值变化时触发 事件中,添加条件:STRING_LEN(输入组件.输入框) >= 3。若满足条件,执行上述行为流。

  1. 建议列表:在输入框下方放置一个 条件式容器,将其显示条件设置为 STRING_LEN(输入组件.输入框) >= 3。在容器内放置一个 列表 组件。

  • 数据源:远程数据 -> 建议记录
  • 请求类型订阅 — 必须使用订阅模式才能实时监听并显示新生成的记录。
  • 数据限额:限制数据显示为 3 条。
  • 数据筛选用户输入 等于 输入组件.输入框
  • 排序:按 id 倒序 排列,确保展示最新的预测结果。

  • 绑定列表项内的文本组件,显示内容为 当前项.补充文本

  1. 填入操作:在 列表项 的点击事件中,使用 设置输入组件值 将输入框内容更新为 当前项.补充文本
建议关闭“触发对象值变化时行为”开关,防止回填操作再次触发新的 AI 生成行为。

验证

  1. 触发:在输入框中输入一段文字(如“他昨天”)。
  2. 观察:稍作等待后,输入框下方会出现包含 3 个不同 AI 生成选项的列表。
  3. 交互:点击任意一个建议选项。
  4. 结果:输入框内容立即更新为所选文本,建议列表随之消失。


方法二:实时流式补全

此方法提供一种即时的、逐字生成的预测预览,直接流式传输到 UI 组件中进行显示。

逻辑与状态配置

此方案不依赖数据库存储,而是使用页面变量进行临时状态管理和即时展示。

AI Agent配置

  1. AI Agent:创建一个Agent(如 Agent_流式文本补全)。
  2. 提示词模板
    • 角色:你是一个文本补全助手。
    • 任务详情:基于提供的文本 \{输入/用户输入\},预测并补全接来的内容。
  3. 输出配置:设置为 纯文本
  4. 流式输出:开启 流式输出 开关。

页面变量设置

  1. 页面管理 -> 数据 面板中,创建一个名为 content页面变量 (类型:文本)。

UI 搭建与交互

  1. 画布配置

    • 放置一个 输入框 组件供用户输入。
    • 在下方放置一个 文本 组件,内容绑定为 页面变量.content
  2. 流式交互

    • 选择 输入框,在 行为 -> 值变化时触发 中:
    • 条件STRING_LEN(输入组件.输入框) >= 3
    • 动作AI -> 开始会话
    • 配置:选择上述流式Agent,并设置 将流式的最终结果增加到 指向 页面变量.content
在配置“开始会话”动作时,可以关闭底部的“请求时显示加载动画”开关。这样可以确保流式文本生成时,页面不会被加载动画阻断,提供更平滑的补全效果。

  1. 建议采纳
    • 选择显示建议内容的 文本 组件。在 点击时 事件中:
    • 动作 1设置输入组件值 -> 目标:输入框 -> 值:页面变量.content。(关闭“触发对象值变化时行为”)
    • 动作 2设置页面变量 -> 将 content 重置为空文本。

验证

  1. 触发:在输入框输入文字(至少 3 个字符)。
  2. 观察:输入框下方将实时逐字生成预测文本。
  3. 交互:点击生成的预测文本组件。
  4. 结果:内容自动填入主输入框,且下方的临时预览文本被清空。
Last updated on