独自資料を学習したAIとChatworkをGASで連携する方法

こんにちは、SHINOです。

私たちは、ビジネスの潜在能力を引き出すAI技術を駆使した様々なプロジェクトを手がけてきました。これまでの経験から、企業特有のニーズに応えるカスタマイズされたAIチャットボットの開発は、ビジネスの効率化や顧客エンゲージメント向上に非常に有効であると考えています。

【事業実績】

・自社データを読み込ませたチャットボットシステム開発
・AI×ノーコードで業務自動化支援
・事業再構築補助金お助けくんのリリース
・インボイスお助けくんのリリース
・AIフリーランスサポートのリリース

ChatGPTは確かに多岐にわたる質問に対応できる素晴らしいツールですが、ビジネスの現場ではその汎用性がむしろ限界となり得ます。特定の専門知識や企業固有のデータに基づいた対話が求められる場合、一般的な情報では不十分と感じることも少なくありません。

しかし、想像してみてください。自社のブログ、ウェブサイト、SNS、営業資料などのコンテンツを理解し、それらを基に対話するAIチャットボットがあれば、どれほどの可能性が広がるでしょうか。

例えば:

・独自のコンテンツに精通したAI Botを通じて、ファンやフォロワーに新たなインタラクションを提供する。

・顧客サービスを強化するために企業データを学習させたカスタマーサポートAIチャットボットを開発する。

・新入社員や既存のチームメンバーへの教育に社内の規則や製品情報をフィードした教育用AIチャットボットを使用する。

これらのAIチャットボットを、LINEやChatworkなどのメッセージングアプリや企業のホームページに組み込むことができれば、使い勝手は一層向上し、顧客体験は格段に改善されることでしょう。

このような可能性を現実のものとするため、専門性を持つAIチャットボットの開発は新たな未来への挑戦となります。

本マニュアルの流れ

  1. OpenAIのAPIキーを取得

  2. DocsBotを作成しAPIキーを取得

  3. Chatworkグループチャットを作成しAPIキーを取得

  4. スプレッドシートを用意

  5. Chatworkとプログラムを紐付け

それでは、早速開発工程に移っていきます。
初心者向けにOpenAI API取得のところから説明しています。

既にわかる方は読み飛ばしてください。

1. OpenAI APIキーを取得

OpenAIデベロッパーサイトのAPIキーを発行するページ(https://platform.openai.com/account/api-keys)へアクセスします。

「Log in」をクリックし、OpenAIアカウントにログインします。アカウントを持っていない場合、「Sign up」をクリックしてアカウントを作成してください(メールアドレスと電話番号が必要です)。ChatGPTユーザーであっても、開発者用アカウントが別途必要です。

「+ Create new secret Key」をクリックしてください。

「API key generated」(生成されたAPIキー)と表示される画面で、APIキーをコピーして安全な場所に保存してください。

⚠️注意事項 APIキーの流出は悪意のある第三者による不正アクセスにつながり、あなたが責任を負うことがあります。公開せず安全に保管してください。紛失や流出が疑われる場合は速やかにAPIキーを削除し、再発行を行ってください。

2. DocsBotの作成とAPIキーの取得

次にDocsBotの作成です。DocsBotにWebサイトなどを読み込ませることで、自分だけのChatGPTを作ることができます。

2.1 アカウント登録

まずはDocsBotの公式サイトにアクセスします。

画面を下にスクロールし、「Create your own free DocsBot」をクリックします。

「I agree to the Terms of Service & Privacy Policy(利用規約とプライバシーポリシーに同意)」にチェックを入れ、アカウントを作成してください。
※アカウント登録および制限付きのボット作成はクレジットカード登録なく無料でできます。

アカウントを作成すると、API Keyの入力画面が表示されます。 先ほど取得したAPIキーを入力してください。 なお、ここで入力しなくても、後で左側メニューのAPIというところから設定できます。

2.2 ボットの作成

右側に表示されるサイドパネルの下にある「Create Bot」をクリックしてボットを作成します。

名前は後から変更できます。

作成したボットの「Source type」を選択します。ブログのURLを入力します。これにより、ブログを学習したbotが作られます。

ボットが作れたら、ボットIDとチームIDを取得していきます。

作成したボットを選択し、左側のSharing & APIというところをクリックすると、Share Linksなどが表示されます。ここに表示されているTeam IDBot IDをコピーして保存してください。

3. Chatworkグループチャットを作成しAPIキーを取得

アカウントの取得

まだChatworkを利用していない場合は、まずはアカウントから取得しましょう。こちらのサイトから登録して無料で利用することができます。

https://go.chatwork.com/ja/

API利用申請

APIを利用するには申請を行う必要があります。Chatworkを開いて右上の部分の利用者名の右側に白色の逆三角形があります。その逆三角形をクリックするとメニューが表示され、メニューの中からサービス連携をクリックします。

 

 

ログイン時のパスワードを入力して「表示」ボタンをクリックすると申請が行われます。

ChatworkApi02

 

APIトークンの発行

ログイン時のパスワードを入力して申請を行うと、アルファベットと数字が入り混じったAPIトークンが発行されます。「コピー」ボタンをクリックすると表示されたAPIトークンがクリップボードにコピーされ、ペーストして使うことができます。

Chatwork APIを使うために、このAPIトークンは必須ですのでメモ帳か何かに貼り付けていつでも使えるようにしておきましょう。
ChatworkApi03

アカウントIDを確認する

ユーザーによる確認方法

  1. チャット画面の右上にある [利用者名] のクリックで表示されるメニューの [環境設定]を
    開きます。

    mceclip1.png

  2. [Chatworkについて]タブをクリックし、アカウントIDに表示されている数字を
    確認します。

    mceclip0.png

ルームIDを確認する

確認方法

ルームIDを取得したいグループチャットに移動してください。
画面右上の歯車より「グループチャットの設定」を選択してください。

__________2019-10-07_16.28.32.png

グループチャットの詳細情報がポップアップウィンドウにて表示されます。
画面下部の「ルームID」欄にて確認することが可能です。

__________2019-10-07_16.17.23.png

これでChatwork APIの使う準備が整いました。

 

 

 

4. スプレッドシートを用意

次はプログラムを用意します。

4.1 プログラムを用意

GAS(Google Apps Script)というGoogleが提供するサービスを利用するため、必要なのはGoogleアカウントのみです。

新規または既存のGoogle スプレッドシートを開いて、「拡張機能」 > 「AppsScript」を選択します。

始めから書いてあるものを全て削除し、以下のプログラムを貼り付けてください。


// Chatwork APIのアクセストークン
const CHATWORK_TOKEN = "ここにChatworkのトークンを設定";
// ChatworkのルームID
const CHATWORK_ROOM_ID = "ここにルームIDを設定";
// BotのChatworkアカウントID
const BOT_ACCOUNT_ID = "ここにBotのアカウントIDを設定";
// DocsbotのTeam IDとBot ID
const TEAM_ID = "先の手順で取得したDocsbotのTeam ID";
const BOT_ID = "先の手順で取得したDocsbotのBot ID";
// Docsbotのエンドポイント
const DOCSBOT_END_POINT = `https://api.docsbot.ai/teams/${TEAM_ID}/bots/${BOT_ID}/chat`;

// プロパティサービスの初期化
const properties = PropertiesService.getScriptProperties();

// DocsBotを使ってChatGPTにリクエストを送る
function requestToAI(requestMessage) {
const docsbotParams = {
method: "post",
headers: {"Content-Type": "application/json"},
payload: JSON.stringify({"question": requestMessage})
};
const response = UrlFetchApp.fetch(DOCSBOT_END_POINT, docsbotParams);
const replyMessage = JSON.parse(response.getContentText()).answer;
return replyMessage;
}

// Chatworkにメッセージを送信する
function sendMessageToChatwork(message) {
const payload = `body=${encodeURIComponent(message)}`;
const options = {
method: "post",
headers: {
"X-ChatWorkToken": CHATWORK_TOKEN,
"Content-Type": "application/x-www-form-urlencoded"
},
payload: payload
};
const response = UrlFetchApp.fetch(`https://api.chatwork.com/v2/rooms/${CHATWORK_ROOM_ID}/messages`, options);
return response.getContentText();
}

// ChatworkのWebhookから受け取ったメッセージに対して応答する
function doPost(e) {
// Chatworkからのメッセージデータを解析
const data = JSON.parse(e.postData.contents);
const messageId = data.webhook_event.message_id;
const accountId = data.webhook_event.account_id;
const requestMessage = data.webhook_event.body;

// メッセージがBot自身からでないことを確認し、かつ未応答のメッセージであることを確認
if (accountId !== BOT_ACCOUNT_ID && !properties.getProperty(messageId)) {
// DocsBotにリクエストを送り、レスポンスを生成
const replyMessage = requestToAI(requestMessage);

// Chatworkに返信メッセージを送信
sendMessageToChatwork(replyMessage);

// メッセージIDをプロパティに保存して応答済みとマーク
properties.setProperty(messageId, "replied");
}
}

// テスト用の関数
function test() {
const requestMessage = "こんにちは。あなたの名前はなんですか?";
const replyMessage = requestToAI(requestMessage);
console.log(sendMessageToChatwork(replyMessage));
}


次にプログラム中のChatwork_TOKEN、Room_ID、Account_ID、TEAM_ID、BOT_IDを設定していきます。

それぞれ、先の手順で取得した文字列を”"で囲われるようにコピペしてください。*""を消さないように注意してください。

ChatworkからWebhookという仕組みで送信されてきたメッセージを受け取り、Docsbotに返信を生成するよう依頼しています。

4.2 プログラムの承認

GASでは、最初の実行時にプログラムを承認する必要があります。

承認のためにtestという関数を実行してみます。

①保存ボタンを押した後、②「test」を選択して、③実行ボタンを押してください。

最初に実行するときは承認が必要です。

以下のような表示がされたら「権限を確認」をクリックしてください。

使用中のGoogleアカウントを選択します。

このような画面が表示されたら、「詳細を表示」をクリックし、「〜〜〜(安全ではないページ)に移動」というところをクリックしてください。

このような画面が表示されるので、下までスクロールして許可をクリックしてください。

以上で承認が完了しました。

test関数を実行し、「{"message_id":"1875774319385116672"}」のような返答が表示されれば成功です!

アクセストークンやIDの設定がうまくいってないと、このようなエラーが表示されます。

5. Chatworkとプログラムを紐付け

ではいよいよChatworkとプログラムを紐付けます。

5.1 GASアプリのURLを取得

まず、作成したGASプロジェクトを公開し、URLを取得します。

GASエディタの上部にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。

アクセスできるユーザーを全員に設定し「デプロイ」をクリックします。

デプロイが完了すると、ウェブアプリのURLが表示されます。このURLをChatworkに設定するのでコピーしておいてください。

5.2 ChatworkのWebhook設定

次に、先の手順で作成したChatworkのWebhook設定を行います。

  1. Chatwork画面の右上にある [利用者名] 以下のメニュー内にある、[サービス連携] からWebhook設定ページにアクセスします。

    webhook1.png

  2. 「新規作成」ボタンをクリックします。

    webhook1.png

 3. 必要項目を入力し「作成」ボタンをクリックします。

 4. Webhook設定IDとトークンが表示されます。

 

 5. 一覧に作成したWebhook設定が表示されます。

以上で設定は完了です。

作成したChatwork_BOTを設定したアカウントをメンションして、メッセージを送信してみてください。

※10文字未満のメッセージには反応がないのでご注意ください。

お疲れ様でした!!

 

  • この記事を書いた人

SHINO_NFT_AI

海外NFTトレンドや最新のAI情報を中心に発信中

-AI