У меня есть клиент диалог Service в Java (с помощью SDK)Что мне нужно предоставить в MessageRequest службы Converstation для ответа на первый шаг в разговоре?
ConversationService conversationService = new ConversationService(ConversationService.VERSION_DATE_2016_07_11, userName, password);
MessageRequest.Builder messageRequestBuilder = new MessageRequest.Builder();
messageRequestBuilder.inputText(question);
ServiceCall<MessageResponse> response = conversationService.message(workspaceId, messageRequestBuilder.build());
MessageResponse answer = response.execute();
Это не имеет значения, что я обеспечиваю как текст, я всегда получаю сообщение приветствия. Чтобы обойти эту проблему, я выполнить второй вызов, который включает в себя весь контекст от ответа, как этого
messageRequestBuilder = new MessageRequest.Builder();
messageRequestBuilder.context(answer.getContext());
messageRequestBuilder.inputText(question);
response = conversationService.message(workspaceId, messsageRequestBuilder.build());
answer = response.execute();
Теперь я пройти первоначальный текст приветствия.
Мой вопрос: что мне нужно предоставить как минимум на каждом этапе разговора?
Так что мне всегда нужно все, что связано с контекстом? Целесообразно ли добавлять объекты в контекст от клиента, или это всегда должно быть частью ввода? – mpjjonker
Вы можете добавлять объекты в контекст от клиента. Это может иметь смысл, если у вас есть данные о пользователе, который разговаривает с системой - например, его имя или возраст. Вы можете использовать этот метод, чтобы установить их как переменные в поле 'context' и использовать их в потоке беседы. Например. вы добавляете в 'context'' "username": "John" 'и в диалоговом узле вы пишете« Привет, имя пользователя ... ». –