本文為您介紹如何將飛書的資料轉送到Data Transmission Service的RAGFlow知識庫。
前提條件
已在DTS建立RAGFlow知識庫並設定IP白名單。
背景資訊
支援的資料類型
DTS RAGFlow支援接入飛書中的雲文檔、試算表、多維表格、知識庫。
訪問飛書的方式
當前支援使用應用身份訪問憑證(tenant_access_token)和使用者訪問憑證(user_access_token),訪問飛書的資料。
方式 | 權限類別型 | 優點 | 缺點 |
tenant_access_token(推薦) | 應用身份 |
| 授權時的操作較多,需要額外配置雲空間和知識庫的存取權限。 |
user_access_token | 使用者身份 | 授權時的操作較少。具有所有檔案夾的存取權限,無需額外配置雲空間和知識庫的存取權限。 |
|
準備工作
操作步驟
步驟一:配置存取權限
使用tenant_access_token
登入飛書開放平台,並進入開發人員後台。
單擊準備工作中建立的應用。
添加機器人並發布應用。
在左側導覽列,選擇。
在按能力添加頁簽,單擊機器人在卡片中的添加。
在頁面上方,單擊建立版本。
說明您也可以在左側導覽列,選擇,再單擊建立版本。
在版本詳情頁面,填入應用版本號碼、更新說明。
說明移動端的預設能力和案頭端的預設能力保持預設的機器人即可。
單擊儲存。
在彈出的對話方塊,單擊確認發布。
配置API許可權。
在左側導覽列,選擇。
單擊大量匯入/匯出許可權。
在匯入頁簽的JSON文字框,給應用配置如下使用者身份許可權。
{ "scopes": { "tenant": [ "docs:document:export", "drive:drive", "wiki:wiki" ], "user": [] } }單擊下一步,確認新增許可權。
單擊申請開通。
登入飛書用戶端,建立一個新的群組,並將準備工作中建立的應用添加為群機器人。
配置雲空間和知識庫的存取權限。
配置雲空間存取權限
進入目標雲空間的檔案夾。
在頁面右側,單擊分享。
邀請共同作業者填入步驟5中建立的群組。
預設的可閱讀許可權即可。
單擊發送。
配置知識庫存取權限
進入全部知識庫頁面。
將滑鼠游標移動到目標知識庫上,然後單擊該知識庫出現的知識庫設定。
單擊成員設定頁簽,並在角色與許可權地區的管理員頁簽,單擊添加管理員。
在彈出的對話方塊,添加步驟5中建立的群組,並單擊下一步。
單擊發送。
使用user_access_token
登入飛書開放平台,並進入開發人員後台。
單擊準備工作中建立的應用。
配置API許可權。
在左側導覽列,選擇。
單擊大量匯入/匯出許可權。
給準備工作中建立的應用,配置相應的使用者身份許可權。
{ "scopes": { "tenant": [], "user": [ "offline_access", "docs:document:export", "drive:drive", "wiki:wiki" ] }單擊下一步,確認新增許可權。
單擊申請開通。
配置重新導向IP白名單。
在左側導覽列,選擇。
在重新導向URL文字框,填入
https://www.aliyun.com。單擊文字框右側的添加。
開啟重新整理user_access_token開關。
說明若沒有此開關,則預設處於開啟狀態。
擷取授權碼。
擷取飛書的授權頁面的URL。
說明需將下述URL中的
YOUR_FEISHU_CLIENT_ID,替換為準備工作記錄的App ID。https://accounts.feishu.cn/open-apis/authen/v1/authorize?client_id=YOUR_FEISHU_CLIENT_ID&redirect_uri=https://www.aliyun.com&scope=drive:drive offline_access docs:document:export wiki:wiki在瀏覽器中開啟該授權頁面。
單擊授權。
在重新導向URL中擷取授權碼(
code)。說明授權碼不包含code=、&及&符號之後的資訊。
步驟二:擷取飛書雲文檔所屬檔案夾的Token和知識庫的ID
登入飛書用戶端。
擷取飛書雲文檔所屬檔案夾的Token。
進入目標檔案夾中。
在頁面上方的地址欄,擷取該檔案夾對應的URL。
在URL中擷取Token(
folder/之後的資訊)。說明Token不包含?及其之後的資訊。
擷取知識庫的ID。
進入全部知識庫頁面。
將滑鼠游標移動到目標知識庫上,然後單擊該知識庫出現的知識庫設定。
在頁面上方的地址欄,擷取目標知識庫的URL。
在URL中擷取知識庫的ID(
settings/之後的資訊)。說明知識庫的ID為純數字,不包含#及其之後的資訊。
步驟三:運行KBSync程式
擷取KBSync檔案。
說明您可以添加DingTalk群(群號:79690034672),聯絡技術支援人員以擷取KBSync檔案。
準備KBSync程式的運行環境。
說明運行KBSync程式需要為Linux環境,並且可以訪問飛書開放平台和RAGFlow。
準備設定檔config。
建立名為config的Linux系統檔案。
將以下代碼複製到config檔案中。
whiteList= blackList= sinkType=RagFlow sourceType=FeiShu ragflowUrl=http://XX.XX.XX.XX ragflowApiKey=Bearer RAGFlow-BmND******MDI0Mm ragflowDatasetId=928d061******2ac120006 feishuAppId=cli_a8a******d00d feishuAppSecret=pMp73Si******UDrWXBSOa feishuUserAccessCode=bGzpx6******B9KFCdzdCDHG feishuCloudSpaceDirToken=ESJm*******CRdn002cii3bnAc feishuWikiSpaceId=7504968******8674替換config檔案中的參數。
重要無需配置的參數,將其取值設定為空白值即可。
若參數
feishuCloudSpaceDirToken和feishuWikiSpaceId同時傳參,則僅傳輸飛書雲文檔及其所屬的檔案夾(僅feishuCloudSpaceDirToken參數生效)。參數
blackList的優先順序高於參數whiteList。
參數
是否必填
說明
擷取方式
whiteList否
需要傳輸(白名單)和無需傳輸(黑名單)的路徑,包含飛書雲文檔中的檔案夾路徑和知識庫中文檔所在的路徑。
說明支援Regex,多個路徑需使用空格分隔。
自行在飛書用戶端中擷取。
blackList否
sinkType是
目標端的類型。
取值請保持
RagFlow。sourceType是
源端的類型。
取值請保持
Feishu。ragflowUrl是
RAGFlow的地址(API伺服器)。
ragflowApiKey是
RAGFlow知識庫的API Key。
ragflowDatasetId是
RAGFlow知識庫的ID。
feishuAppId是
飛書中應用的ID(App ID)。
feishuAppSecret是
飛書中應用的密碼(App Secret)。
feishuUserAccessCode否
說明僅當使用user_access_token方式訪問飛書的資料時,需要傳參。
飛書的授權碼。
feishuCloudSpaceDirToken否
說明僅需為其中一個參數傳參。
飛書雲文檔所屬檔案夾的Token。
feishuWikiSpaceId飛書知識庫的ID。
將KBSync檔案和設定檔config,放在Linux環境中的同一目錄中。
在Linux環境中執行
./KBSync --config config命令,運行KBSync程式。若運行結果如下所示,則表示KBSync程式正常運行。
./KBSync --config config INFO config whiteList=, blackList= INFO config ragflowUrl=http://XX.XX.XX.XX/, ragflowApiKey=Bearer RAGFlow-BmND******MDI0Mm INFO config ragflowDatasetId=928d061******2ac120006 INFO config feishuAppId=cli_a8a******d00d, feishuAppSecret=pMp73Si******UDrWXBSOa INFO Response from https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal: 200, headers: {'Server': 'Tengine', 'Content-Type': 'application/json', 'Content-Length': '102', 'Connection': 'keep-alive', 'Date': 'Tue, 08 Jul 2025 02:49:01 GMT', 'Request-Id': '25bf****-d386-4a86-****-f440f070****', 'Tt_st****': '1', 'X-Lgw-Dst-Svc': 'jbpiSR****OiA0J3d****-Oz0xugYAH9otZIFg4x****', 'X-Request-Id': '25bf****-d386-4a86-b9f4-f440f070****', 'X-Tt-Logid': '202507081049012933B870245850D****', 'server-timing': 'inner; dur=73, cdn-cache;desc=MISS,edge;dur=0,origin;dur=129', 'x-tt-trace-host': '****', 'x-tt-trace-tag': '****', 'x-tt-trace-id': '00-****', 'X-Timestamp': '175194****.952', 'Via': 'cache8.cn6540[129,0]', 'Timing-Allow-Origin': '*', 'EagleId': '6ae3651c1751942941849****'}, body: b'{"code":0,"expire":4340,"msg":"ok","tenant_access_token":"t-g10478a*******CSC3YVY"}' INFO set feishu tenant access token expires in: 4340
附錄
擷取RAGFlow知識庫的API服務地址
在左側導覽列,單擊API。
擷取API伺服器。
擷取RAGFlow知識庫的API Key
在左側導覽列,單擊API。
在RAGFlow API右側,單擊API KEY。
在彈出的API KEY對話方塊,單擊建立新密鑰。
單擊
,記錄Token。
擷取RAGFlow知識庫的ID
在知識庫頁面,單擊目標知識庫。
在當前頁面的URL中,記錄知識庫的ID。
說明id=之後的資訊即為知識庫的ID。