n8nでせどり商品選定の自動化②(AI Agentによる商品選定)

n8n

はじめに

今回はOpenAIを用いたせどり対象商品の選定を、n8nで実行する方法を紹介します。
OpenAIの有料プラン(5ドルの課金)が必要になります。

本手法では下記のn8nのノードを使用します。

ノード名 説明・役割 主な用途・特徴
Read/Write Files from Disk ローカルディスクからファイルの読み書きを行うノード。ファイルの保存や読み込みが可能。 CSV, JSON, テキストファイルなどの入出力・データ保存
Extract from File ファイルから特定のデータや内容を抽出するノード。例えば、テキスト、CSV、PDFなどから情報を取り出す。 ファイル内容の抽出・必要な部分のみデータ取得
AI Agent 指定したAIエージェント(AIサービス)に指示を送り、結果を受け取るノード。ChatGPTなどのAIと連携できる。 生成AIへの問い合わせ・自動応答や要約
OpenAI Chat Model OpenAIのGPT系AIチャットモデルと直接やり取りするノード。テキスト生成や会話を自動化できる。 ChatGPT APIとの連携・文章生成・要約・翻訳など
Code JavaScriptで任意のコードを実行するノード。柔軟なデータ加工や独自ロジックの実装が可能。 データ変換、カスタム処理、複雑な条件分岐
Convert to File 任意のデータ(JSON、テキストなど)をファイル形式(例:CSVやPDF)に変換して出力するノード。 データのファイル化、レポート出力、外部サービス連携用

今回の作成箇所

構築予定のn8nのワークフローの全体像は下記となります。

今回の作成箇所は下記となります。

ワークフローを実行すると下記のようなCSVファイルを出力することができます。

<サンプル画像>

方法の概要

紹介するワークフローの概要は下記となります。

  1. OpenAIでアカウントを作成
  2. OpenAIのAPI キーを作成
  3. 作成したOpenAIのAPI キーをn8nに登録
  4. 登録したAPIキーの動作確認
  5. プロンプト(指示文)の用意
  6. プロンプトを読み込むノードを作成
  7. AIが選定した商品候補をCSVファイルに保存するノードを作成

OpenAIでアカウントを作成

AI AgentのノードからOpenAIへのプロンプト送信は、OpenAIのAPIを利用します。
APIを利用するためにOpenAIにアカウントを作成します。

1.OpenAIにログインします。
https://auth.openai.com/log-in

2.いずれかの方法でアカウントを作成してください

3.アカウントの作成を終えて、OpenAIにログインすると下記のページが表示されます。

4.APIを利用するためには課金が必要です。
課金の支払い方法はクレジットカードとなります。
右上の「Settings」をクリックします。

5.左フレームの「Billing」→「Payment methods」→「Add payment method」の順にクリックします。

6.カード情報を入力して「Add payment method」をクリックします。

7.登録に成功すると「Payment methods」にカード情報が登録されます。

8.事前に課金します。
「Billing」→「Overview」→「Add credit balance」の順にクリックします。

9.課金の最低金額は「$5」です。
金額を入力したあと「Payment methods」で先ほど登録したカード情報を選択します。
「Continue」をクリックします。

10.Credit balanceに「$5.00」が表示されます。

OpenAIのアカウントの作成は完了です。

OpenAIのAPIキーの作成

1.OpenAIのAPIキーを作成します。
左フレームの「API keys」→「Create new secret key」の順にクリックします。

2.APIキーを作成するための情報を入力します。
入力が終わったら「Create secret key」をクリックします。

  • Owner by
    「You」を選択します。
    「Service account」は複数人で1つのAPIキーを使用する場合に選択します。
  • Name Optional
    キーの名前を入力します。
    名前は任意のローマ字を設定してください。
  • Project
    「Default Project」を選択します。
  • Permissions
    細かい権限設定を行い場合は「Registered」あるいは「Read Only」を選択します。

3.APIキーが作成されたら、必ずAPIキーをメモしてください。
  APIキーは生成後に一度しか表示されません
必ずコピーして安全な場所に保存してください。
コピーが終わったら「Done」をクリックします。

OpenAIのAPIキーの作成は以上です。

作成したOpenAIのAPI キーをn8nに登録

作成したOpenAIのAPIキーをAI Agentノードで利用するためには、n8nにAPIキーを登録しておく必要があります。

1.「Create Workflow」→「Create Credential」をクリックします。

2.検索フォームから「Open」と入力し「OpenAi」を選択し「Continue」をクリックします。

3.「API key」に作成したAPIキーを入力し「Save」をクリックします。

作成したAPIキーのn8nへの登録は完了です。

登録したAPIキーの動作確認

AI Agentノードで登録したAPIキーを利用できるか動作確認を行います。

1.「Create Workflow」をクリックします。

2.「Add first step…」をクリックします。

3.検索フォームで「AI Agent」を入力し「AI Agent」をクリックします。

4.下部にある「Create Model*」の「+」をクリックします。

5.入力フォームに「OpenAI」を入力し「Open AI Chat Model」をクリックします。

6.Modelのプルダウンから「gpt-3.5-turbo」を選択し左上の「←Back to canvas」をクリックします。
動作確認となるのでModelは何を選択しても構いません。
ここでは最も利用料が低い「gpt-3.5-turbo」を選択しています。
モデルを選択したら左上にある「←Back to canvas」をクリックします。

7.「Type Message」に何か質問を入力し「➤」をクリックし、OUTPUTに回答が返ってくるとこを確認します。

OUTPUTが返ってきたら、登録したAPIキーの動作確認は完了です。

プロンプト(指示文)の用意

AI AgentノードのINPUTはChat以外にも対応しています。
プロンプト(指示文)を用意し、そのプロンプトをINPUTとして扱うことができます。

1.Cドライブ直下に「n8n」フォルダを作成します。

2.「n8n」フォルダ内に「AIへのメッセージ.txt」を作成します。
ファイルパス:”C:\n8n\AIへのメッセージ.txt”

3.「AIへのメッセージ.txt」に下記の内容を記載します。

あなたはプロのせどりコンサルタントです。
以下の条件を満たす商品カテゴリの候補を**JSON配列形式**で作成してください。

【条件】
- 回転率が高く、Amazonで実績のある商品カテゴリを提案する
- 各カテゴリに具体的な商品ジャンル例を含める
- 各ジャンルにおすすめの商品名を提示する
- 日本語の「キーワード」と、その英語版「keyword」を両方記載する
- 仕入れ参考価格とAmazon販売参考価格を含め、利益率は20%前後を目安にする
- JSON配列に仕入れ参考価格とAmazon販売参考価格は含めない
- 検索数は一律「5」とする
- コメントには簡単な用途説明を記載する

【出力形式】
下記の各項目をもつJSON配列で10件出力してください。
[
  {
    "No": 1,
    "カテゴリ": "家電",
    "キーワード": "iPhone 11 64GB ブラック MWLT2J/A",
    "keyword": "iPhone 11 64GB ブラック MWLT2J/A",
    "検索数": 5,
    "コメント": "人気のスマートフォン"
  },
  ...
]

プロンプトの用意は完了です。

プロンプトを読み込むノードを作成

用意したプロンプトを読み込み、その内容をAI AgentノードにINPUTするワークフローを作成します。

1.現状のAI AgentノードへのINPUTはChatになっています。ChatからのINPUTを削除します。
「When chat messge received」を選択しゴミ箱アイコンをクリックします。

2.「AIへのメッセージ.txt」を読み込むノードを作成します。
キャンバスの右上にある「+」をクリックし検索フォームに「Read/Write」を入力します。
「Read/Write Files from Disk」をクリックします。

3.Actionsタブの「Read File(s) From Disk」をクリックします。

4.「File(s) Selector」に「C:/n8n/AIへのメッセージ.txt」を入力します。
  !!注意!!
  フォルダやファイルの区切りは「\」ではなく「/」です。

5.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

6.読み込んだファイルを処理するノードを作成します。
「Read/Write Files from Disk」の右から出ている「+」をクリックし検索フォームに「Extract」を入力します。
「Extract from File」をクリックします。

7.「Actions」から「Extract from text file」をクリックします。

8.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

9.「Extract from File」の赤枠をドラックして「AI Agent」の赤枠にドロップして線を繋げます。

10.「AI Agent」で読み込んだファイルのデータを処理できるように設定します。
「Source for Prompt(User Message)」を「Define below」に変更します。

11.「Prompt(User Message)」に「{{ $json.data }}」を入力します。

12.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

プロンプトを読み込むノードの作成は完了です。

AIが選定した商品候補をCSVファイルに保存するノードを作成

1.AIが選定した商品候補をCSVファイルに保存します。
商品候補のデータはJSON形式で出力されています。
CSVファイルに保存する際、データを処理しやすくするために、一度データを配列に格納します。
「AI Agent」の右から出ている「+」をクリックし検索フォームに「Code」を入力します。
「Code」をクリックします。

2.「JavaScript」に下記の内容を貼り付けます。

// AI Agentから受け取ったoutput(JSON文字列)をオブジェクト配列に変換
let jsonStr = $json.output; // または $json['generations'][0][0]['text'] の場合も
let data = [];

try {
  data = JSON.parse(jsonStr);
} catch(e) {
  data = [];
}

3.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

4.配列データをファイルに保存します。
「AI Agent」の右から出ている「+」をクリックし検索フォームに「Convert」を入力します。
「Convert to File」をクリックします。

5.「Convert to CSV」をクリックします。

6.「Add option」で「Delimiter」と「File Name」をクリックします。
「File Name」には「検索条件.csv」を入力します。

7.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

8.「Convert to File」の右から出ている「+」をクリックし検索フォームに「Write」を入力します。
「Read/Write Files from Disk」をクリックします。

9.「Write File to Disk」をクリックします。

10.「Operation」を「Write File to Disk」に変更します。

11.「File Path and Name」に「C:/n8n/検索条件.csv」を入力します。
!!注意!!
フォルダやファイルの区切りは「\」ではなく「/」です。

12.「Execute step」をクリックしOUTPUTが下記のように表示されることを確認します。
読み込みに成功したら画面右上の「←Back to canvas」をクリックします。

13.「Execute workflow」をクリックし全てのノードで「✓」が入り、正常に実行できたことを確認します。

14.「C:¥n8n¥検索条件.csv」を開き、AIが選定した商品候補が記載されていることを確認します。

<サンプル画像>

以上です。

コメント

タイトルとURLをコピーしました