Unity 图灵Turning 之 在Unity中实现图灵 聊天机器人 简单聊天的功能
目录
Unity 图灵 之 在Unity中实现图灵聊天机器人简单聊天的功能
一、简单介绍
Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。
本节介绍,在Unity中通过调用图灵的聊天api,实现简单的聊天功能。
二、图灵官网关于在线聊天机器人的接入介绍
API V2.0是基于图灵机器人平台语义理解、深度学习等核心技术,为广大开发者和企业提供的在线服务和开发接口。
目前API接口可调用聊天对话、语料库、技能三大模块的语料:
聊天对话是指平台免费提供的近10亿条公有对话语料,满足用户对话娱乐需求;
语料库是指用户在平台上传的私有语料,仅供个人查看使用,帮助用户最便捷的搭建专业领域次的语料。
技能服务是指平台打包的26种实用服务技能。涵盖生活、出行、购物等多个领域,一站式满足用户需求。
UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)
HTTP POST
请求参数格式为 json
三、注意事项
1、调用图灵机器人API报错加密方式错误
结果报错 :加密方式错误。
不是代码的问题啦,是因为你打开了秘钥开关
解决方法:关上再运行代码就好了,或者参看文档添加该功能(这里不做介绍)
2、请求次数超过限制,想多几次,可以开通认证
3、记得添加 litjson.dll 插件到工程中
四、效果预览
五、实现步骤
0、到 图灵官网创建一个自己的聊天机器人,得到 apikey
创建机器人网址(前提有登陆图灵账号):member/robot/index.jhtml
1、打开Unity,新建一个工程
2、在工程中添加一个脚本,来介绍输入的信息,然后传给图灵进行聊天结果返回
3、在场景中,添加两个输入框和一个Text
4、把脚本添加到场景中,并对应赋值
5、运行场景,效果如上
六、关键代码
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using LitJson;
- using System.Text;
- using UnityEngine.UI;
- public class TuLingTest : MonoBehaviour
- {
- private string url = '';
- private string apiKey = '你的 apiKey ';
- public InputField InputText;
- public InputField id;
- public Text text;
- private void Update()
- {
- if (Input.GetKeyDown(KeyCode.A)) //按A发送消息,(鼠标要移出输入框)
- {
- HttpPostFunc(InputText.text);
- }
- }
- public void HttpPostFunc(string message)
- {
- StartCoroutine(HttpPost(message));
- }
- IEnumerator HttpPost(string message)
- {
- //JsonData可以表示JsonObject{},也可以表示JsonArry[]//4e03ee9c4e8cc2af//'1512267543'
- JsonData request = new JsonData();
- //perception
- request['perception'] = new JsonData();
- request['perception']['inputText'] = new JsonData();
- request['perception']['inputText']['text'] = message;
- //userInfo
- request['userInfo'] = new JsonData();
- request['userInfo']['apiKey'] = apiKey;
- request['userInfo']['userId'] = id.text;
- //JsonMapper.ToJson(request)
- //将Json对象转为Json字符串,直接ToString容易出错
- //将Json字符串转为字节数组
- //进行一个网络推送
- WWW post = new WWW(url, Encoding.UTF8.GetBytes(JsonMapper.ToJson(request)));
- yield return post;
- Debug.Log(post.text);
- JsonData response = JsonMapper.ToObject(post.text);
- string result = response['results'][0]['values']['text'].ToString();
- Debug.Log(result);
- text.text += '我:' + message + '\n' + '机器人:' + result + '\n';
- }
- }
0条评论