MoChiwakiブログ

女性エンジニアがゆる~く書く備忘録ブログ 〜だいたいいつもつまづいている〜

LINE bot AI ゆきちゃん 番外編

そそそういえば!!!

 

このLINE botを会社で発表したのですが、

何を質問されても良いように!

と思い色々考えていました。

 

前回の発表の際、

LINEのスタンプを作った方がいらっしゃいました。

それはもぅ、可愛くてクオリティ激高の。

 

あ、私もLINE系の発表だ…!!

もももしかして!!

 

「LINEスタンプ作りましたか?笑」

 

なんて質問が来るかもしれない!!!

 

その時私は、、、

 

もちろんですよ!どや」

 

と言いたいw 

 

「(え?え!まじか!!ざわざわ)」

 

となるかも!!笑笑

 

ということでLINEスタンプ作ったんす。

 

(申請に2週間かかり発表に間に合わなかったのは内緒)

(質問が来た時のどや妄想のためだけに作ったのでクオリティには目をつぶる)

 

line.me

 

使ったのはスマホのみ!  

 

こんなアプリを使って。

 

creator.line.me

 

f:id:MoChiwaki:20171017211219p:image

 

f:id:MoChiwaki:20171017211227p:image

いらない所を削って

文字入れて完成!!

 

申請には2週間かかるので注意!

ちなみに、限定公開?も出来るらしいです!  

 

よろしければご購入をご検討くださいw

 

 

LINE bot AI ゆきちゃん 本編

LINEにAIを入れたアカウント作った

なので久々にまとめようと思う。

f:id:MoChiwaki:20170922150804p:plain:w400
LINEでAIアカウント作成

LINE AIアカウントとは…?

よくLINEの公式アカウントとかあると思うが、
そこで何か送ると会話を返してくれるやつ、
そいつはきっとAIだ!

例えば有名なのは、りんな

まじでりんな先輩はすごいと思う。尊敬してます!!!
そりゃあマイクロソフトですもんね…。
友達になるべき!!!というか、女子高生の友達ですね。
私はりんな先輩とまりも飼ってます 笑

他には、フロムエーのパン田一郎

ドラマで話題になったAIカホコ
AIカホコはもう終わっちゃうけど…

ざらっとこんなのがあります。

何を作ったか

LINEでAIのbotを作りました。
雑談ができます。
画像認識も多少できるので、画像送ったら返信くれます。

何を使ったか

ざっと書くとこんな感じ

GoogleAppsScriptで書きました。
作成方法はこっちで

LINE bot AI ゆきちゃん GAS作る編 - MoChiwakiブログ

雑談メッセージを返すパターン

  1. メッセージ受け取る
  2. ドコモ雑談APIにそのメッセージを渡す
  3. ドコモ返答を受け取る
  4. LINE APIに受け取った返答を送る
  5. 実際にLINEで送られる
// LINE Developers > Basic Information > Channel Access Token から取得
var channel_access_token = "your_access_token";


function doPost(e) {
  var events = JSON.parse(e.postData.contents).events;

  events.forEach(function(event) {
    if(event.type == "message"){lineReply(event);}
    else if(event.type == "follow"){ /* 友だち追加・ブロック解除 */ }
    else if(event.type == "unfollow"){ /* ブロック */ }
 });
}

function lineReply(e) {

  var postData = {
    "replyToken" : e.replyToken,
    "messages" : [
      {
        "type" : "text",
        "text" : getDialogueMessage(e.message.text)  //ここに返したいメッセージ
      }
    ]
  };

  var options = {
    "method" : "post",
    "headers" : {
      "Content-Type" : "application/json",
      "Authorization" : "Bearer " + channel_access_token
    },
    "payload" : JSON.stringify(postData)
  };

  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
}
// ドコモ雑談APIにもらったメッセージを渡して、APIから返事をもらう
function getDialogueMessage(mes) {
  var dialogue_options = {
    't': 20,
    'utt': mes
  }
  var options = {
    'method': 'POST',
    'contentType': 'text/json',
    'payload': JSON.stringify(dialogue_options)
  };
  
  var dialogueUrl = "https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue?APIKEY=yourApiKey";

  // ドコモ雑談APIにメッセージを投げる
  var response = UrlFetchApp.fetch(dialogueUrl, options);
  var content = JSON.parse(response.getContentText());

  return content.utt;
}

dialogue_optionsの中身

key value
utt 送るメッセージ(必須)
t キャラ設定(20:関西弁、30:赤ちゃん、なしならデフォルト)

他にもいろいろ設定できます!
ユーザ側の年齢とか誕生日とかも。

あとまた他にもいくつか投稿します〜