もっく日記

書いておぼえるためのブログ

ListingAPIをさわってみた

リクルートが公開してるListing APIをさわってみたので、より理解を深めるためにメモ。

参考サイト

ListingAPIとは

ユーザーの購入履歴などから、レコメンドリストを生成するAPI

用途

同一のAPI呼び出しに、最低60秒間をおく必要があるそうなので、 定期的な手動でのログデータ解析とかに使うのかなと思いました。 で、そのレコメンドデータをさらに他の解析と組み合わせたりもするんですかね。

試してみたこと

train_data.csvをアップして、演算にかけて、listing_list.csvをダウンロード。

感想

ユーザーの購入してない商品のなかで、APIが優先順位(スコア値)をつけてお勧めしてるみたいでした。AIの精度はわからないので様子見ですね。

手順(*curlを使える環境があることが前提です。)

公式サイトの方法です。

下準備

0-1)ログデータの用意

サンプルデータ

フォーマット

  • CSV形式
  • 英数字のみ
  • ファイル名はtrain_data.csv

下記3つの情報が必要です。

  • user_id:(ユーザーID)
  • item_id:(商品ID)
  • time_stamp:(購入時間)

0-2)APIキーの取得

公式サイトの「API KEY 発行」ボタンから「APIキー」を取得します。

ここからが実作業

1)演算対象ファイルアップロードURLの取得

下記コードの「xxxxxxxxxxxxxxxxx」を取得したAPIキーに書き換えて、ターミナルでたたく。

curl "https://api.a3rt.recruit-tech.co.jp/listing/v1/get_upload_url" \--get \--data "apikey=xxxxxxxxxxxxxxxxx"

すると

{"status": 0, "message": "ok", "result": {"url": "https://www.googleapis.com/upload/storage/v1/b/a3rt-public-api-listing/o?xxxxxxxxxx"}}

という結果がかえってくれば成功です。

"result"urlhttps://www.googleapis.com/upload/storage/v1/b/a3rt-public-api-listing/o?xxxxxxxxxx がファイルのアップロード先です。

違う結果になった場合

公式サイトの「ステータスコード / メッセージ」を参照します。

2)演算対象ファイルのアップロード

アップロード先を指定

さっき取得した「アップロード先URL」を下記コードの「yyyyyyyyyyyyyyyy」に貼り付けてターミナルでたたきます。

export UPLOAD_LOCATION='yyyyyyyyyyyyyyyy'

ログデータを指定してファイルをアップ

そのあと下記を実行。(アップするログデータを置いてる階層に移動するのをお忘れなく。)

curl -H 'Content-Type: text/plain' -X PUT --upload-file train_data.csv "$UPLOAD_LOCATION"

すると

{
 "kind": "storage#object",
 (中略)
 "etag": "COuso4L+z9MCEAE="
}

みたいな値が返って来ればアップロード完了です。

3)w2v演算処理開始

下記を実行

curl "https://api.a3rt.recruit-tech.co.jp/listing/v1/start_w2v" \--get \--data "apikey=xxxxxxxxxx"

// xxxxxxxxxx はAPIキー

↓このように返ってきたら演算開始です。演算が終了するまでしばらく待ちます。

{"status": 0, "message": "instance starts up."}

4)演算の進捗確認

w2v演算処理のステータスは下記コードで取得できます。

curl "https://api.a3rt.recruit-tech.co.jp/listing/v1/status_w2v" \--get \--data "apikey=xxxxxxxxxx"

// xxxxxxxxxx はAPIキー

下記のように返ってきたら演算完了です。

{"status": 0, "message": "SHUTDOWN instance"}

5)演算結果ファイルダウンロードURLの取得

下記を実行

curl "https://api.a3rt.recruit-tech.co.jp/listing/v1/get_download_url" \--get \--data "apikey=xxxxxxxxxx"

// xxxxxxxxxx はAPIキー

このように返ってきたら成功です。

{"status": 0, "message": "ok", "result": {"url": "https://storage.googleapis.com/a3rt-public-api-listing/xxxxxxxxxx"}}

"result"url

https://storage.googleapis.com/a3rt-public-api-listing/xxxxxxxxxx

がダウンロードURLです。

このURLをブラウザに入力すると、リスティングされたデータをダウンロードできます。