Моя установка - это шаблон виртуального помощника, связанный с шаблоном навыков. Все в порядке, если я пытаюсь запустить виртуальное устройство внутри эмулятора бота и правильно работает на локальном хосте и с конечной точкой Azure, но когда я пытаюсь запустить диалоговое окно навыков в моем виртуальном устройстве внутри Azure WebChat, у меня нет ответа, мое виртуальное устройство просто останавливается. ответь на мои вопросы.
У меня точно такая же проблема, у меня есть основной бот и навык, опубликованный в лазурном цвете, когда я тестирую бота внутри эмулятора, он работает отлично, разговор передается боту навыков. Однако, как только он используется либо в веб-чате, либо, в моем случае, в приложении React, использующем прямую линию, бот просто перестает отвечать. Единственное различие между двумя конфигурациями для меня заключается в том, что мы используем AppId и AppPassword в эмуляторе, возможно, существует проблема аутентификации, которая не позволяет двум ботам разговаривать друг с другом при развертывании в Azure?
Единственная информация в appinsights - это исключение: POST к конечной точке бота завершился неудачно с HTTP-статусом 500, не более подробной информации.
Спасибо за это - можете ли вы подтвердить, что можете перейти к конечной точке манифеста вашего развернутого навыка? например http://YOURSKILLNAME.azurewebsites.net/api/skill/manifest. Это докажет, что навык работает правильно.
Спасибо за это - можете ли вы подтвердить, что можете перейти к конечной точке манифеста вашего развернутого навыка? например http://YOURSKILLNAME.azurewebsites.net/api/skill/manifest. Это докажет, что навык работает правильно.
Да, мой манифест в сети и вроде нормально. Кроме того, если я использую веб-чат в группе ресурсов моего навыка, он работает (конечно, только с диалогами навыков и без VA). Вот мой манифест: https://hsilva-my1stskill.azurewebsites.net/api/skill/manifest.
Все работает внутри эмулятора бота, используя мою виртуальную машину и конечную точку Azure Skill, проблема только внутри VA WebChat при попытке перенаправления для навыка.
Просто двойная проверка приложения-сервиса на предмет Навыка была создана с помощью скрипта развертывания? В любом случае вы можете проверить, включены ли веб-сокеты в службе приложений для навыков? Это устанавливается как часть развертывания навыков.
Просто двойная проверка приложения-сервиса на предмет Навыка была создана с помощью скрипта развертывания? В любом случае вы можете проверить, включены ли веб-сокеты в службе приложений для навыков? Это устанавливается как часть развертывания навыков.
Да, у меня включен веб-сокет в обоих приложениях, в моем виртуальном помощнике и в моем приложении Skill.
И я выполняю весь процесс, следуя документации, со сценариями развертывания.
Спасибо - и последнее, что поможет нам воспроизвести: не могли бы вы поделиться html / js-кодом веб-чата, который вы используете для "размещения" бота VA - конечно, без ваших секретов! Пожалуйста, не используйте элемент управления веб-чатом на странице Azure - вместо этого подключите канал веб-чата и проверьте этот подход.
Если это вам поможет, в моем случае я также активировал веб-сокеты и манифест доступен, я использовал следующий код реакции:
import React, {Component} from 'react';
import {connect} from 'react-redux';
import { DirectLine } from 'botframework-directlinejs';
import ReactWebChat from 'botframework-webchat';
class HomePage extends Component {
constructor(props) {
super(props);
this.directLine = new DirectLine({ token: '' });
}
render() {
return (
<div style={{height:'500px'}}>
<ReactWebChat directLine={ this.directLine }
styleOptions={{}}
locale='fr-FR'
/>
</div>
);
}
}
const mapStateToProps = state => ({
userInfo: state.auth.userInfo,
});
export default connect(mapStateToProps)(HomePage);
Мой манифест: https://dave-skill-jooxter.azurewebsites.net/api/skill/manifest , я не использую соединения oauth.
Спасибо - и последнее, что поможет нам воспроизвести: не могли бы вы поделиться html / js-кодом веб-чата, который вы используете для "размещения" бота VA - конечно, без ваших секретов! Пожалуйста, не используйте элемент управления веб-чатом на странице Azure - вместо этого подключите канал веб-чата и проверьте этот подход.
Извините, но у меня нет html / js, которым можно поделиться, потому что я просто пытаюсь использовать веб-чат Azure внутри портала. Итак, нельзя ли работать в этом чате? Я просто хочу знать, сделал ли я что-то не так или это нормально.
Со своей стороны, я немного больше протестировал своего бота, и кажется, что сообщение от основного бота передается боту-навыку, однако по какой-то причине основной бот не получает ответа от бота-навыка, и это ответ не отправляется клиенту чата.
Спасибо - мне удалось сделать реплику в чате. Странно - расследование.
Спасибо всем, вчера я посмотрел, и @ lzc850612 смог определить проблему, как ни странно, только при появлении в веб-чате, где ответы на действия от навыков не «переписывались» правильно перед отправкой обратно в WebChat, который затем отклонялся.
Я только что подтвердил, что # 1540 устраняет проблему с моим ботом. Пока мы готовим новый пакет nuget .Skills, вы можете двигаться дальше, взяв последнюю сборку из myget, и в то же время, вероятно, будет разумно взять и решения из myget, поскольку они создаются вместе.
Существует пример установки из командной строки, но вы также можете добавить источник пакета в Visual Studio по адресу :
После того, как у вас будут эти версии, повторно разверните своего бота в Azure и повторите попытку.
Спасибо за помощь в диагностике.
@darrenj Мне кажется, что теперь он работает, отличная работа!
Отлично, спасибо, что сообщили нам. К концу недели мы опубликуем новую сборку .solutions и .skills для nuget.
@darrenj Для меня, когда я пытаюсь создать свой проект навыков, у меня возникает эта ошибка.
SkillEvents не содержит определения для SkillBeginEventName, MainDialog.cs, строка 128.
Удалите этот обработчик - последний пакет Skills перешел на использование SemanticObject (через SkillMiddleware), а не на использование отдельного события, поэтому вам не нужно обрабатывать это движение вперед.
case SkillEvents.SkillBeginEventName:
{
var state = await _stateAccessor.GetAsync(dc.Context, () => new SkillState());
if (dc.Context.Activity.Value is Dictionary<string, object> userData)
{
// Capture user data from event if needed
}
break;
}
Удалите этот обработчик - последний пакет Skills перешел на использование SemanticObject (через SkillMiddleware), а не на использование отдельного события, поэтому вам не нужно обрабатывать это движение вперед.
case SkillEvents.SkillBeginEventName: { var state = await _stateAccessor.GetAsync(dc.Context, () => new SkillState()); if (dc.Context.Activity.Value is Dictionary<string, object> userData) { // Capture user data from event if needed } break; }
Спасибо, теперь я снова развернулся, и происходит что-то новое. Ассистент не дождался моего ответа и отправлял мне все ходы многооборотного диалога (также внутри Эмулятора бота).
Я думаю, что он получил еще одно изменение / исправление как часть обновления. @ lzc850612 тот, чтобы взглянуть сразу, как только проснетесь ;-)
Мы только что опубликовали новые пакеты nuget для nuget, которые вы можете обновить и удалить ежедневную версию сборки. Мы просто немного логики, которая требует изменения вашего MainDialog.cs в вашем помощнике, что, я думаю, является корнем проблемы, которую вы видели выше.
В RouteAsync
удалите эту строку
// Pass the activity we have
var result = await dc.ContinueDialogAsync();
WebChat работает "из коробки" с новыми изменениями.
Убедитесь, что все ваши пакеты nuget обновлены ... и навыки работают с веб-чатом!
Самый полезный комментарий
Спасибо - мне удалось сделать реплику в чате. Странно - расследование.