こんにちは!合同会社ジセダイ代表の佐藤です。

前回の記事では、n8nとChatGPT APIを使用して、NEWS APIから特定のニュースを自動で取得し、Slackに通知するアプリケーションの概要についてお伝えしました。今回は、そのアプリケーションを実際に構築するための環境構築方法について解説します。具体的には、Dockerを使用したn8nのセットアップ方法と、ChatGPT APIおよびNEWS API、Slack Bot Tokenの設定方法について詳しく説明していきます。

前提条件

本記事では、以下の前提条件があります。

  • Dockerがすでにインストールされていること
  • 基本的なコマンドラインの操作ができること

Dockerのインストール方法については、Docker公式サイトを参照してください。

Dockerを使用したn8n環境構築

n8nは、ノーコードワークフローオートメーションツールで、さまざまなサービスを連携させることができます。ここでは、Docker Composeを使用してn8nを簡単に構築する方法を紹介します。

Docker Composeファイルの作成

まず、新しいディレクトリを作成し、その中にdocker-compose.ymlファイルを作成します。

mkdir n8n-chatgpt-app
cd n8n-chatgpt-app
touch docker-compose.yml

次に、お好みのエディタでdocker-compose.ymlファイルを開き、以下の内容を記述します。

services:
  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
      # ホスト側のポート番号を変更したい場合
      # - "8080:5678"
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - NODE_ENV=production
      - WEBHOOK_URL=http://localhost:5678/
      # タイムゾーンを日本に設定
      - GENERIC_TIMEZONE=Asia/Tokyo
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

このDocker Composeファイルでは、以下の設定を行っています:

  1. 公式のn8nイメージを使用
  2. ポート5678をホストマシンに公開
  3. タイムゾーンを日本に設定
  4. データの永続化のためのボリュームを設定

n8nの起動

準備ができたら、以下のコマンドでn8nを起動します:

docker-compose up -d

正常に起動すると、http://localhost:5678でn8nのWebインターフェースにアクセスできるようになります。

ChatGPT APIの設定方法

n8nでChatGPT APIを使用するためには、OpenAIのAPIキーが必要です。APIキーの取得方法と設定方法について説明します。

OpenAIアカウントの作成とAPIキーの取得

OpenAIのウェブサイトにアクセスします。その後、「ログイン」をオンマウスし、「API プラットフォーム」を選択します。

ログインを行います。アカウントを所有していない場合、アカウントを作成します。
その後、ページ右上の歯車マークをクリックします。左メニューが表示されるので、「API Keys」をクリックします。その後、「+ Create new secret key」をクリックします。

Create new secret keyで、Nameなど、必要情報を入力します。
PermissionsはここではAllとします。必要に応じて、スコープを設定するなどを行ってください。

APIキーが発行されるので、コピーしておきます。
次の記事で使用しますので、メモ帳などで保存しておいてください。

重要: ChatGPT APIは有料サービスです。APIを使用すると、使用量に応じて課金されます。料金は使用するモデルやトークン数によって異なります。料金体系の詳細については、OpenAIの料金ページを確認してください。

課金の設定

以下の手順で、課金設定を行います。

  1. OpenAIダッシュボードを開き、歯車マークをクリック後、左メニューより「Billing」セクションにアクセスします。その後、メニュータブから「Payment methods」をクリックします。
  1. クレジットカードなどの支払い方法を登録します。
  2. 必要に応じて、使用量の上限を設定することも可能です。

NEWS APIの設定方法

ニュース情報を取得するためにNEWS APIを使用します。以下では、NEWS APIの登録方法と設定方法について説明します。

NEWS APIへの登録

  1. NEWS API公式サイトにアクセスします。
  2. 右上の「Get API Key」ボタンをクリックします。
  3. 必要な情報を入力してアカウントを作成します。

APIキーの取得

  1. アカウント作成後、自動的にAPIキーが発行されます。
  2. ダッシュボード画面でAPIキーを確認できます。
  3. このAPIキーをコピーしておきます。
    次の記事で使用しますので、メモ帳などで保存しておいてください。

無料プランと有料プランの違い

NEWS APIには無料プランと有料プランがあります。

無料プラン(Developer)の制限:

  • 1日あたり100リクエストまで
  • 最大1ヶ月前までのニュースが取得可能
  • 24時間遅れで記事を取得

有料プラン(Business)の特徴:

  • より多くのリクエスト数(月額に応じて変動)
  • 本番環境での使用が可能
  • リアルタイムのニュース取得が可能

開発段階では無料プランでも十分ですが、本番環境で運用する際には有料プランへのアップグレードを検討してください。

API制限の注意点

NEWS APIの無料プランには厳しいリクエスト制限があります。n8nの設定では、スケジュールの間隔を適切に設定して、API制限に引っかからないようにしましょう。今回のアプリでは、1日1回の実行なので、無料プランの範囲内で運用可能です。

Slack通知の設定方法

今回作成するアプリでは、アウトプットとしてSlack通知を行います。そのため、Slack通知を行うための設定手順を記載します。
※Slackそのものへのアカウント登録やワークスペース登録は、こちらの手順をもとに作成してください。

Slackアプリの作成と設定

Slackでアプリを作成し、Bot Tokenを設定する必要があります。

Slackのログイン後、Slack APIにアクセスし、「Create New App」をクリックします。

「From scratch」を選択し、アプリ名と利用するワークスペースを設定します。

左側メニューの「OAuth & Permissions」を選択します。ページ中部の「Scopes」の「Bot Token Scopes」をクリックし、「Add an OAuth Scope」ボタンをクリックします。
その後、以下のScopeを追加します。

  • chat:write:public(自動的にchat:writeも付与)
  • groups:read
  • channels:read

    同ページの「OAuth Tokens」の、「Install to (ワークスペース名)」ボタンをクリックします。その後、認証を実施します。

    作成されたBot Tokenをコピーします。

    まとめ

    今回の記事では、Docker Composeを使用したn8nの環境構築方法と、ChatGPT APIおよびNEWS API、Slack Bot Tokenの設定方法について解説しました。これらの手順を完了することで、自動化ワークフローの基盤が整います。

    次回の記事では、いよいよn8nを使用した具体的な設定手順について解説します。NEWS APIからニュースを取得し、ChatGPT APIを使用して重要度の高いニュースを選別し、Slackに通知するまでの一連のワークフローを構築していきます。

    以上です、お時間いただきありがとうございました!