全部產品
Search
文件中心

Data Transmission Service:實踐手冊:將SharePoint接入到DTS RAGFlow知識庫

更新時間:May 13, 2026

本文為您介紹如何將SharePoint的資料轉送到Data Transmission Service的RAGFlow知識庫。DTS支援使用Microsoft Entra ID(原Azure AD)應用程式身分識別驗證方式,通過Microsoft Graph API訪問SharePoint網站中的文檔。該方式使用用戶端憑證流程(Client Credentials),以應用程式身份訪問資料,無需您互動授權。

適用範圍

已在DTS建立RAGFlow知識庫設定IP白名單

支援的資料類型

DTS RAGFlow支援接入SharePoint中的文件庫檔案(如Word、Excel、PDF、PowerPoint等)。

準備工作

步驟一:在Microsoft Entra ID中註冊應用程式

  1. 登入Azure門戶

  2. 在左側導覽列,選擇Microsoft Entra ID

  3. 單擊應用註冊 > 新註冊

  4. 填寫應用資訊,然後單擊註冊

    配置項

    說明

    名稱

    輸入應用程式名稱,例如KBSync-SharePoint-Reader

    支援的賬戶類型

    選擇僅此組織目錄中的賬戶(單租戶)。

    重新導向URI

    可留空。用戶端憑證流程不需要重新導向URI。

  5. 註冊完成後,在應用概述頁面,記錄以下資訊。

    參數

    說明

    應用程式(用戶端) ID

    應用的唯一標識,對應KBSync配置中的llamahubReader_client_id參數。

    目錄(租戶) ID

    Microsoft Entra租戶標識,對應KBSync配置中的llamahubReader_tenant_id參數。

步驟二:建立用戶端密鑰

  1. 在應用頁面,選擇認證和密碼 > 用戶端密碼

  2. 單擊新用戶端密鑰

  3. 填寫描述並選擇到期時間(建議選擇24個月從不)。

  4. 單擊添加後,立即複製密鑰值。

    重要

    離開頁面後將無法再次查看該密鑰值,請務必在建立後立即複製並妥善儲存。該金鑰組應KBSync配置中的llamahubReader_client_secret參數。

步驟三:配置API許可權

  1. 在應用頁面,選擇API許可權 > 添加許可權

  2. 選擇Microsoft Graph > 應用程式許可權

  3. 搜尋並添加以下許可權。

    權限類別型

    許可權名稱

    說明

    應用程式

    Sites.Read.AllSites.Selected

    • Sites.Read.All:讀取所有SharePoint網站(推薦用於全網站訪問)。

    • Sites.Selected:僅讀取選定的SharePoint網站(更安全的選項)。

    說明

    若選擇Sites.Selected許可權,則需要通過Microsoft Graph API為您的應用顯式授權訪問特定SharePoint網站

    應用程式

    Files.Read.All

    讀取所有檔案。

    應用程式

    BrowserSiteLists.Read.All

    讀取瀏覽器網站列表。

  4. 擷取管理員同意。

    添加許可權後,必須獲得全域管理員的同意才會生效。

    1. API許可權頁面,單擊代表<租戶名稱>授予管理員同意

    2. 確認狀態列顯示為已授予

    說明

    如果您沒有管理員權限,請聯絡組織的Microsoft 365全域管理員完成此步驟。

步驟四:擷取SharePoint網站資訊

在配置KBSync之前,需要收集以下SharePoint資訊。

參數

說明

擷取方式

Site Name

SharePoint網站名稱。

從SharePoint URL中提取。例如URL為https://contoso.sharepoint.com/sites/Marketing,則Site Name為Marketing

Folder Path

文件庫中的檔案夾路徑。

在SharePoint中查看目的文件所在的檔案夾路徑。例如Reports

Host Name

SharePoint主機名稱。使用Sites.Selected許可權時需要。

從SharePoint URL中提取。例如contoso.sharepoint.com

Drive Name

SharePoint文件庫名稱。

在SharePoint網站中查看文件庫名稱,預設文件庫通常為Documents

操作步驟

步驟一:準備設定檔

  1. 擷取KBSync程式並準備KBSync程式的運行環境。

    說明
    • 您可以提交工單,聯絡技術支援人員以擷取KBSync檔案。

    • 運行KBSync程式需要為Linux環境,並且可以訪問Microsoft Graph API和RAGFlow。

  2. 準備設定檔config

    1. 建立名為config的Linux系統檔案。

    2. 將以下代碼複製到config檔案中。

      # 基礎配置
      sourceType=LlamaHub
      sinkType=RagFlowV2
      whiteList=
      blackList=
      
      sleepTime=600
      jobId=dts_kbsync_llamahub_sharepoint_to_ragflow
      documentSyncMode=full
      
      # LlamaHub Reader 配置
      llamahubReaderClass=llama_index.readers.microsoft_sharepoint.SharePointReader
      llamahubReader_client_id=96b75717-****-****-****-46b70e29bec1
      llamahubReader_tenant_id=c2211d60-****-****-****-fd062b3f8c2b
      llamahubReader_client_secret=Xwd8Q***************DmpRTDmpRTw
      llamahubReader_sharepoint_host_name=contoso.sharepoint.com
      llamahubReader_sharepoint_site_name=Marketing
      llamahubReader_drive_name=Documents
      llamahubLoad_sharepoint_folder_path=Reports
      
      # Sink RAGFlow 配置
      sinkOSSAccessKeyId=
      sinkOSSAccessKeySecret=
      sinkOSSRegion=
      sinkOSSBucket=
      sinkOSSEndpoint=
    3. 替換config檔案中的參數。

      重要
      • 無需配置的參數,將其取值設定為空白值即可。

      • 參數blackList的優先順序高於參數whiteList

      參數

      是否必填

      說明

      擷取方式

      whiteList

      需要傳輸(白名單)和無需傳輸(黑名單)的路徑。

      說明

      支援Regex,多個路徑需使用空格分隔。

      自行在SharePoint中擷取目標檔案夾路徑。

      blackList

      sourceType

      源端的類型。

      取值請保持LlamaHub

      sinkType

      目標端的類型。

      取值請保持RagFlowV2

      sleepTime

      增量掃描間隔。

      -

      documentSyncMode

      同步模式:

      • full:全量

      • inc:增量

      -

      llamahubReader_client_id

      Microsoft Entra ID中註冊的應用程式(用戶端) ID。

      步驟一:在Microsoft Entra ID中註冊應用程式

      llamahubReader_tenant_id

      Microsoft Entra ID中的目錄(租戶) ID。

      llamahubReader_client_secret

      Microsoft Entra ID中建立的用戶端密鑰。

      步驟二:建立用戶端密鑰

      llamahubReader_sharepoint_site_name

      SharePoint網站名稱。

      步驟四:擷取SharePoint網站資訊

      llamahubReader_sharepoint_host_name

      說明

      使用Sites.Selected許可權時必填。

      SharePoint主機名稱。

      llamahubReader_drive_name

      SharePoint文件庫名稱。預設為Documents

      llamahubLoad_sharepoint_folder_path

      文件庫中的檔案夾路徑。不填則傳輸文件庫根目錄下的全部內容。

      sinkOSSAccessKeyId

      OSS Bucket相關資訊。

      請前往OSSObject Storage Service控制台擷取。

      sinkOSSAccessKeySecret

      sinkOSSRegion

      sinkOSSBucket

      sinkOSSEndpoint

步驟二:運行KBSync程式

  1. KBSync檔案和設定檔config,放在Linux環境中的同一目錄中。

  2. 在Linux環境中執行./KBSync --config config命令,運行KBSync程式。

故障排查

錯誤資訊

可能原因

解決方案

Authentication failed

用戶端密鑰錯誤或已到期。

檢查Client ID和Client Secret是否正確。若密鑰已到期,請在Azure門戶中重新建立密鑰。

Access denied

API許可權未授予或管理員未同意。

確認API許可權已添加並獲得管理員同意。在Azure門戶的API許可權頁面,檢查狀態是否顯示為已授予

Site not found

Site Name或URL配置錯誤。

驗證SharePoint網站名稱和路徑是否正確,確保llamahubReader_sharepoint_site_name參數填寫的是網站名稱而非完整URL。

Insufficient privileges

應用無許可權訪問特定網站。

使用Sites.Selected許可權時,需要通過Microsoft Graph API為應用顯式授予目標網站的存取權限。請參見配置API許可權中的說明完成網站層級授權。

附錄:授權SharePoint網站層級許可權

Sites.Selected許可權需要通過Microsoft Graph API給具體的網站授權,Azure控制台不支援按網站授權操作。

  1. Graph Explorer中,使用全域管理員帳號登入,並為當前會話授予Sites.FullControl.All許可權。

    操作方式:輸入任意請求後,單擊上方的Modify permissions標籤,找到Sites.FullControl.All並單擊Consent完成授權。

  2. 擷取目標SharePoint網站的Site ID。在Graph Explorer中執行以下請求:

    GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{site-path}

    例如:GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/project-alpha。響應中的id欄位即為Site ID。

  3. 為應用授予特定網站的存取權限。在Graph Explorer中執行以下POST請求:

    POST https://graph.microsoft.com/v1.0/sites/{site-id}/permissions
    Content-Type: application/json
    
    {
      "roles": ["write"],
      "grantedToIdentities": [
        {
          "application": {
            "id": "<您的應用的Application (client) ID>",
            "displayName": "<應用程式名稱>"
          }
        }
      ]
    }

    roles可選值:read(唯讀)、write(讀寫)、owner(完全控制)。

  4. 驗證許可權是否生效。執行GET https://graph.microsoft.com/v1.0/sites/{site-id}/permissions,確認返回結果中包含您的應用及其角色資訊。