|
16 | 16 | */
|
17 | 17 |
|
18 | 18 | using UnityEngine;
|
19 |
| -using System.Collections; |
20 | 19 | using IBM.Watson.DeveloperCloud.Services.Conversation.v1;
|
21 | 20 | using IBM.Watson.DeveloperCloud.Utilities;
|
22 | 21 | using IBM.Watson.DeveloperCloud.Logging;
|
| 22 | +using System; |
23 | 23 |
|
24 | 24 | public class ExampleConversation : MonoBehaviour
|
25 | 25 | {
|
26 | 26 | private Conversation m_Conversation = new Conversation();
|
27 | 27 | private string m_WorkspaceID;
|
28 |
| - private string m_Input = "Can you unlock the door?"; |
| 28 | + private bool m_UseAlternateIntents = true; |
| 29 | + private string[] questionArray = { "can you turn up the AC", "can you turn on the wipers", "can you turn off the wipers", "can you turn down the ac", "can you unlock the door"}; |
29 | 30 |
|
30 | 31 | void Start () {
|
31 | 32 | LogSystem.InstallDefaultReactors();
|
32 | 33 | m_WorkspaceID = Config.Instance.GetVariableValue("ConversationV1_ID");
|
33 |
| - Debug.Log("User: " + m_Input); |
34 | 34 |
|
35 |
| - // Message with input only |
36 |
| - //m_Conversation.Message(OnMessage, m_WorkspaceID, m_Input); |
| 35 | + Debug.Log("**********User: Hello!"); |
| 36 | + MessageWithOnlyInput("Hello!"); |
| 37 | + } |
37 | 38 |
|
38 |
| - // Message by creating message request |
39 |
| - //MessageRequest messageRequest = new MessageRequest(); |
40 |
| - //messageRequest.inputText = m_Input; |
41 |
| - //m_Conversation.Message(OnMessage, m_WorkspaceID, messageRequest); |
| 39 | + private void MessageWithOnlyInput(string input) |
| 40 | + { |
| 41 | + if (string.IsNullOrEmpty(input)) |
| 42 | + throw new ArgumentNullException("input"); |
| 43 | + |
| 44 | + m_Conversation.Message(OnMessageWithOnlyInput, m_WorkspaceID, input); |
| 45 | + } |
| 46 | + |
| 47 | + |
| 48 | + private void OnMessageWithOnlyInput(MessageResponse resp, string customData) |
| 49 | + { |
| 50 | + if (resp != null) |
| 51 | + { |
| 52 | + foreach (Intent mi in resp.intents) |
| 53 | + Debug.Log("intent: " + mi.intent + ", confidence: " + mi.confidence); |
| 54 | + |
| 55 | + if (resp.output != null && resp.output.text.Length > 0) |
| 56 | + foreach (string txt in resp.output.text) |
| 57 | + Debug.Log("output: " + txt); |
| 58 | + |
| 59 | + string questionStr = questionArray[UnityEngine.Random.Range(0, questionArray.Length - 1)]; |
| 60 | + Debug.Log(string.Format("**********User: {0}", questionStr)); |
| 61 | + |
| 62 | + MessageRequest messageRequest = new MessageRequest(); |
| 63 | + messageRequest.InputText = questionStr; |
| 64 | + messageRequest.alternate_intents = m_UseAlternateIntents; |
| 65 | + messageRequest.ContextData = resp.context; |
42 | 66 |
|
43 |
| - // Message by passing input, alternate intents and conversationID |
44 |
| - m_Conversation.Message(OnMessage, m_WorkspaceID, m_Input, false, null); |
| 67 | + MessageWithFullMessageRequest(messageRequest); |
| 68 | + } |
| 69 | + else |
| 70 | + { |
| 71 | + Debug.Log("Failed to invoke Message();"); |
| 72 | + } |
45 | 73 | }
|
46 | 74 |
|
47 |
| - void OnMessage (MessageResponse resp, string customData) |
| 75 | + private void MessageWithFullMessageRequest(MessageRequest messageRequest) |
48 | 76 | {
|
49 |
| - if(resp != null) |
50 |
| - { |
51 |
| - foreach(Intent mi in resp.intents) |
52 |
| - Debug.Log("intent: " + mi.intent + ", confidence: " + mi.confidence); |
53 |
| - |
54 |
| - if(resp.output != null && resp.output.text.Length > 0) |
55 |
| - foreach(string txt in resp.output.text) |
56 |
| - Debug.Log("output: " + txt); |
57 |
| - } |
58 |
| - else |
59 |
| - { |
60 |
| - Debug.Log("Failed to invoke Message();"); |
61 |
| - } |
| 77 | + if (messageRequest == null) |
| 78 | + throw new ArgumentNullException("messageRequest"); |
| 79 | + m_Conversation.Message(OnMessageWithOnlyInput, m_WorkspaceID, messageRequest); |
62 | 80 | }
|
63 | 81 | }
|
0 commit comments