Boxに蓄えられた膨大な自社コンテンツを使ってLLMをファインチューニングする(ために文字情報を取り出す) その3
はじめに
突然ですが、Boxに保存した膨大な自社コンテンツを利用してLLMをファインチューニングしたいと思ったことはないですか?自社・自組織の業務用語や業務ナレッジが満載のドキュメントを使ってLLMをファインチューニングすれば、更に生成AIの業務活用が進むのに…と妄想したことはありませんか?
そんな妄想を叶えるべく書き始めた「Box内のコンテンツのテキスト情報をスクリプトで取得する」方法ご説明の第3回です。第2回はこちらです。
第3回の今回は「JWT認証でPythonからBox APIを実行し、単一Wordファイルのテキスト情報を取得できるようになる」です。
1.「レプリゼンテーション」を理解する
2. レプリゼンテーションを取得するAPIを理解する
3. レプリゼンテーションを取得するAPIを実行する
1. 「レプリゼンテーション」を理解する
Boxにおけるレプリゼンテーションとは、コンテンツの代替アセットです。文字情報を持つコンテンツの場合、文字情報だけが抽出されたものです(文字情報の他には、画像コンテンツの場合サムネイルなどがあります)。WordファイルやPowerPointファイル、PDFなど、文字情報を持つコンテンツは、Boxにアップロードされた際に自動的にテキストレプリゼンテーションが生成されて保存されています。
2.「レプリゼンテーション」を取得するAPIを理解する
レプリゼンテーションの取得は、2ステップを踏む必要があります。
(1) レプリゼンテーションをダウンロードできるURLを取得する
(2) レプリゼンテーションを取得する
(1) レプリゼンテーションをダウンロードできるURLを取得する
レプリゼンテーション情報は複数の項目から構成されるので、その中からurlを取り出し、ダウンロードURLとして整形します。
reps = client.file(file_id).get_representation_info(rep_hints)
これでFile IDがfile_idのファイルのレプリゼンテーション情報がrepsに格納されます。rep_hintsはレプリゼンテーションの形式を問わずレプリゼンテーション情報を返します。
repurl = reps[0]["info"]["url"]
これで、レプリゼンテーション情報の中からダウンロードURLが取り出されrepurlに格納されます。
url = repurl + '/content/'
ダウンロードURLは取得したい情報によって末尾に文字列を加える必要があり、テキストレプリゼンテーション本文を取得する場合は"/content"を追加します。
(2) レプリゼンテーションを取得する
ダウンロードURLが準備できたら、Requestsモジュールなどを使ってダウンロードするだけです。
これで、単一ファイルのレプリゼンテーションファイルをダウンロードするPythonスクリプトが作成できます。
次回は、フォルダ配下のファイルすべてのレプリゼンテーションファイルを取得する方法を解説します。