GetRAGSpaceInfo

如果没有指定空间 ID,则返回有关指定 RAG 空间或所有 RAG 空间的信息。

格式 

GetRAGSpaceInfo ( RAG 账户名称 {; 空间 ID } )

参数 

ragAccountName - 用于 RAG 账户名称的文本表达式。在目前文件中,使用配置 RAG 账户脚本步骤设置账户,并在此函数使用之前随时为其分配此名称。

spaceID - RAG 空间的 ID。如果省略,将返回有关指定账户的所有 RAG 空间的信息。

括号 { } 中的参数是可选的。

返回的数据类型 

文本

原始版本 

22.0

说明 

GetRAGSpaceInfo 返回由 ragAccountName 指定的 AI 模型服务器上检索增强生成 (RAG) 空间的信息。您可以使用它来验证 RAG 空间的存在,监控其内容,并审核 RAG 操作。

如果没有指定 spaceID 值,该函数将返回一个 JSON 对象,其中包含指定 RAG 账户可用的 RAG 空间数组:

复制
{
  "rag_space_list": [
    {
      "space_id": "<string>",
      "model": "<string>"
    }
  ]
}
  • rag_space_list 是 RAG 空间的数组。

  • space_id 是 RAG 空间 ID 的密钥。

  • model 是用于在此 RAG 空间中生成文本嵌入向量的模型名称的键。

如果指定了 spaceID 值,该函数将返回一个 JSON 对象,其中包含有关 RAG 空间及其数据的信息:

复制
{
  "rag_space_id": "<string>",
  "model": "<string>",
  "entries": <number>,
  "values": [
    {
      "id": "<string>" or <number>,
      "filename": "<string>"
    },
    {
      "id": "<string>" or <number>,
      "text": "<string>"
    }
  ]
}
  • rag_space_id 是 RAG 空间 ID。

  • model 是用于在此 RAG 空间中生成文本嵌入向量的模型名称。

  • entriesvalues 数组中的元素数。

  • values 是文本文档块和 PDF 文件名的数组:

    • id 是文本文档(由该文档的所有块共享)或 PDF 文件的文档 ID。

      在 AI 模型服务器的 26.0.1 版本之前添加到 RAG 空间的文档具有数字文档 ID(例如,123)。从版本 26.0.1 开始,文档 ID 是 UUID 字符串(例如,"5f7677a0-3258-55a3-bc86-737005cb3574")。在处理包含 ID 格式变更前后所添加文档的 RAG 空间时,您的脚本应能同时兼容这两种文档 ID 格式。

      请参阅执行 RAG 操作脚本步骤

    • filename 是添加到空间的 PDF 文件的名称。

    • text 是添加到空间中的文本文档块。来自同一文本文档的块具有相同的 id

注释 

  • 在使用此函数之前,必须使用配置 RAG 账户脚本步骤配置 RAG 账户。

  • 此函数可用于在执行操作之前验证 RAG 空间是否存在。对于有效的 RAG 账户,如果空间不存在或其中没有数据,此函数将返回错误消息:

    [RAG 空间]错误。原因:RAG 空间 {space_id} 未找到

  • 如果 RAG 账户无效或不存在,该函数将返回“?”。

  • 该函数可用于审核和监控 FileMaker 解决方案中的 RAG 空间。

示例 1 

获取有关名为“customer-support-rag-account”的已配置账户的所有 RAG 空间的信息。

如果两个 RAG 空间包含数据,GetRAGSpaceInfo ( "customer-support-rag-account" ) 可以返回以下内容:

复制
{
  "rag_space_list": [
    {
      "space_id": "knowledge-base",
      "model": "multi-qa-MiniLM-L6-cos-v1"
    },
    {
      "space_id": "meeting-notes",
      "model": "multi-qa-MiniLM-L6-cos-v1"
    }
  ]
}

示例 2 

获取有关 ID 为“knowledge-base”的特定 RAG 空间的信息。

GetRAGSpaceInfo ( "customer-support-rag-account" ; "knowledge-base" ) 可针对一个包含名为“Terms.pdf”和“Policies.pdf”的 PDF 文件以及一份被分割成三个部分的文本文档(为简洁起见,内容已做截断处理)的空间,返回如下 JSON 格式信息。请注意,“Terms.pdf”的 id 字段为数值型,这是因为它是使用早期版本的AI模型服务器添加到 RAG 空间中的(请参阅“注释”)。

复制
{
  "rag_space_id": "knowledge-base",
  "model": "multi-qa-MiniLM-L6-cos-v1",
  "entries": 5,
  "values": [
    {
      "id": 42,
      "filename": "Terms.pdf"
    },
    {
      "id": "f95d4266-66cd-5b50-a01b-07a4dd66c501",
      "filename": "Policies.pdf"
    },
    {
      "id": "5f7677a0-3258-55a3-bc86-737005cb3574",
      "text": "处理退换货的客户支持政策与流程..."
    },
    {
      "id": "5f7677a0-3258-55a3-bc86-737005cb3574",
      "text": "确保要退还的商品已重新包装好,且包含所有..."
    },
    {
      "id": "5f7677a0-3258-55a3-bc86-737005cb3574",
      "text": "自收到商品之日起,您有 14 个日历日的时间办理退货..."
    }
  ]
}

示例 3 

在脚本中使用 GetRAGSpaceInfo 来验证在执行操作之前是否存在 RAG 空间。

复制
配置 RAG 账户 [ RAG 账户名称: "customer-support-rag-account" ; 端点: "https://myserver.example.com/llm/v1/" ; API 密钥: Global::RAG_API_Key ; 验证 SSL 证书 ]

设置变量 [ $ragSpaceInfo ; 值: GetRAGSpaceInfo ( "customer-support-rag-account" ; "knowledge-base" ) ]

If [ PatternCount ( $ragSpaceInfo ; "[RAG Space] error" ) > 0 或 PatternCount ( $ragSpaceInfo ; "?" ) > 0 ]

    # RAG 空间不存在。处理错误。显示自定义对话框 [“错误”;“找不到指定的 RAG 空间。”] 

Else

    # RAG 空间存在。继续操作。设置变量 [ $ragSpaceID ; 值: JSONGetElement ( $ragSpaceInfo ; "rag_space_id" ) ]
    
    显示自定义对话框 [ "找到空间" ; "RAG 空间 '" & $ragSpaceID & "' 可供使用。" ]

End If