Morikatron Engineer Blog

モリカトロン開発者ブログ

GeneralTalker APIを使ったTwitter botの作り方

………………………………

★ご注意★ 本記事で紹介しているGenetralTalker APIは、その公開を終了しました。 詳しく知りたい/さわってみたい方はモリカトロン(https://morikatron.com/contact/)までご連絡ください。 ………………………………

モリカトロンの宮本です。

弊社では、AIとの雑談を実現する GeneralTalker API を公開しています。
雑談を必要とする様々なシステムに組み込んで延々と無駄話を繰り広げていただくことが可能です。

今回はこのAPIを使ったTwitterボットの作り方をご紹介します。

GeneralTalker API とは?

GeneralTalkerは、モリカトロンで開発したGPT-2ベースのAIモデル「AI会話ジェネレーター」を利用したWebAPIです。

GeneralTalkerのAPIを(チャットボットなど)ご自分のプログラムから呼び出す方法は、Rakuten RapidAPIのページをご覧ください。GeneralTalkerにはTwitter、Slack、LINE、その他一般的なボット用の4種類のAPIをご用意しております。

以下のTwitterアカウントは、GeneralTalkerを利用したサンプルのボットです。どのような受け答えができるのか気軽にお試しになりたいかたは、ぜひご自分のTwitterアカウントから話しかけてみてください。 twitter.com

Twitter API

ご自分でTwitterボットを作りたい場合、まずは、ボット用にTwitterのアカウントを用意するところから始めましょう。 プログラムからTwitterへの投稿は、Twitter API を使いますが、利用申請が必要です。
ちょっと手間がかかりますが、私は以下のサイトを参考にさせていただきました。

TwitterAPIを申請して一発で承認されるまでの手順まとめ(例文あり)+APIキー、アクセストークン取得方法 | DevelopersIO

ボットの作成

ボットのサンプルコードをGithubで公開しています。
https://github.com/morikatron/snippet/tree/master/twitter_bot_sample
お手元にダウンロードまたはクローンしてください。

各種apiキーの設定

twi_bot.py に各種apiキーを記入してください。

GeneralTalker API のキーの設定(Rakuten RapidAPIから入手してください)

GeneralTalker_url: str = "https://generaltalker.p.rapidapi.com/on_twitter/"
GeneralTalker_headers: Dict[str, str] = {
    'x-rapidapi-key': "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    'x-rapidapi-host': "generaltalker.p.rapidapi.com"
}

Twitter APIキーの設定(Twitter開発者サイトから入手してください)

api_key: str = "XXXXXXXXXXXXXXXXXXXXXXXXX"
api_secret_key: str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_token: str = "XXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
access_token_secret: str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

起動する

はい、後は起動するだけです!

python twi_bot.py

ボットに話しかけてみよう

ボットを起動した状態で、別のTwitterアカウントから話しかけてみましょう。

メンションを付ける

@で始まるボットの名前(スクリーンネーム)を入れてツィートすることでボットに話しかけることが出来ます。

ボットのツィートにリプライする

ボットのツィートにリプライして会話を始めることも可能です。

制限

非公開になっているアカウントでボットと会話することは出来ません。
これは、Twitter APIで非公開のツィートが取得できないためです。

まとめ

・GeneralTalker API に登録
・Twitter APIの利用申請
・サンプルコードに各APIのキーを入れて起動
と、これだけで雑談用Twitterボットを作ることが出来ました!!
暇を持て余した夜の雑談相手にはピッタリのボットができあがりましたね!
是非、GeneralTalker API をご活用ください。

さらに良いボットにするには

  • msg_id_dictを保存する
    ボットのプログラム内で、TwitterのメッセージIDとGeneralTalkerのメッセージIDを変換するためのdictを保持していますが、保存処理をしていませんのでボットのプログラムを終了すると辞書が失われてしまいます。
    (これはGeneralTalker API側で会話の履歴を正しく参照するために必要な情報です。無くなるとそれまでに取得した履歴が参照できなくなるため、そこから新たに会話がスタートする感じになります。)
    msg_id_dictの内容をデータベースなどに保存しておくと、ボットを再起動した際にも会話の連続性が保たれるようになります。