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"
:url
の
https://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をブラウザに入力すると、リスティングされたデータをダウンロードできます。