このトピックでは、Lark から Data Transmission Service (DTS) RAGFlow ナレッジベースにデータを転送する方法について説明します。
前提条件
DTS でRAGFlow ナレッジベースを作成し、IP ホワイトリストを構成している必要があります。
背景情報
サポートされているデータ型
DTS RAGFlow は、Lark の Lark Docs、ワークブック、Bitable、およびナレッジベースへの接続をサポートしています。
Lark にアクセスする方法
アプリケーションアクセスクレデンシャル (tenant_access_token) またはユーザーアクセスクレデンシャル (user_access_token) を使用して Lark データにアクセスできます。
方法 | 権限の種類 | メリット | デメリット |
tenant_access_token (推奨) | アプリケーション ID |
| 認証の手順が多くなります。 Cloud Drive とナレッジベースに追加のアクセス権限を構成する必要があります。 |
user_access_token | ユーザー ID | 認証の手順が少なくなります。 すべてのフォルダへのアクセス権限を持っているため、Cloud Drive とナレッジベースに追加のアクセス権限を構成する必要はありません。 |
|
準備
Lark オープン プラットフォーム にログインし、[開発者コンソール] に移動します。
[カスタム アプリを作成] をクリックし、[名前] や [アプリの説明] などの情報を構成し、[作成] をクリックします。
アプリケーションカードをクリックして、アプリケーション編集ページに移動します。
デフォルトでは、 ページが表示されます。
[クレデンシャルと基本情報] ページの [アプリ クレデンシャル] セクションで、[アプリ ID] と [アプリ シークレット] を記録します。
手順
ステップ 1: アクセス権限を構成する
tenant_access_token を使用する
Lark オープン プラットフォーム にログインし、[開発者コンソール] に移動します。
「準備」 セクションで作成したアプリケーションをクリックします。
ボットを追加し、アプリケーションを公開します。
左側のナビゲーションウィンドウで、 を選択します。
[機能別に追加] タブで、[ボット] カードを見つけて、[追加] をクリックします。
ページ上部にある [バージョンを作成] をクリックします。
説明または、左側のナビゲーションウィンドウで、 を選択し、[バージョンを作成] をクリックします。
[バージョンの詳細] ページで、[アプリバージョン] と [更新メモ] を入力します。
説明[モバイルのデフォルト機能] と [デスクトップのデフォルト機能] には、デフォルト値の [ボット] を保持します。
[保存] をクリックします。
表示されるダイアログボックスで、[リリースの確認] をクリックします。
API 権限を構成します。
左側のナビゲーションウィンドウで、 を選択します。
[一括インポート/エクスポート スコープ] をクリックします。
[インポート] タブの [JSON] テキストボックスに、アプリケーションの次の権限を入力します。
{ "scopes": { "tenant": [ "docs:document:export", "drive:drive", "wiki:wiki" ], "user": [] } }[次へ、新しいスコープの確認] をクリックします。
[アクティブ化のリクエスト] をクリックします。
Lark クライアントにログインし、新しいグループを作成し、準備セクションで作成したアプリケーション を [グループボット] として追加します。
Cloud Drive とナレッジベースのアクセス権限を構成します。
Cloud Drive アクセス権限の構成
ターゲット Cloud Drive フォルダに移動します。
ページの右側にある [共有] をクリックします。
[共同作業者を招待] には、ステップ 5 で作成したオーディエンスグループを入力します。
デフォルトの [表示可能] 権限で十分です。
[送信] をクリックします。
ナレッジベースアクセス権限の構成
すべてのナレッジベース ページに移動します。
ターゲット ナレッジベースにカーソルを合わせ、表示される [ナレッジベース設定] アイコンをクリックします。
[メンバー設定] タブをクリックします。 [ロールと権限] セクションの [管理者] タブで、[管理者を追加] をクリックします。
表示されるダイアログボックスで、ステップ 5 で作成したオーディエンスグループを追加し、[次へ] をクリックします。
[送信] をクリックします。
user_access_token を使用する
Lark オープン プラットフォーム にログインし、[開発者コンソール] に移動します。
「準備」 セクションで作成したアプリケーションをクリックします。
API 権限を構成します。
左側のナビゲーションウィンドウで、 を選択します。
[一括インポート/エクスポート スコープ] をクリックします。
「準備」 セクションで作成したアプリケーションのユーザー ID 権限を構成します。
{ "scopes": { "tenant": [], "user": [ "offline_access", "docs:document:export", "drive:drive", "wiki:wiki" ] } }[次へ、新しいスコープの確認] をクリックします。
[アクティブ化のリクエスト] をクリックします。
リダイレクト IP ホワイトリストを構成できます。
左側のナビゲーションウィンドウで、 を選択します。
[リダイレクト URL] テキストボックスに、
https://www.aliyun.comと入力します。テキストボックスの右側にある [追加] をクリックします。
[user_access_token の更新] スイッチをオンにします。
説明このスイッチが使用できない場合は、この機能はデフォルトで有効になっています。
認証コードを取得します。
Lark 認証ページの URL を構築します。
説明次の URL の
YOUR_FEISHU_CLIENT_IDを、「準備」 セクションで記録した [アプリ 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=、&、または & 記号の後に続く情報は含まれません。
ステップ 2: Lark Doc フォルダのトークンとナレッジベースの ID を取得する
Lark クライアントにログインします。
Lark Doc フォルダのトークンを取得します。
ターゲットフォルダに移動します。
アドレスバーからフォルダの URL をコピーします。
URL からトークンを抽出します。 トークンは
folder/の後の文字列です。説明トークンには、? 記号またはそれに続く情報は含まれません。
ナレッジベースの ID を取得します。
すべてのナレッジベース ページに移動します。
ターゲット ナレッジベースにカーソルを合わせ、表示される [ナレッジベース設定] アイコンをクリックします。
アドレスバーからターゲット ナレッジベースの URL をコピーします。
URL からナレッジベースの ID を抽出します。 ID は
settings/の後の文字列です。説明ナレッジベース ID には数字のみが含まれ、# 記号またはそれに続く情報は含まれません。
ステップ 3: KBSync プログラムを実行する
KBSync ファイルを取得します。
説明DingTalk グループ (ID: 79690034672) に参加し、ヘルプデスクに連絡して KBSync ファイルを入手できます。
KBSync プログラムの実行環境を準備します。
説明KBSync プログラムは、Lark オープン プラットフォームと RAGFlow にアクセスできる Linux 環境で実行する必要があります。
[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******8674config ファイルのパラメータを置き換えます。
重要構成する必要のないパラメータについては、値を空のままにします。
feishuCloudSpaceDirTokenとfeishuWikiSpaceIdの両方のパラメータを渡すと、Lark Docs とその親フォルダのみが転送されます (feishuCloudSpaceDirTokenパラメータのみが有効になります)。blackListパラメータは、whiteListパラメータよりも優先順位が高くなります。
パラメータ
必須
説明
取得方法
whiteListいいえ
転送するパス (ホワイトリスト) と転送しないパス (ブラックリスト)。 これらには、Lark Docs のフォルダパスとナレッジベースのドキュメントパスが含まれます。
説明正規表現がサポートされています。 複数のパスはスペースで区切ります。
Lark クライアントから取得します。
blackListいいえ
sinkTypeはい
シンクのタイプ。
値を
RagFlowのままにします。sourceTypeはい
ソースのタイプ。
値を
Feishuのままにします。ragflowUrlはい
RAGFlow アドレス ([API サーバー])。
ragflowApiKeyはい
RAGFlow ナレッジベースの API キー。
ragflowDatasetIdはい
RAGFlow ナレッジベースの ID。
feishuAppIdはい
Lark のアプリケーションの ID ([アプリ ID])。
feishuAppSecretはい
Lark のアプリケーションのシークレット ([アプリ シークレット])。
feishuUserAccessCodeいいえ
説明このパラメータは、user_access_token メソッドを使用して Lark データにアクセスする場合にのみ必要です。
Lark 認証コード。
feishuCloudSpaceDirTokenいいえ
説明これらのいずれかのパラメータを渡すだけで十分です。
Lark Docs を含むフォルダのトークン。
feishuWikiSpaceIdLark ナレッジベースの ID。
Linux 環境の同じフォルダに、[KBSync] ファイルと config 構成ファイルを配置します。
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 キーを取得する
左側のナビゲーションウィンドウで、[API] をクリックします。
[RAGFlow API] の右側にある [API KEY] をクリックします。
[API KEY] ダイアログボックスで、[新しいキーを作成] をクリックします。
をクリックしてトークンを記録します。
RAGFlow ナレッジベースの ID を取得する
[ナレッジベース] ページで、ターゲット ナレッジベースをクリックします。
現在のページの URL で、ナレッジベースの ID を記録します。
説明id=の後の情報がナレッジベースの ID です。