LoginSignup
11
15

More than 5 years have passed since last update.

[A3RT]GWなんだしUnityを使ってチャットBotをつくろう

Last updated at Posted at 2017-04-28

1.はじめに


リクルートが無料で使えるAIを公開しました
https://a3rt.recruit-tech.co.jp/

その中に会話AI(以下TalkAPI)があったのでUnityで取得できるようにしました
https://a3rt.recruit-tech.co.jp/product/talkAPI/


1.準備


必要なもの
・Unity
・リクルートのTalkAPIのKey
・MinijsonとJsonnodeが記載されたC#スクリプト

・Unity
Unityをインストールしていなかったらインストールしておいてください
https://unity3d.com/jp/get-unity/update

・リクルートのTalkAPIのKey
TalkAPIを使用するためのカギをもらいましょう
https://a3rt.recruit-tech.co.jp/product/talkAPI/registered/

登録すると登録したメールアドレスにAPIを使用するための鍵が発行されます(7XDERM6AEUJtl82I7qIOAbVb76Aaaaaaa <-こんな感じの)
後で使うのでメモしておいてください

・MinijsonとJsonnodeが記載されたC#スクリプト
Minijson
http://qiita.com/phi/items/914bc839b543988fc0ec
(コード直リンク:https://gist.githubusercontent.com/darktable/1411710/raw/513f1c0ceb0cd4728973e109bd0b13911f162ebd/MiniJSON.cs)

Jsonnode
http://qiita.com/phi/items/914bc839b543988fc0ec
(コード直リンク:https://gist.github.com/asus4/7f7b5912d703f44c2711)

これを下の写真のように配置してください
1.Plugins フォルダをつくる
2.JsonNode.csとMiniJson.csを作成して上記サイトからコードを完コピ
063a4f8f91017d69bc886132a38118fb.png


2.取得する


本題

RequestTaklAPI.cs って名前のC#スクリプトを作成してください

そしてRequestTaklAPI.csに下記コードを書き込んでください

RequestTaklAPI.cs
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System;
using System.Collections;
using System.Text;

public class RequestTaklAPI : MonoBehaviour {

    string url = "https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk";
    string apikey = "取得したAPIKEYを入力してください!!!!!";
    public string query = "";
    public Text text;

    IEnumerator Start()
    {
        // ChatAPIに送る情報を入力
        WWWForm form = new WWWForm();

        form.AddField("apikey", apikey);
        form.AddField("query", query,Encoding.UTF8);

        // 通信
        using (UnityWebRequest request = UnityWebRequest.Post(url, form))
        {

            yield return request.Send();

            if (request.isError)
            {
                Debug.Log(request.error);
            }
            else
            {
                try
                {
                    // 取得したものをJsonで整形
                    string itemJson = request.downloadHandler.text;
                    JsonNode jsnode = JsonNode.Parse(itemJson);
                    // Jsonから会話部分だけ抽出してTextに代入
                    if (text.text != null) {
                        text.text = jsnode["results"][0]["reply"].Get<string>();
                    }
                    Debug.Log(jsnode["results"][0]["reply"].Get<string>());
                }
                catch (Exception e)
                {
                    // エラーが出たらこれがログに吐き出される
                    Debug.Log("JsonNode:" + e.Message);
                }
            }
        }
    }
}


※apikey = "取得したAPIKEYを入力してください!!!!!"の部分にあなたが取得したkeyを入れてください

実行結果
Hierarchy に空のGameObjectを配置してRequestTaklAPI.csを追加してQueryの項目に「おなかすいた」と入力して実行すなsy

私もすきましたと返ってきてます
無事に実行できたようです
ca538c2be8d68c1972113d73efa143aa.png

11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15