見出し画像

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スクリプトが作成できます。

次回は、フォルダ配下のファイルすべてのレプリゼンテーションファイルを取得する方法を解説します。


この記事が気に入ったらサポートをしてみませんか?