0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

watsonx.ai Software版 NotebookでアップロードしたData Assetはどこにあり、どう利用するのか調べてみた

0
Posted at

1. はじめに

Notebook で Data Asset (資産) をアップロードしたものの、

import os

print(os.getcwd())
print(os.listdir("."))

を実行してもファイルが見つからず、ファイルの配置場所がわかりませんでした。

そこで Data Asset がどこに配置されるのかを調査しました。

2. Notebook の作業ディレクトリを確認する

import os

print(os.getcwd())
結果
/home/wsuser/work

Notebook の作業ディレクトリは

/home/wsuser/work

でした。

3. Data Asset は自動では作業ディレクトリに配置されない

以下を実行したところ、

os.listdir(".")
結果
[]

となりました。

Data Asset にアップロードしたファイルはNotebookの作業ディレクトリ

/home/wsuser/work

には自動配置されないようです。

4. Data Asset の保存場所

Assets にアップロードした PDF ファイル (例: sample.pdf) の保存場所を調査するため、以下のコマンドを実行しました。

!find / -name "*.pdf" 2>/dev/null
結果
:
/project_data/data_asset/sample.pdf

が見つかり、

/project_data/data_asset/

配下に配置されていることがわかりました。

例えば、sample.pdfの場合、

/project_data/data_asset/sample.pdf

としてアクセスできます。

5. Notebookからの利用方法

方法1: Data Asset を直接利用する

source_filename = "/project_data/data_asset/sample.pdf"

として利用できます。

方法2: Data Asset を Notebook にダウンロードする

もう一つの方法として、

client.data_assets.download(
    asset_id="...",
    filename="sample.pdf"
)

を利用できます。

結果
Successfully saved data asset content to file: 'sample.pdf'

'/home/wsuser/work/sample.pdf'

実行後、Notebook の作業ディレクトリを確認すると、

import os

print(os.getcwd())
print(os.listdir("."))
結果
/home/wsuser/work
['sample.pdf']

となっており、ファイルは

/home/wsuser/work/sample.pdf

に保存されています。

6. それぞれの方法のメリット・デメリット

方法1: /project_data/data_asset/ を直接参照する方法

Data Asset をそのまま利用する方法です。

source_filename = "/project_data/data_asset/sample.pdf"

メリット

  • ダウンロード不要
  • Data Asset を直接参照できる
  • 余分なコピーが発生しない
  • Notebook 上で手軽に利用できる

デメリット

  • /project_data/data_asset/ という配置場所を知っている必要がある
  • Notebook 環境に依存する
  • 後続処理でファイル名にパスが含まれる場合がある

方法2: client.data_assets.download() を利用する方法

Data Asset を Notebook の作業ディレクトリにダウンロードして利用する方法です。

client.data_assets.download(
    asset_id="...",
    filename="sample.pdf"
)

メリット

  • Asset ID がわかっていれば取得できる
  • Data Asset がどこに配置されているかを意識する必要がない
  • Notebook の作業ディレクトリ (/home/wsuser/work) に取得できる
  • 後続処理でファイル名をシンプルに扱える

デメリット

  • ダウンロード処理が必要
  • ファイルのコピーが発生する
  • 保存先の管理が必要

7. まとめ

今回の調査で次のことがわかりました。

項目 場所
Notebook 作業ディレクトリ /home/wsuser/work
Asset にアップロードしたファイルの参照先 /project_data/data_asset
client.data_assets.download() の保存先 /home/wsuser/work

Data Asset は自動的に Notebook の作業ディレクトリには配置されませんが、/project_data/data_asset/ 配下から直接参照できます。また、client.data_assets.download() を利用して Notebook の作業ディレクトリへダウンロードして利用することもできます。
用途に応じて、コピー不要な直接参照方式と、扱いやすいファイル名で利用できるダウンロード方式を使い分けることができます。

今回の検証では、Text Extraction の入力ファイルとして利用する場合、方法1・方法2のどちらでも問題なく利用できました。ただし、後続処理でファイル名をシンプルに扱いたい場合は、方法2を選択した方が扱いやすいと感じました。

補足: document_reference.write() で利用する場合

それぞれの方法で sample.pdf ファイルを document_reference.write() を使ってICOSにアップロードできることを確認しました。document_reference.write() に渡す source_filename が異なります。

方法1

from ibm_watsonx_ai.helpers import DataConnection, S3Location

source_filename = "/project_data/data_asset/sample.pdf"
document_reference = DataConnection(
    connection_asset_id=connection_asset_id,
    location=S3Location(bucket=bucket_name, path=source_filename)
)

document_reference.set_client(client)
document_reference.write(source_filename)

ICOS
image.png

方法2

from ibm_watsonx_ai.helpers import DataConnection, S3Location

source_filename = "sample.pdf"
document_reference = DataConnection(
    connection_asset_id=connection_asset_id,
    location=S3Location(bucket=bucket_name, path=source_filename)
)

document_reference.set_client(client)
document_reference.write(source_filename)

ICOS
image.png

今回の環境では、document_reference.write() に渡した source_filename の値が、ICOS 上のオブジェクト名に反映されることを確認しました。

そのため、

  • /project_data/data_asset/sample.pdf を指定した場合は、 project_data/data_asset/sample.pdf
  • sample.pdf を指定した場合は、 sample.pdf

として保存されました。

検証環境

  • IBM Software Hub 5.3.1 と 5.4.0 で確認
  • Runtime 25.1 on Python 3.12
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?