9
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?

あなたにClaudeファイルAPIの活用イメージを知ってもらう【実装例】

Last updated at Posted at 2025-12-14

はじめに

こんにちは!shuです。 :hugging:

今、LLMの活用が「ちょっと試してみようかな」から「本格的な業務適用フェーズへ移す」の段階へ移行しています!

だけど、分析結果を可視化したり、レポートを作る作業が毎回手作業で、ちょっぴり面倒だなぁと感じている方、いませんか?…この作業、自動化できたら嬉しいですよね?

この自動化の実現で試したのが、Anthropic社のClaude Files API です!

Claude Files APIとは?
Claude Files APIは、ファイルベースの処理をプログラマティックに実行できるAPIです。
従来のテキストベースのやり取りに加えて、ファイルを直接扱うことで、より実践的な業務自動化が可能になります。

ざっくり分解すると下記になります!
✅ファイルのアップロードと管理
✅大規模ドキュメントの解析
✅画像・PDFなどの多様な形式への対応
✅生成結果のダウンロードと保存

本記事では、実際の業務シナリオとして、以下の自動化フローを構築します:
HULFTログ取得 → Claude Files APIで分析 → ダッシュボード自動生成
image.png
処理の流れ:

  1. HULFT Squareでログ収集 -API Gateway経由でHULFT配信履歴ログを自動取得
  2. Claude Files APIで分析 - 配信履歴ログファイルをアップロードして分析依頼
  3. レポート自動生成 - 分析結果からダッシュボードを生成

✨手作業で数時間かかっていたレポート作成が、数分で完了します✨

動作環境・使用する製品

それでは、この自動化フローの実装を見ていきましょう!

実装手順

1.事前準備
  ①HULFT10 API Gatewayトークンの発行
  ②Claude APIトークンの発行

2.HULFT Squareで一連の処理の構築
  ③コネクションの作成
  ④スクリプトの作成
  ⑤スクリプト実行してみる

3.結果確認

1.事前準備

①HULFT10 API Gatewayトークンの発行

Bearer 認証で使うため、HULFT10 API Gatewayのアクセストークン発行を行います。まずHULFT10 API Gateway にログインします。
image.png
※HULFT API Gatewayの導入と環境構築は下記の記事をご参考ください。
https://qiita.com/sugimon/items/f48fc75d0c81071116b3

[Settings] > [ユーザー管理] から、対象のユーザーを選択します。

image.png

アクセストークンの発行を行い、控えておきます。
image.png

➁Claude APIトークンの発行

Build on the Claude Developer Platform にアクセスする。
https://claude.com/platform/api

Start Buildingをクリックします。
image.png

メールアドレスでサインインします。
image.png

支払情報を登録したらGet API Keyを押して抑えておきます。
image.png

※API Keyは一度しか表示されないので要注意を!!

2.HULFT Squareで一連の処理の構築

③コネクションの作成

HULFT10 API Gatewayのコネクションを設定しておきます。
※ご参考:HULFT Squareのコネクション

HULFT Squareのメイン画面で、【コネクション➡追加➡REST➡REST接続】を押します。
image.png

①:任意の名前を入れます。※ここで「REST接続_HULFTAPIGW」を入れました。
➁:対象ワークスペースを選択します
③:「次へ」を押します。
④:URL:http://APIGAtewayを起動しているホスト名
⑤:接続テストを行います。
⑥:問題なければ「次へ」を押します。
image.png

Claude files APIのコネクションを設定しておきます。

HULFT Squareのメイン画面で、【コネクション➡追加➡REST➡REST接続】を押します。
image.png
※一言:Claude files APIと接続するためにもHULFT SquareのREST APIのコネクタが大活躍です!改めてHULFT SquareのREST APIのコネクタの便利さを感心しております!

①:任意の名前を入れます。※ここで「REST接続_ClaudeAPI」を入れました。
➁:対象ワークスペースを選択します
③:「次へ」を押します。
④:URL:http://api.anthropic.com
⑤:接続テストを行います。
⑥:問題なければ「次へ」を押します。
image.png

④スクリプトの設定

まずスクリプトを作成するためのプロジェクトを作ります!
※ご参考:HULFT Squareのプロジェクト

HULFT Squareのメイン画面で、【プロジェクト➡追加➡名前:HULFTログ分析➡ワークスペースを選択➡次へ】を押します。
image.png

データ連携フローを作成するHULFT Squareのデザイナーを起動します。
※ご参考:HULFT Squareのデザイナー

①:【完了】を押します。
➁:プロファイルを事前に用意して選択します。
※ご参考:HULFT Squareのプロファイル
③:integrateを選択します。
④:デザイナーを起動します。
image.png

スクリプトを作っていきます。
※ご参考:HULFT Squareのスクリプト_チュートリアル

「HULFTログ分析」を右クリックして、新規作成➡スクリプトを押します。
image.png

ご参考:全体的にスクリプトはこういう感じです。
image.png

①HULFTログファイル取得のスクリプトを作ります。

【ツールパレット】➡【ネットワーク】➡【REST】➡【GET実行】
名前:HULTFlog_GET
接続先:先ほど作成したHULFT10 API Gatewayのコネクション名を選択します。
パス:/api/v1/hulft/${hulft1-host-id}/logs/sendings/list
※{hulft-host-id}は接続するHULFTのホストID。詳細と取得方法は下記をご参考。
image.png
エンコード:UTF-8
クエリパラメータ:以下のパラメータを追加します。
※ご参考:配信履歴の一覧取得クエリパラメータ

名前 備考
limit 40000 検索件数の上限。省略すると“100”が設定される
from-end-date 20200301 検索範囲の配信開始日を指定
to-end-date 20241230 検索範囲の配信終了日を指定

image.png

【JSONファイルを指定して出力スキーマを設定】をクリック、HULFT Squareのストレージに格納しているJSONファイルを指定します。
※ご参考:JSONスキーマの準備

image.png

JSONサンプルファイルは、事前にHULFTSquareストレージに保存します。
※ご参考:HULFT10 API Gateway 配信一覧取得 API レスポンスコード

{
  "records": [
    {
      "file_id": "example_file_id",                // ファイルID
      "id": {},                                      // ID
      "latest_transfer": "transfer_id",            // 転送ID
      "latest_process": "process_id",              // 処理ID
      "comment": "sample comment",                  // コメント
      "status": {                                   // 実行結果
        "code": 0,                                  // 完了コード
        "detail": 0,                                // 詳細コード
        "description": "description text",         // 内容
        "measure": "measure text"                   // 対処
      },
      "file": {                                     // 配信ファイル
        "name": "filename.txt"                      // ファイル名
      },
      "transferred": {                              // 転送済みファイル情報
        "rows": 100,                                // 転送済みレコード件数
        "size": 1024                                // 転送済みデータサイズ(bytes)
      },
      "code_conversion": {                          // コード変換
        "side": "sending"                           // コード変換側
      },
      "communication": {                            // 接続情報
        "host": "example.com",                      // ホスト名
        "ip_version": "ipv4"                        // IPバージョン
      },
      "rate": 1.5,                                  // 転送レート
      "block_length": 512,                          // 転送ブロック長
      "block_count": 10,                            // 転送ブロック数
      "datetime": {                                 // 日時情報
        "accept": "2023-01-01T00:00:00Z",          // 受付日時
        "start": "2023-01-01T00:01:00Z",           // 開始日時
        "end": "2023-01-01T00:02:00Z"              // 終了日時
      },
      "compression": {                              // 圧縮情報
        "type": "none",                            // 圧縮方式
        "ratio": 1.0                                // 圧縮率
      },
      "database_id": "db_id",                      // 連携DBID
      "security": {                                 // セキュリティ
        "encryption_scheme": "none"                // 暗号化種別
      },
      "message": {                                  // メッセージ
        "short": ["msg1", "msg2"],                 // メッセージ05
        "long": ["long msg1", "long msg2"]        // 拡張メッセージ01
      },
      "windows": {                                  // Windows環境管理情報
        "connection_type": "lan"                   // 接続形態
      },
      "job_id": "job123"                           // ジョブID
    }
  ]
}

上記のJSONファイルを指定すると、対象アイコンのスキーマに反映するようになります。
image.png

【ツールパレット】➡【ファイル】➡【Excel】➡【書込み】
名前:excel_sheet
ファイル:参照をクリックして、書込み先のファイルパスを指定します。
シート名:対象シートを指定します。
列名: FILEID | コメント | 転送状態 | ファイル名 | 転送サイズ | ホスト名 | 配信日
image.png

「1行目に列名を挿入」にチェック入れます。
image.png

【HULFTlog_Get】と【excel_write】の間にマッピングを追加します。
【プロセスフローとデータフローを引く】、【マッピングを追加する】に、
チェックを入れます。

image.png
※この以後マッピングを追加する手順を省略させて頂きます!

Mapperでの設定は下記!
※ご参考:HULFT SquareのMapper

HULFTlog_GET (入力データ) excel_write (出力データ)
file_id FILEID
comment コメント
code 転送状態
name ファイル名
host ホスト名
start 配信日

image.png

➁Claudeへログファイルアップロードのスクリプトを作ります。

【ツールパレット】➡【ネットワーク】➡【REST】➡【POST実行】
名前:file_upload
接続先:先ほど作成したClaudeAPIのコネクション名を選択します。
パス:/v1/files
image.png

データ入力先:データ
データ形式:マルチパートフォーム
マルチパートフォーム設定:名前➡file、種類➡ファイル
image.png

リクエスト設定ヘッダの設定
image.png

名前
anthropic-version 2023-06-01
x-api-key #Claud APIキー
anthropic-beta files-api-2025-04-14

【JSONファイルを指定して出力スキーマを設定】をクリック、HULFT Squareのストレージに格納しているJSONファイルを指定します。
image.png
JSONサンプルファイルは、事前にHULFTSquareストレージに保存します。
※ご参考:Claude files API_ファイルアップロードレスポンスコード

{
  "id": "file_011CNha8iCJcU1wXNR6q4V8w",
  "type": "file",
  "filename": "document.pdf",
  "mime_type": "application/pdf",
  "size_bytes": 1024000,
  "created_at": "2025-01-01T00:00:00Z",
  "downloadable": false
}

マッピングの設定は下記!
【ツールパレット】➡【基本】➡【単一行文字列定数ロジック】を2つを追加します。名前は任意に設定します。

image.png

単一行文字列定数ロジックの設定は下記!

スキーマ   
Path path
minetype application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

※Claudeにアップロードするファイルはexcelシートのため、minetypeは↑。
 PDFの場合の"mime_type": "application/pdf"

image.png

③ログファイルの解析・可視化処理のスクリプトを作ります。

【ツールパレット】➡【ネットワーク】➡【REST】➡【POST実行】
名前:file_Analyze
接続先:先ほど作成したClaudeAPIのコネクション名を選択します。
パス:/v1/messages
image.png

ヘッダの設定
image.png

リクエスト設定ヘッダの設定

名前 備考
x-api-key #Claud APIキー
anthropic-version 2023-06-01 モデルバージョン
anthropic-beta code-execution-2025-08-25,files-api-2025-04-14 Files API とコード実行を一緒に使用するには、2 つのベータヘッダーが必要
content-type application/json

リクエスト設定ヘッダの設定

名前 bash_code_execution_result, text_editor_code_execution_result

【リクエスト設定】
【JSONファイルを指定して出力スキーマを設定】をクリック、HULFT Squareのストレージに格納しているJSONファイルを指定します。

JSONサンプルファイルは、事前にHULFTSquareストレージに保存します。
※ご参考:コード実行で分析するリクエストコード
image.png

Jsonファイルのサンプルコードは下記です!

{
    "model": "claude-sonnet-4-5",
    "max_tokens": 4096,
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Analyze this CSV data"},
                {"type": "container_upload", "file_id": "file_abc123"}
            ]
        }
    ],
    "tools": [
        {
            "type": "code_execution_20250825",
            "name": "code_execution"
        }
    ]
}

【レスポンス設定】
【JSONファイルを指定して出力スキーマを設定】をクリック、HULFT Squareのストレージに格納しているJSONファイルを指定します。

JSONサンプルファイルは、事前にHULFTSquareストレージに保存します。
※ご参考:コード実行で分析するレスポンスコード
image.png

Jsonファイルのサンプルコードは下記です!
※コード量が多くて非表示にしています!

📄 JSONコードを表示(クリックで展開)
{
  "id": "msg_01K1V5WEJW1SmALEiUKs25Uf",
  "container": {
    "id": "container_011CTu5ygdBchEoaR2V3RK3x",
    "expires_at": "2025-10-08T05:20:10.535226Z"
  },
  "content": [
    {
      "type": "text",
      "text": "HULFTログのダッシュボードファイルを確認して出力いたします。"
    },
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01TZAuE82K6vshCCDh8QaSLh",
      "name": "bash_code_execution",
      "input": {
        "command": "\n# まず、既存のダッシュボードファイルが存在するか確認\nif [ -f /tmp/hulft_dashboard.html ]; then\n    echo \"ダッシュボードファイルが見つかりました\"\n    ls -lh /tmp/hulft_dashboard.html\nelse\n    echo \"ダッシュボードファイルが見つかりません\"\nfi\n\n# dashboard_data.jsonも確認\nif [ -f /tmp/dashboard_data.json ]; then\n    echo \"分析データファイルが見つかりました\"\n    ls -lh /tmp/dashboard_data.json\nelse\n    echo \"分析データファイルが見つかりません\"\nfi\n"
      }
    },
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01TZAuE82K6vshCCDh8QaSLh",
      "content": {
        "type": "bash_code_execution_result",
        "stdout": "ダッシュボードファイルが見つかりません\n分析データファイルが見つかりません\n",
        "stderr": "",
        "return_code": 0
      }
    },
    {
      "type": "text",
      "text": "前回のファイルが見つからないようです。新しくアップロードされたHULFTログファイルから分析とダッシュボードを作成いたします。"
    },
    {
      "type": "server_tool_use",
      "id": "srvtoolu_014XDJwq4BzUahz14qduQZQu",
      "name": "bash_code_execution",
      "input": {
        "command": "\n# アップロードされたファイルを確認\nls -lh $INPUT_DIR/\n"
      }
    },
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_014XDJwq4BzUahz14qduQZQu",
      "content": {
        "type": "bash_code_execution_result",
        "stdout": "total 211K\n-rw-r--r-- 1 root root 211K Oct  8 04:18 HULFTログ_4年分.xlsx\n",
        "stderr": "",
        "return_code": 0
      }
    },
    {
      "type": "text",
      "text": "それでは、HULFTログファイルを分析してダッシュボードを作成します。"
    },
    {
      "type": "server_tool_use",
      "id": "srvtoolu_015inTVm9DcoPY4ejBZPRRJR",
      "name": "text_editor_code_execution",
      "input": {
        "command": "create",
        "path": "/tmp/analyze_hulft_log.py",
        "file_text": "import pandas as pd\nimport json\nimport os\nfrom datetime import datetime\n\n# HULFTログファイルを読み込む\ninput_file = os.path.join(os.environ['INPUT_DIR'], 'HULFTログ_4年分.xlsx')\ndf = pd.read_excel(input_file)\n\n# データの基本情報を確認\nprint(\"データの形状:\", df.shape)\nprint(\"\\nカラム名:\")\nprint(df.columns.tolist())\nprint(\"\\n最初の数行:\")\nprint(df.head())\nprint(\"\\nデータ型:\")\nprint(df.dtypes)\nprint(\"\\n基本統計:\")\nprint(df.describe())\n\n# 日付カラムを特定して変換\ndate_columns = []\nfor col in df.columns:\n    if df[col].dtype == 'object':\n        try:\n            pd.to_datetime(df[col], errors='raise')\n            date_columns.append(col)\n            df[col] = pd.to_datetime(df[col])\n        except:\n            pass\n    elif 'datetime' in str(df[col].dtype):\n        date_columns.append(col)\n\nprint(\"\\n日付カラム:\", date_columns)\n\n# データの詳細を確認\nprint(\"\\nユニークな値の数:\")\nfor col in df.columns:\n    print(f\"{col}: {df[col].nunique()}\")\n"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_015inTVm9DcoPY4ejBZPRRJR",
      "content": {
        "type": "text_editor_code_execution_create_result",
        "is_file_update": false
      }
    },
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01NepczEH1cf99h4RmJyyZrf",
      "name": "bash_code_execution",
      "input": {
        "command": "cd /tmp && python analyze_hulft_log.py"
      }
    },
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01NepczEH1cf99h4RmJyyZrf",
      "content": {
        "type": "bash_code_execution_result",
        "stdout": "データの形状: (5628, 9)\n\nカラム名:\n['ファイルID', 'コメント', '転送状態', 'ファイル名', '転送サイズ', '転送形式', 'ホスト名', '転送速度', '配信日']\n\n最初の数行:\n                                       ファイルID    コメント  ...    転送速度        配信日\n0  INVENTORY_STATUS_FORJUNE_SPEEDDISTRIBUTION  商品在庫状況  ...  2 MB/s  3/18/2020\n1                                      FILE05     NaN  ...  2 MB/s  3/18/2020\n2          20240616_INVOICE_SPEEDDISTRIBUTION     請求書  ...  2 MB/s  3/18/2020\n3   20240616_PURCHASE_ORDER_SPEEDDISTRIBUTION     発注書  ...  2 MB/s  3/18/2020\n4     20240616_DELIVERYNOTE_SPEEDDISTRIBUTION     NaN  ...  2 MB/s  3/18/2020\n\n[5 rows x 9 columns]\n\nデータ型:\nファイルID    object\nコメント      object\n転送状態      object\nファイル名     object\n転送サイズ     object\n転送形式      object\nホスト名      object\n転送速度      object\n配信日       object\ndtype: object\n\n基本統計:\n                                            ファイルID  コメント  ...   転送速度         配信日\ncount                                         5628  3439  ...   5628        5628\nunique                                          24     5  ...    195          76\ntop     INVENTORY_STATUS_FORJUNE_SPEEDDISTRIBUTION   請求書  ...  1MB/s  12/19/2021\nfreq                                           493   922  ...   1792         640\n\n[4 rows x 9 columns]\n\n日付カラム: []\n\nユニークな値の数:\nファイルID: 24\nコメント: 5\n転送状態: 4\nファイル名: 42\n転送サイズ: 5\n転送形式: 1\nホスト名: 8\n転送速度: 195\n配信日: 76\n",
        "stderr": "日付変換に関する警告",
        "return_code": 0
      }
    },
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01FvCYoC265JHEzBk9D7s2Jd",
      "name": "text_editor_code_execution",
      "input": {
        "command": "create",
        "path": "/tmp/create_dashboard.py",
        "file_text": "import pandas as pd\nimport json\nimport os\nfrom datetime import datetime\nimport re\n\n# HULFTログファイルを読み込む\ninput_file = os.path.join(os.environ['INPUT_DIR'], 'HULFTログ_4年分.xlsx')\ndf = pd.read_excel(input_file)\n\n# 配信日を日付型に変換\ndf['配信日'] = pd.to_datetime(df['配信日'])\n\n# 年月を追加\ndf['年月'] = df['配信日'].dt.to_period('M').astype(str)\ndf['年'] = df['配信日'].dt.year\ndf['月'] = df['配信日'].dt.month\ndf['曜日'] = df['配信日'].dt.day_name()\n\n# 転送速度を数値に変換(MB/s単位)\ndef parse_speed(speed_str):\n    if pd.isna(speed_str):\n        return 0\n    speed_str = str(speed_str).strip().upper()\n    speed_str = speed_str.replace(' ', '')\n    match = re.match(r'([\\d.]+)\\s*(MB|KB|GB)?', speed_str)\n    if match:\n        value = float(match.group(1))\n        unit = match.group(2) if match.group(2) else 'MB'\n        if unit == 'KB':\n            value = value / 1024\n        elif unit == 'GB':\n            value = value * 1024\n        return value\n    return 0\n\ndf['転送速度_数値'] = df['転送速度'].apply(parse_speed)\n\n# 転送サイズを数値に変換(MB単位)\ndef parse_size(size_str):\n    if pd.isna(size_str):\n        return 0\n    size_str = str(size_str).strip().upper()\n    size_str = size_str.replace(' ', '')\n    match = re.match(r'([\\d.]+)\\s*(MB|KB|GB)?', size_str)\n    if match:\n        value = float(match.group(1))\n        unit = match.group(2) if match.group(2) else 'MB'\n        if unit == 'KB':\n            value = value / 1024\n        elif unit == 'GB':\n            value = value * 1024\n        return value\n    return 0\n\ndf['転送サイズ_数値'] = df['転送サイズ'].apply(parse_size)\n\n# 分析データを作成\nanalysis = {\n    'summary': {\n        'total_records': int(len(df)),\n        'date_range': {\n            'start': df['配信日'].min().strftime('%Y-%m-%d'),\n            'end': df['配信日'].max().strftime('%Y-%m-%d')\n        },\n        'total_file_ids': int(df['ファイルID'].nunique()),\n        'total_hosts': int(df['ホスト名'].nunique()),\n        'total_transfer_size_mb': float(df['転送サイズ_数値'].sum()),\n        'avg_transfer_speed': float(df['転送速度_数値'].mean())\n    },\n    'transfer_status': df['転送状態'].value_counts().to_dict(),\n    'monthly_trend': df.groupby('年月').agg({\n        'ファイルID': 'count',\n        '転送サイズ_数値': 'sum',\n        '転送速度_数値': 'mean'\n    }).reset_index().to_dict('records'),\n    'yearly_summary': df.groupby('年').agg({\n        'ファイルID': 'count',\n        '転送サイズ_数値': 'sum',\n        '転送速度_数値': 'mean'\n    }).reset_index().to_dict('records'),\n    'top_file_ids': df['ファイルID'].value_counts().head(10).to_dict(),\n    'host_distribution': df['ホスト名'].value_counts().to_dict(),\n    'transfer_format': df['転送形式'].value_counts().to_dict(),\n    'comment_distribution': df['コメント'].value_counts().dropna().to_dict(),\n    'file_size_distribution': df['転送サイズ'].value_counts().to_dict(),\n    'speed_stats': {\n        'min': float(df['転送速度_数値'].min()),\n        'max': float(df['転送速度_数値'].max()),\n        'mean': float(df['転送速度_数値'].mean()),\n        'median': float(df['転送速度_数値'].median())\n    }\n}\n\n# JSONファイルとして保存\nwith open('/tmp/dashboard_data.json', 'w', encoding='utf-8') as f:\n    json.dump(analysis, f, ensure_ascii=False, indent=2)\n\nprint(\"分析データを /tmp/dashboard_data.json に保存しました\")\n"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01FvCYoC265JHEzBk9D7s2Jd",
      "content": {
        "type": "text_editor_code_execution_create_result",
        "is_file_update": false
      }
    }
  ],
  "model": "claude-sonnet-4-5-20250929",
  "role": "assistant",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 114723,
    "output_tokens": 8466
  }
}

マッピングの設定は下記!
”単一文字列”ロジックの設定

出力データ  備考
model claude-sonnet-4-5 モデル
max_tokens 8192 最大TOKEN
type number *mapperの仕様
type array *mapperの仕様
role user
type text *mapperの仕様
type container_upload コンテンツブロックを使用してメッセージ内でファイルを参照
file_id ${var_fileid}
type object *mapperの仕様
type code_execution_20250825 ツールバージョン
type code_execution ツール

”複数行文字列”ロジックの設定
プロンプト:

HULFT10ログを分析し、日本語のタブ切り替え式ダッシュボードをHTMLで生成してください。
【要件】

  • 転送処理の傾向・ボトルネックを可視化
  • 異常検知と障害予防に役立つ洞察を提供
  • トークン制限内で完結するコンパクトな設計

image.png

マッピングの詳細設定を下記をご参考ください
※一見複雑ですが、とてもシンプルです!
image.png

image.png

image.png

④可視化結果の取得のスクリプトを作ります。

【ツールパレット】➡【ネットワーク】➡【REST】➡【GET実行】
名前:file_Download
接続先:先ほど作成したClaudeAPIのコネクション名を選択します。
パス:v1/files/${var_output_fileid}/content
image.png

ダウンロードされるファイルの格納先を設定します。(HULFT Squareのストレージ)
ファイルパス:/PS3/HULFT10/HULFTダッシュボード.html
image.png

【ヘッダ設定】
image.png
リクエストヘッダの設定

名前
x-api-key $Claud APIキー
anthropic-version 2023-06-01
anthropic-beta files-api-2025-04-14

レスポンスヘッダの設定

名前 Content-Type: application/octet-stream

マッピングの設定は下記!
生成されたファイルIDをダウンロードするため、変数に入れます。
image.png

⑤スクリプトを実行してみる

下記のテスト実行ボタンをクリックして、正常に完了したを確認!
image.png

3.生成結果の確認

生成されたhtmlファイルをダウンロードします。
image.png

開くと下記のような動的なダッシュボードが出てきます!

image.png
image.png
image.png
image.png
image.png

最後に

ここまでお付き合いいただき、心から感謝します!:hugging:

今回の実装を通じて感じたのは、データ連携とAI/LLMの組み合わせが、レポート作成の自動化に非常に相性が良いということです。

従来は以下のような流れでした:

  • ログを手動で収集
  • Excelでグラフ作成
  • PDFレポートに手作業でまとめる

それが今回、ファイル転送基盤とFiles APIを組み合わせることで、データ収集から可視化まで一気通貫で自動化できました。

このデータ連携 × AI/LLMのアプローチは、ログ分析以外にも様々な業務で応用できそうです。✨

HULFT Squareで試してみる

本記事で紹介した仕組みは、HULFT Squareを使えばすぐに試せます。データ収集の基盤が整っている方は、ぜひClaude Files APIとの連携を検討してみてください。


この記事が役に立ったら、「いいね!」やコメントをいただけると嬉しいです。
皆さんの業務自動化の取り組みもぜひ教えてください!

9
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
9
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?