将记录保存为 JSONL

将记录保存到指定的 JSONL 文件。

选项 

  • 微调格式指定 JSONL 文件的输出格式:

    • 打开:创建一个适合 AI 模型微调的 JSONL 文件,其中包含来自您指定的表和字段的系统、用户和助手提示的消息数组结构。

    • 关闭:创建具有消息数组结构的 JSONL 文件格式,其中包含“完成字段”指定的助手提示,该提示包含您指定的表格中所有其他字段的数据的用户提示。它还包含一个预定义的系统提示。

  • 根据当前记录搜索结果指定要导出的表摹本。

  • 指定输出文件定义 JSONL 文件保存为的一个或多个路径和文件名的列表。路径必须使用文件路径前缀之一。脚本步骤会搜索列表,并使用它可以成功保存的第一个路径和文件名。请参阅创建文件路径

  • 创建文件夹”,以指定是否在输出文件路径中创建您指定的新文件夹。

选项仅当“微调格式”为“打开”时才可用:

  • 系统提示”是一个文本表达式,指定了定义 AI 模型角色和行为的系统级指令。此提示会设置模型应该如何响应的上下文。

  • 用户提示”是一个文本表达式,指定了将用作 AI 模型训练示例的用户输入或问题。

  • 助手提示”是一个文本表达式,指定了与用户提示对应的预期 AI 助手回复。

选项仅当“微调格式”为“关闭”时才可用:

  • 完成字段指定中包含供训练使用的预期助手响应或答案的字段。

兼容性 

产品 是否支持
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
自定义 Web 发布

原始版本 

22.0

说明 

此脚本步骤将记录从 FileMaker 表导出到 JSON 行 (JSONL) 格式的文件。JSONL 是一种结构化文本文件格式,其中每行都包含一个单独的、完整的 JSON 对象。这种格式的主要用途是作为微调 AI 模型的训练数据。

对于当前搜索结果中的每个记录(或者对于“”指定了相关表时的每个相关记录),脚本步骤将 JSON 对象保存在输出文件中的一行上。格式取决于用于“微调格式”选项。

注释  虽然为了清楚起见,下面显示为多行,但每个 JSON 对象实际上都在 JSONL 文件中的一行上。

如果“微调格式”为 输出格式是

打开

复制
{
  "messages"
  [
    {
      "content" : "<System_Prompt_Field_Data>",
      "role" : "system"
    },
    {
      "content" : "<User_Prompt_Field_Data>",
      "role" : "user"
    },
    {
      "content" : "<Assistant_Field_Data>",
      "role" : "assistant"
    }
  ]
}

其中:

  • <System_Prompt_Field_Data> 是“系统提示”指定的数据。

  • <User_Prompt_Field_Data> 是“用户提示”指定的数据。

  • <Assistant_Prompt_Field_Data> 是“助手提示”指定的数据。

关闭

 

复制
{
  "messages"
  [
    {
      "content" : "<Predefined_System_Prompt>",
      "role" : "system"
    },
    {
      "content" : "<FieldName1>=<Data1>, <FieldName2>=<Data2>, ... ",
      "role" : "user"
    },
    {
      "content" : "<Completion_Field_Data>",
      "role" : "assistant"
    }
  ]
}

其中:

  • <Predefined_System_Prompt> 是一个预定义的系统提示。

  • <FieldNameN>=<DataN> 是一个字段名称及其数据。包括“”中的所有字段,“完成字段”指定的字段除外。

  • <Assistant_Prompt_Field_Data> 是“完成字段”指定的数据。

注释 

  • 字段类型按以下方式处理:

    • 文本和数字字段分别保存为 JSON 字符串和数字。

    • 日期和时间字段保存为字符串,使用创建 FileMaker Pro 文件时使用的系统区域设置格式。

    • 当“微调格式”选项为“关闭”时,不支持容器字段并且会跳过该字段。如果此选项为“打开”,则容器字段中的文件名将导出为字符串(如果存在)。

    • 计算字段是根据其结果类型保存的。

  • 当“微调格式”选项为“开”时:

    • 系统提示”是可选的。如果未指定,或者其指定数据为空值,则系统角色的对象将在 JSONL 文件中省略。

    • 用户提示”和“助手提示”为必填项。如果它们的值为空,则用户和助手角色内容值为空字符串。

  • 当“微调格式”选项为“关闭”时:

    • 完成字段”为必填项。如果记录的值为空,则在 JSONL 文件中省略该记录。

示例 1- 微调格式关闭

将数据保存到“微调格式”已关闭的 JSONL 文件中。Support_QA 表格包含有关 FileMaker 以及其他数据的客户支持问题和答案。

脚本转到 Support_QA 布局,并显示所有记录。然后,它将 $filePath 设置为 JSONL 文件,以保存在文档目录中。

最后,脚本将所有记录保存在 Support_QA 表中,并在每行的助手对象中标识来自“答案”字段的数据。

复制
转到布局 [ "Support_QA" (Support_QA) ]
显示所有记录

设置变量 [ $filePath ; Value: Get(DocumentsPath) & "support-qa.jsonl" ]

将记录保存为 JSONL [ 微调格式: 关闭 ; 表: "Support_QA" ; 完成字段: Support_QA::Answer ; "$filePath" ; 创建文件夹: 关闭 ]

support-qa.jsonl 文件中一条记录的行:

复制
{"messages": [{"role": "system","content": "<Predefined_System_Prompt>"},{"role": "user","content": "Area=Scripting, Question=How do I create a new script in FileMaker Pro?, Version=3"},{"role": "assistant","content": "Go to Scripts menu > Script Workspace, then ..."}]}

示例 2- 保存为 JSONL 以进行微调

使用这个与上述相同的 Support_QA 表,本例将选择字段中的数据保存到 JSONL 文件中,用于微调微调模型脚本步骤示例 2 中的 AI 模型。

脚本转到 Support_QA 布局,并执行查找以获取所需的搜索结果。然后,它将 $trainingFile 设置为 JSONL 文件,以保存在文档目录中。

最后,脚本将 Support_QA 表中记录的搜索结果保存到 JSONL 文件中,其中包含来自用户提示的问题字段、来自助手提示的答案字段的数据,以及包含系统提示版本字段的文本表达式。

复制
转到布局 [ "Support_QA" (Support_QA) ]
执行查找 [ 恢复 ]

设置变量 [ $trainingFile ; 值: Get(文档路径) & "training_data.jsonl" ]

设置变量 [ $systemPrompt ; 值: "应用到从以下版本开始的所有 FileMaker Pro 版本: " & Support_QA::Version ]

将记录保存为 JSONL [ 微调格式: 打开 ; 表: "Support_QA" ; 系统提示: $systemPrompt ; 用户提示: Support_QA::Question ; 助手提示: Support_QA::Answer ; "$trainingFile" ; 创建文件夹: 关闭 ]

training_data.jsonl 文件中一条记录的行:

复制
{"messages":[{"content":"Applies to all FileMaker Pro versions starting with: 3","role":"system"},{"content":"How do I create a new script in FileMaker Pro?","role":"user"},{"content":"Go to Scripts menu > Script Workspace, then ...","role":"assistant"}]}