我使用Microsoft Bot Framework制作了一个简单的聊天机器人,并将其与 Telegram 集成。每当我私下给他发消息时,他都表现得很好,但每当我将他与我的朋友放在一个小组中时,即使我提到他,他也不会回复。
/setjoingroups已启用, 也是如此/setprivacy。
刚刚学习如何使用Azure 机器人服务和Azure Bot Framework. 我按照此Azure 官方教程在 Azure 门户中创建了一个机器人。这个机器人需要在某个地方发布吗?我在某处读到你Build-->Test-->Publish-->Evaluate。我已经按照此处的说明在 Azure 门户中对其进行了测试。不确定它的发布部分。
azure azure-machine-learning-studio botframework azure-bot-service
我正在使用 Microsoft 的 C# Bot 框架开发机器人。我试图在用户发送任何内容之前向用户发送欢迎消息作为介绍。
经过研究,我HandleSystemMessage在a的情况下使用function和发送消息在某种程度上实现了这一点ConversationUpdate,如下所示:
if (activity.Type == ActivityTypes.ConversationUpdate)
{
IConversationUpdateActivity update = activity;
if (update.MembersAdded.Any())
{
foreach (var newMember in update.MembersAdded)
{
if (newMember.Id != activity.Recipient.Id)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
Activity reply = activity.CreateReply();
reply.Text("Hello, how can I help you?");
await connector.Conversations.ReplyToActivityAsync((Activity)bubble);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我用这种方法面临的问题:
我认为我的问题可以使用另一种ActivityType或者一些 Javascript 'hacky' 方式来解决,但直到现在我找不到解决方案。
我正在尝试为机器人框架创建 Ansible 剧本。从它的外观来看,REST API 不能用于创建机器人,但可以从 Azure CLI https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tools-az 获得-cli?view=azure-bot-service-3.0。
有没有办法从 Ansible 调用 Azure CLI 函数,因为创建资源模块将无法处理它?
我正在尝试使用最新的机器人版本 v4 在聊天机器人应用程序中获取用户名。如何在更新的机器人版本 v4 中获取用户名?
我在 sdk V4 Bot 中实现了一个中间件来拦截 bot 和用户之间的每条消息并记录该自定义 mongo Db。我正在尝试为使用 SDK v4 构建的 Bot 实现类似的概念。看起来我可以使用以下代码添加中间件,但是不确定如何区分机器人到用户和用户到机器人之间的消息。
V3 机器人代码
bot.use({
botbuilder: function (session, next) {
logUserConversation(session)
next()
},
send: function (event, next) {
logBotsConversation(event)
next()
}
})
Run Code Online (Sandbox Code Playgroud)
中间件的 V4 bot 代码
botAdapter.use(async (turnContext, next) => {
// How to find which messages/activity object is from user to bot
await next();
// How to find which messages/activity object is from bot to user.
});
Run Code Online (Sandbox Code Playgroud) 我已经发送了包含捕获详细信息和按钮的卡片。从任务模块单击提交后,该模块将通过 http API 保存详细信息,此处的活动类型为“调用”。现在我必须更新现有的自适应卡。
我有更新消息的代码,但如何更新卡或再次重新发送卡。
connector = new ConnectorClient(new Uri(activity.ServiceUrl));
reply = activity.CreateReply($"You sent {activity.Text} which was {activity.Text.Length} characters");
var msgToUpdate = await connector.Conversations.ReplyToActivityAsync(reply);
Activity updatedReply = activity.CreateReply($"This is an updated message");
await connector.Conversations.UpdateActivityAsync(reply.Conversation.Id, msgToUpdate.Id, updatedReply);
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的机器人对话框构建一些测试。我将相同的测试代码(和修改后的测试数据)与两个具有相同对话框名称的不同机器人一起使用。因此,两个机器人的 test.js 文件是相同的。但是,当我尝试在第二个机器人上通过 Mocha 运行我的测试时,我得到了一个Error: DialogSet.add(): Invalid dialog being added.每次测试的消息。我的第一个机器人不会发生这种情况。我什至尝试将第二个机器人中的对话框文件替换为(工作)中的对话框文件,但我仍然遇到相同的错误。因此,我在机器人之间找不到任何不同之处。我什至用第一个机器人的文件替换了所有有问题的文件(测试、测试数据/对话和对话框本身),但仍然出现相同的错误。最后,机器人之间的所有 botbuilder 包和其他依赖项都是相同的版本。我在这里不知所措......有人有任何想法吗?
这是正在调用的对话框。我省略了实际的对话框步骤,但这应该与问题无关,因为所有的对话框添加活动都发生在构造函数中。
const { TextPrompt, ChoicePrompt, ConfirmPrompt, ChoiceFactory, ComponentDialog, WaterfallDialog, DialogSet, DialogTurnStatus } = require('botbuilder-dialogs');
const { VistaServiceHelper } = require('../helpers/vistaServiceHelper');
const { TrackingServiceHelper } = require('../helpers/trackingServiceHelper');
const { CosmosDbStorage } = require('botbuilder-azure');
const LINE_PROMPT = 'linePrompt';
const ORDER_PROMPT = 'orderPrompt';
const CRITERIA_PROMPT = 'criteriaPrompt';
const SEARCH_CRITERIA = ['GO', 'PO'];
const WATERFALL_DIALOG = 'waterfallDialog';
const CONFIRM_PROMPT = 'confirmPrompt';
// Static texts
const escalateMessage = `Escalation message here` …Run Code Online (Sandbox Code Playgroud) 我为 Microsoft Teams 创建了一个应用程序,可以将其添加到团队中。该应用程序是使用 Microsoft Bot 框架创建的聊天机器人。我已经制作了其他两个具有类似功能的应用程序,可以很好地安装。
当我使用 App Studio(并链接到现有机器人)创建我的应用程序时,一切都很好,但是当我尝试将其添加到团队时,我收到“出现问题”消息,并且也没有向我的机器人发送请求。 ..
有没有人遇到过类似的问题,或者有人知道如何调试吗?我的清单如下。
清单如下(替换了 id)。
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.5/MicrosoftTeams.schema.json",
"manifestVersion": "1.5",
"version": "0.0.2",
"id": "my-id-is-here",
"packageName": "nl.getsofia.teams.acceptance",
"developer": {
"name": "Sofia Melius B.V.",
"websiteUrl": "https://www.getsofia.nl",
"privacyUrl": "https://www.getsofia.nl/",
"termsOfUseUrl": "https://www.getsofia.nl/"
},
"icons": {
"color": "color.png",
"outline": "outline.png"
},
"name": {
"short": "Sofia Acceptance 2",
"full": "Sofia Acceptance Nice"
},
"description": {
"short": "ACCEPTANCE bot",
"full": "ACCEPTANCE bot long description"
},
"accentColor": "#FFFFFF",
"bots": [
{
"botId": "my-bot-id-is-here",
"scopes": [
"personal",
"team"
],
"commandLists": …Run Code Online (Sandbox Code Playgroud) 我已经使用 C# 使用机器人框架并托管在 azure 中。我们的机器人与 LUIS 集成并使用 SharePoint 列表来回答常见问题。我们想升级我们的机器人,现在我们看到了许多新的机器人解决方案,如强大的虚拟代理和作曲家。是否值得切换到任何新解决方案?如果是,哪个更好,费用是多少。
botframework ×10
azure ×3
c# ×3
node.js ×2
ansible ×1
azure-machine-learning-studio ×1
chatbot ×1
json ×1
middleware ×1
mocha.js ×1
telegram ×1
telegram-bot ×1