開始建構—使用 JSON 格式

若您想要撰寫更複雜的篩選條件,可使用 JSON 格式直接以各層級 (如知識庫、單一文件等) ID 指定

Query Metadata 控制項目說明

項目類別
Key名稱
說明
使用方法

知識庫

knowledge_base

AI 助理產生對話時參考使用的知識庫

包裹在 knowledge_bases 命名的 Array→[...] 中,傳入知識庫 id 開放多個知識庫

知識庫檔案文件

Chatbot_file

knowledge_base 指定之知識庫中可參考的檔案文件

在 knowledge_base 中傳入的 物件→{...} 中定義

問答資料集

FAQ

knowledge_base 指定之知識庫中可參考的常見問答集

同上

知識庫檔案文件標籤

label

檔案文件中的標籤,若無指定 Chatbot_file 仍可指定 label,限制只能參考符合該標籤的文件,用於支援更細緻的文件權限劃分

使用 label_relations 命名的物件傳入,以 "OR"/"AND" 定義可適用的文件標籤條件,傳入conditions 命名的 Array→[...] 中定義

結構格式範例與說明

"query_metadata": {
    "knowledge_bases": [
      {
        "knowledge_base_id": "123e4567-e89b-12d3-a456-426614174000",
        "chatbot_file_ids": [
          "9f7a9f7b-2b2b-4c4c-9d9d-8e8e8e8e8e8e" // 檔案文件
        ],
        "faq_ids": [
          "a1b2c3d4-e5f6-7890-abcd-1234567890ab" // FAQ
        ],
        "has_user_selected_all": "False" // 選擇所有知識庫
      },
  //  可傳入多個物件,一次設定多個資料庫下的可參考文件、FAQ 等
  //    {
  //      "knowledge_base_id": "Id2",
  //      "chatbot_file_ids": [
  //        "file_id1" // 檔案文件
  //      ],
  //      "faq_ids": [
  //        "faq_id1",
  //        "faq_id2" // FAQ
  //      ],
  //    },
    ],
 
  "label_relations": { // 標籤
      "operator": "OR",  // 設定適用標準 (同時符合全部或符合任一個即可)
      "conditions": [
        { "label_id": "11111111-2222-3333-4444-555555555555" },
        // 可使用巢狀定義複雜條件
        {
          "operator": "AND",
          "conditions": [
            { "label_id": "66666666-7777-8888-9999-000000000000" }, 
            { "label_id": "aaaaaaa1-bbbb-cccc-dddd-eeeeeeeeeeee" }
          ]
        }
      ]
    },
}

如何獲取各層級 ID?

您可以進入左側選單的各層級內容中查看 ID 欄位 (以知識庫為例,可點選複製圖示直接複製所有 ID 內容)

取得各層級 ID 位置

關鍵邏輯說明

1. label_relations 邏輯

  • OR 運算:符合任一標籤即可存取

  • AND 運算:必須符合所有標籤才能存取

  • 嵌套邏輯:支援多層、巢狀的權限組合

2. knowledge_bases 設定

  • has_user_selected_all = "True":可存取該知識庫的所有內容

  • has_user_selected_all = "False":僅能存取指定的文件跟 FAQ

聯絡人(Contact)設定

您可以在編輯聯絡人的地方直接寫入 JSON 格式的 query_metadata 設定:

聯絡人 JSON 編輯介面

系統會自動驗證格式並套用權限設定。

Web Chat 初始化設定

circle-info

Web Chat 嵌入介紹請參考 🔗Web Chat 初始化arrow-up-right

若想要在聯絡人前限制對話內容(如:提供 Web Chat 服務給未註冊聯絡人帳號的客戶時),可以在嵌入時提供 Query Metadata,系統將預設啟動訊息(Message)層級的知識庫文件過濾機制

程式碼範例

hasUserSelectedAll 參數說明

此參數為單一知識庫下的排除 / 使用少數項目之設定,在您開放的文件基礎下才會再套用標籤的過濾條件。

參數值
行為
適用場景

"True"

系統選擇該知識庫中的所有內容,排除 chatbotFileIdsfaqIds 中列出的項目

100 個文件中使用 98 個文件,2 個文件在參數中列出表示不使用

"False"

系統選擇 chatbotFileIdsfaqIds 中明確列出的項目

100 個文件中只使用 2 個文件

程式碼範例

queryMetadata 與 contactId 的優先順序

  • 當不設定 queryMetadata 和 contactId 時:系統會搜索全部知識庫範圍,不做任何排除

  • 可以單獨設定 queryMetadata 或 contactId

  • 當兩者都設定時:系統只會使用聯絡人(以 contactId 辨識)中 Query Metadata 的設定

Last updated

Was this helpful?