![見出し画像](https://assets.st-note.com/production/uploads/images/123946665/rectangle_large_type_2_675a9600468ca56fedeb0483fbd887ca.png?width=1200)
Boxに蓄えられた膨大な自社コンテンツを使ってLLMをファインチューニングする(ために文字情報を取り出す) その1
はじめに
突然ですが、Boxに保存した膨大な自社コンテンツを利用してLLMをファインチューニングしたいと思ったことはないですか?自社・自組織の業務用語や業務ナレッジが満載のドキュメントを使ってLLMをファインチューニングすれば、更に生成AIの業務活用が進むのに…と妄想したことはありませんか?
そんな妄想を叶えるべく、今回から数回に分けて、「Box内のコンテンツのテキスト情報をスクリプトで取得する」方法をご説明していきたいと思います。スクリプト言語はPythonでご説明しますが、BoxはPython以外の環境のSDKもあります。また、Box CLIというコマンドラインインターフェースが準備されていますので、PowerShellやシェルスクリプトで作成することも可能です。
まず第一回の今回は、「スクリプトからBoxにアクセスするための下準備」です。
前提
Box有償アカウントが使えること
Boxの開発者アカウントを準備し、「BoxDEV」Box developerドキュメントサイトにアクセスする
「Box開発者コンソール」画面で、JWT認証の「Boxカスタムアプリ」を作成・構成する
作成した「Boxカスタムアプリ」をテナント管理者が承認する
ダウンロードしたJSONファイルの保存を確認する
それではさっそく始めましょう!
1. Boxの開発者アカウントを準備し、「BoxDEV」Box developerドキュメントサイトにアクセスする
自分のBoxアカウントでBoxにログインしている状態で、下記「BoxDEV」サイトにアクセスしてください。
画面右上の「マイアプリ」をクリックしてください。
![](https://assets.st-note.com/img/1701050139517-3w2SSpiFcA.png?width=1200)
「開発者コンソール」が表示されます。
![](https://assets.st-note.com/img/1701050238659-Kwy9VM6wD5.png?width=1200)
2.「Box開発者コンソール」画面で、JWT認証の「Boxカスタムアプリ」を作成・構成する
「Box開発者コンソール」画面の「アプリの新規作成」をクリックします。
![](https://assets.st-note.com/img/1702011774822-6uvloYR8Ei.png?width=1200)
「アプリの新規作成」画面で「カスタムアプリ」をクリックします。
![](https://assets.st-note.com/img/1702011877041-bmY1XqSmQF.png?width=1200)
「カスタムアプリの作成」で、「アプリ名」と「目的」を入力して「次へ」をクリックします。アプリ名は任意の文字列でOKです。目的は何を選んでもカスタムアプリの挙動に関係ありません。
3つのアプリの違いについては下記Box Developerドキュメントをご参照ください。
![](https://assets.st-note.com/img/1702012031059-RsJ191Zjbx.png?width=1200)
続く画面で「サーバー認証(JWT使用)」を選択して「アプリの作成」をクリックします。
![](https://assets.st-note.com/img/1702012147829-1BJDQwGfDH.png?width=1200)
カスタムアプリが作成されます。
![](https://assets.st-note.com/img/1702012116278-deR4QmUFzs.png?width=1200)
作成したカスタムアプリの画面の「構成」タブ→「アプリアクセスレベル」を「アプリ+Enterpriseアクセス」に設定します。
「Enterpriseアクセス」があることで、この「カスタムアプリ」を使って作成されたのではないコンテンツにもアクセスできるようになります。
![](https://assets.st-note.com/img/1702012572460-a1mTbqzmY7.png?width=1200)
「アプリアクセスレベル」のすぐ次のセクション「アプリケーションスコープ」で、「コンテンツ操作」の「Boxに格納されているすべてのファイルとフォルダの読み取り」が有効かつグレーアウトしていることを確認します。
![](https://assets.st-note.com/img/1702012702693-pAlQUV7OXT.png?width=1200)
更にスクロールダウンすると「公開キーの追加と管理」セクションがあります。サーバー認証カスタムアプリはBoxへの認証に、秘密キーが記載されたJSONファイルを用いますが、そのJSONファイルをここで作成します。「公開/秘密キーペアを生成」をクリックし、ポップアップの「OK」をクリックするとJSONファイルがダウンロードされます。
![](https://assets.st-note.com/img/1702013047029-42Ecqw5RoX.png?width=1200)
「構成」タブの画面最上部に戻り、「変更を保存」をクリックします。
![](https://assets.st-note.com/img/1702013522075-jKgLB6jrYX.png?width=1200)
カスタムアプリが保存されます。
![](https://assets.st-note.com/img/1702013606374-XqSuADbYtl.png?width=1200)
「承認」タブに移動し、「確認を送信」をクリックして、作成・構成したカスタムアプリを利用可能にするために、テナント管理者へ承認を申請します。
![](https://assets.st-note.com/img/1702013824084-RX9NKH81UO.png?width=1200)
![](https://assets.st-note.com/img/1702013908067-Vgf1fPy6AR.png?width=1200)
![](https://assets.st-note.com/img/1702013963968-VStHfD8GuV.png?width=1200)
3. 作成した「Boxカスタムアプリ」をテナント管理者が承認する
カスタムアプリの承認は、テナント管理者が実施する必要があります。テナント管理者権限をお持ちでない場合は、テナント管理者にカスタムアプリの承認をお願いしましょう。
※ テナント管理者にコンタクトができない場合、カスタムアプリの認証設定を(「サーバー認証(JWT使用)」ではなく)「ユーザー認証(OAuth 2.0)」にする方法がありますが、「ユーザー認証(OAuth 2.0)」は自動化用途で利用することはBoxの規約違反となりますのでご注意ください。
テナント管理者でBoxにログインし、「管理コンソール」→「アプリ」→「カスタムアプリマネージャ」タブを表示します。
![](https://assets.st-note.com/img/1702014165167-dt1WKwmU2e.png?width=1200)
作成したカスタムアプリの行の右端の「・・・」メニューから「アプリを承認」をクリックします。
![](https://assets.st-note.com/img/1702014254497-aem4rJsfN1.png?width=1200)
「アプリを承認」ポップアップで内容を確認して「承認」をクリックします。
![](https://assets.st-note.com/img/1702014305376-TxxKy6Kn5H.png?width=1200)
カスタムアプリが承認されます。
![](https://assets.st-note.com/img/1702014328948-Wp6wfGTaHE.png?width=1200)
4. ダウンロードしたJSONファイルの保存を確認する
手順2.でダウンロードしたJSONファイルの保存を再度確認しておいてください。作成したカスタムアプリを使ってBoxにアクセスする際に必要になるファイルです。
あわせて、カスタムアプリの「承認」画面で「承認ステータス」が「承認済み」に、「有効化ステータス」が「有効」になっていることを確認しておきましょう。
![](https://assets.st-note.com/img/1702014558284-6VBgPB1CJu.png?width=1200)
これで、スクリプトからBoxにアクセスするための事前準備が終わりました。次回は、BoxにアクセスするPythonスクリプトを実際に記述し実行してみます。
ご覧頂きましてありがとうございました。