我正在使用Microsoft Bot Framework开发一个聊天机器人,我最近将框架3.0升级到3.5.升级之前它工作正常,但现在
当用户向我的机器人发送消息时,他会收到欢迎消息.但是当用户响应时,bot再次发送欢迎消息.我怎样才能解决这个问题?这是代码.
private Activity HandleSystemMessage(Activity message)
{
if (message.Type == ActivityTypes.DeleteUserData)
{
// Implement user deletion here
// If we handle user deletion, return a real message
}
else if (message.Type == ActivityTypes.ContactRelationUpdate)
{
// Handle conversation state changes, like members being added and removed
// Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
// Not available in all channels
}
else if (message.Type == ActivityTypes.ConversationUpdate)
{
// Handle conversation state changes, like members being added and removed …Run Code Online (Sandbox Code Playgroud) 目标是保存一个频道成员(例如MS团队)之间的所有对话,然后将其发送到另一个频道.
是否可以通过sideloaded bot或其他东西捕获通道成员之间的所有消息?
我使用了文档中的代码:
const logUserConversation = (event) => {
console.log('message: ' + event.text + ', user: ' + event.address.user.name);
};
// Middleware for logging
bot.use({
receive: function (event, next) {
logUserConversation(event);
next();
},
send: function (event, next) {
logUserConversation(event);
next();
}
});
Run Code Online (Sandbox Code Playgroud)
但它只有在你直接@mentioning机器人时触发,如果在渠道成员之间进行对话,则不会采取任何行动.我怀疑它可能是僵尸框架的安全策略,根本不可能......
有什么想法吗?
更新:好的,支持成员告诉我,这样做的能力在路线图上,稍后将使用Graph API提供.
“您可以使用Direct Line API启用机器人与您自己的客户端应用程序之间的通信。”
根据我的观察,Bot(使用botframework创建)本身就是一个端点。为什么我们不能直接使用Bot的API与机器人进行通信?为什么我们需要直线?
我按照Microsoft教程的说明创建了一个三明治订单机器人.我的目标是让这个僵尸程序应用程序进行交互,因此我将使用语言理解(LUIS)服务API来实现此目的.
在三明治聊天中,用户可以选择他们想要添加的内容,例如.salad,sauce等等.
我不确定我是否应该使用LUIS层次结构或列表实体.
以下是我对LUIS实体的看法:
以下是我对列表实体的看法:
我不知道如何创建的关系sandwich和sandwich fillings.此外,如果它应该是列表或分层.
谢谢你的时间,欣赏它!
我目前正在使用Twilio WhatsApp API和Bot Framework Direct Line通道尝试将我的聊天机器人集成到WhatsApp。
由于我的聊天机器人对话是有指导的,因此会使用很多PromptDialog.Choices消息(这是英雄卡片)。有没有一种方法可以使用Twilio WhatsApp API将这些消息以其预期的形式(即带有单击按钮的含义)发送给Whatsapp?
我正在使用 botbuilder-python 来构建 MS Teams 机器人。以下示例我能够回复消息。我正在努力创建全新的消息,而没有从 Teams 传递的现有活动。我修改了测试中的一些代码(https://github.com/Microsoft/botbuilder-python/blob/62b0512a4dd918fa0d3837207012b31213aaedcc/libraries/botframework-connector/tests/test_conversations.py)但我得到:
botbuilder.schema.error_response_py3.ErrorResponseException: (BadSyntax) 无法解析租户 ID
它是什么,我在哪里可以找到它(我可以从请求中取出它,但它并不理想)以及如何传递它?任何人都可以向我指出创建新对话的任何 Python 示例吗?
通过 azure 构建的示例机器人基于此文档
我正在尝试重构对话框的部分功能,我需要访问我认为应该从 luis 调用返回的部分 json。但是,当我尝试从 $instance 访问时,出现错误,提示我无法访问响应的子元素。
这是json的一个例子:
+ Entities {{
"$instance": {
"To": [
{
"startIndex": 10,
"endIndex": 15,
"text": "paris",
"type": "To",
"score": 0.987954
}
]
},
"To": [
{
"$instance": {
"Airport": [
{
"startIndex": 10,
"endIndex": 15,
"text": "paris",
"type": "Airport"
}
]
},
"Airport": [
[
"Paris"
]
]
}
]
}} Newtonsoft.Json.Linq.JObject
Run Code Online (Sandbox Code Playgroud)
这是访问json的代码:
+ Entities {{
"$instance": {
"To": [
{
"startIndex": 10,
"endIndex": 15,
"text": "paris",
"type": "To",
"score": 0.987954 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个以英雄卡列表为选项的提示对话框。
我创建了一个函数,该函数将返回 herocard 列表并将其用作对话框提示选项。
我怎样才能做到这一点?或者有更好的方法来实现它。注意:我需要把它放在对话提示中,因为我需要实现一个顺序对话。我还将英雄卡列表放在一个单独的函数中,因为我将在其他对话框提示中使用它。
async selectProduct(stepContext){
return await stepContext.prompt(CHOICE_PROMPT, {
prompt: 'Select Product:',
choices: this.productChoices()
});
}
productChoices(){
const productSeriesOptions = [
CardFactory.heroCard(
'Title 1',
CardFactory.images(['image URL 1']),
CardFactory.actions([
{
type: ActionTypes.ImBack,
title: 'Title 1',
value: 'Value 1'
}
])
),
CardFactory.heroCard(
'Title 2',
CardFactory.images(['image URL 2']),
CardFactory.actions([
{
type: ActionTypes.ImBack,
title: 'Title 2',
value: 'Value 2'
}
])
)
];
return productSeriesOptions;
}
Run Code Online (Sandbox Code Playgroud) 我正在查看 EchoBot 示例并试图理解它。我看到 BotController 映射到 api/messages 和 HttpPost,后者又调用 Adapter.ProcessAsync。但这如何转化为 EchoBot.OnMessageActivityAsync 调用?我尝试设置断点并查看调用堆栈,但这无济于事(请参阅附加的屏幕截图)。
我知道 BotFrameworkHttpAdapter 是通过依赖注入调用的。但我不知道我们最终是如何进入 EchoBot 的。
botframework ×10
azure-language-understanding ×2
c# ×2
node.js ×2
asp.net ×1
bots ×1
facebook ×1
json ×1
python ×1
twilio ×1
twilio-api ×1
whatsapp ×1