我有一个用 C# 编写的机器人框架技能,它将消息从后端服务中继到使用 Bot Framework Composer 制作的消费者机器人。Skill Bot 在单独的控制器 api/message/BackendMessage 上接收来自后端服务的消息。
[Route("api/message")]
[ApiController]
public class SkillBotBackendController : ControllerBase
{
...
Run Code Online (Sandbox Code Playgroud)
当技能机器人收到消息时,它会将其发送到与消费者机器人的对话中,如下所示......
[HttpPost]
[Route("BackendMessage")]
public async Task PostAsync([FromBody] BackendMessage content)
{
...
await _botFrameworkAdapter.ContinueConversationAsync(
msAppId,
conversationRec.ConversationReference,
(ITurnContext turnContext, CancellationToken cancellationToken) =>
turnContext.SendActivityAsync(MessageFactory.Text(backendMessage),
cancellationToken), default(CancellationToken));
Run Code Online (Sandbox Code Playgroud)
消费者机器人可以看到直接来自技能机器人的所有消息,但看不到技能机器人从后端服务接收的消息。这是一些 ngrok 条目,显示...
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/e13d97b4-c715-4572-8d 200 OK
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/e13d97b4-c715-4572-8d 200 OK
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 401 Unauthorized
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 401 Unauthorized
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 401 Unauthorized
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 401 Unauthorized
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 200 OK
POST /api/skills/v3/conversations/ba72ce2d-3a86-4d86-b640-9a4f3c4d5996/activities/52e6e511-8f72-4b55-97 200 OK …Run Code Online (Sandbox Code Playgroud) c# botframework direct-line-botframework bot-framework-composer
我正在尝试构建一个聊天机器人,我可以在其中与 Luis 一起有效地使用该机器人。
TodoBotewithLuisSample我正在尝试遵循作曲家本身提供的示例。
当我将我的机器人与 Luis 连接并尝试发布时,出现以下错误:
“Luis 构建失败:当前订阅密钥和定价层 LUIS.F0 不支持 LUIS 编程 API v3.0-预览版下的应用程序 - 获取应用程序列表操作。”
这是在免费定价层 LUIS.F0 下,我们无法运行 BotFramework Composer 吗?
我想向自适应卡添加按钮,如下所示:
"actions": [
{
"$data": "${collection}",
"type": "Action.Submit",
"title": "${prop1}",
"data": {
"value": "${prop2}"
}
}
],
Run Code Online (Sandbox Code Playgroud)
这在https://adaptivecards.io/designer/中工作得很好
但在 Composer 的 .lg 中则不然。
为此,请执行以下操作:
"$data": "${collection}",
Run Code Online (Sandbox Code Playgroud)
我需要删除 ${collection} 周围的引号。
但是我没有办法让 prop1 和 prop2 显示每个项目。当您在 $data 字段中声明带有数组的元素时,该元素应该重复,然后绑定的属性将属于数组的每个元素。这也没有发生。
我开始认为 Composer 不支持模板,我需要替换值并使用 lg 语法进行映射。
我有一个现有的机器人。我已经添加了官方文档中所述的自定义操作。当机器人启动时,只有错误消息:
mybot.dialog error: Type Mycustomaction not registered in factory.
Run Code Online (Sandbox Code Playgroud)
会显示在聊天窗口中。
最初,该机器人是使用 Composer 1.x 创建的,迁移到 Composer 2.x 后,现有的自定义操作不起作用,并且添加新的自定义操作失败。
我已经使用 C# 使用机器人框架并托管在 azure 中。我们的机器人与 LUIS 集成并使用 SharePoint 列表来回答常见问题。我们想升级我们的机器人,现在我们看到了许多新的机器人解决方案,如强大的虚拟代理和作曲家。是否值得切换到任何新解决方案?如果是,哪个更好,费用是多少。