Scripts/Runtime/Data/Entities/WitEntity.cs (63 lines of code) (raw):
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
using System;
using Facebook.WitAi.Configuration;
using Facebook.WitAi.Lib;
using UnityEngine;
namespace Facebook.WitAi.Data.Entities
{
[Serializable]
public class WitEntity : WitConfigurationData
{
[SerializeField] public string id;
[SerializeField] public string name;
[SerializeField] public string[] lookups;
[SerializeField] public WitEntityRole[] roles;
[SerializeField] public WitEntityKeyword[] keywords;
public static class Fields
{
public const string ID = "id";
public const string NAME = "name";
public const string ROLE= "role";
public const string START = "start";
public const string END = "end";
public const string TYPE = "type";
public const string BODY = "body";
public const string VALUE = "value";
public const string CONFIDENCE = "confidence";
public const string ENTITIES = "entities";
public const string LOOKUPS = "lookups";
public const string ROLES = "roles";
public const string KEYWORDS = "keywords";
}
#if UNITY_EDITOR
protected override WitRequest OnCreateRequest()
{
return witConfiguration.GetEntityRequest(name);
}
public override void UpdateData(WitResponseNode entityWitResponse)
{
id = entityWitResponse[Fields.ID].Value;
name = entityWitResponse[Fields.NAME].Value;
lookups = entityWitResponse[Fields.LOOKUPS].AsStringArray;
var roleArray = entityWitResponse[Fields.ROLES].AsArray;
roles = new WitEntityRole[roleArray.Count];
for (int i = 0; i < roleArray.Count; i++)
{
roles[i] = WitEntityRole.FromJson(roleArray[i]);
}
var keywordArray = entityWitResponse[Fields.KEYWORDS].AsArray;
keywords = new WitEntityKeyword[keywordArray.Count];
for (int i = 0; i < keywordArray.Count; i++)
{
keywords[i] = WitEntityKeyword.FromJson(keywordArray[i]);
}
}
public static WitEntity FromJson(WitResponseNode entityWitResponse)
{
var entity = new WitEntity();
entity.UpdateData(entityWitResponse);
return entity;
}
#endif
}
}