是否可以在没有azure平台的情况下创建chatbot(使用Microsoft bot平台和luis)

时间:2018-09-04 11:58:42

标签: azure botframework chatbot luis

我想创建一个不使用azure平台的机器人程序服务。使用Microsoft bot平台和luis的bot应用程序。

有什么解决办法吗?

4 个答案:

答案 0 :(得分:2)

不。为了使用Bot服务或LUIS,您需要Azure(这是必需的)。

答案 1 :(得分:0)

相同的结论-您必须在Azure上创建一个帐户-订阅它-给出您的信用卡,最后您可以发布您的漫游器(在线)。

在GitHub上发布项目以使其最终成为免费版是很奇怪的。 我希望Ms能够在V4框架中实现这一目标。

答案 2 :(得分:0)

您可以使用Luis和Visual Studio以及Bot Emulator创建聊天机器人。您可以在Luis中创建意图和实体,也可以将它们添加到c#代码中。但是,要发布该bot,您应该在Azure中进行订阅。

答案 3 :(得分:0)

没有Azure订阅就不可能拥有MS Bot,因为您必须在Azure上注册机器人,而无需花一分钱。谈到费用,问题是您是否可以使用其他托管人。

我有一个在DigitalOcean上运行的botbuilder@4.0.0-preview1.2,没有任何问题。 不幸的是,目前与发行版@ 4.1.2的情况不同。尽管它可以在模拟器中运行,但我倾向于说没有正式版本的解决方案。

尝试使用botbuilder@4.1.7进行基本更改的结果是:“将此消息发送到您的机器人时出错:HTTP状态代码ServiceUnavailable”

为了使“ botbuilder@4.0.0-preview1.2”正常工作,我对以下示例https://github.com/Microsoft/BotBuilder-Samples/blob/master/samples/javascript_typescript/13.basic-bot/src/index.ts中的index.ts和bot.ts进行了以下更改。

1)删除此导入(index.ts)

// import { BotConfiguration, IEndpointService } from 'botframework-config';

2)删除此配置(index.ts)

// const BOT_FILE = path.join(__dirname, '..', (process.env.botFilePath || ''));
// let botConfig: BotConfiguration;
// try {
//     // Read bot configuration from .bot file.
//     botConfig = BotConfiguration.loadSync(BOT_FILE, process.env.botFileSecret);
// } catch (err) {
//     console.error(`\nError reading bot file. Please ensure you have valid botFilePath and botFileSecret set for your environment.`);
//     console.error(`\n - The botFileSecret is available under appsettings for your Azure Bot Service bot.`);
//     console.error(`\n - If you are running this bot locally, consider adding a .env file with botFilePath and botFileSecret.`);
//     console.error(`\n - See https://aka.ms/about-bot-file to learn more about .bot     file its use and bot configuration.\n\n`);
//     process.exit();
// }

3)摆脱掉(index.ts)

// const BOT_CONFIGURATION = (process.env.NODE_ENV || DEV_ENVIRONMENT);
// const endpointConfig = <IEndpointService>botConfig.findServiceByNameOrId(BOT_CONFIGURATION);

4)替换(index.ts)

// const adapter : BotFrameworkAdapter = new BotFrameworkAdapter({
//     appId: endpointConfig.appId || process.env.microsoftAppID,
//     appPassword: endpointConfig.appPassword || process.env.microsoftAppPassword
// });

const adapter : BotFrameworkAdapter = new BotFrameworkAdapter({
    appId: process.env.microsoftAppID,
    appPassword: process.env.microsoftAppPassword
});

5)替换(index.ts)

// let bot: BasicBot;
// try {
//     bot = new BasicBot(conversationState, userState, botConfig);
// } catch (err) {
//     console.error(`[botInitializationError]: ${ err }`);
//     process.exit();
// }

let bot: BasicBot;
try {
    bot = new BasicBot(conversationState, userState);
} catch (err) {
    console.error(`[botInitializationError]: ${ err }`);
    // process.exit();
}

6)现在在bot.ts中,通过删除第三个参数“ botConfig” https://github.com/Microsoft/BotBuilder-Samples/blob/master/samples/javascript_typescript/13.basic-bot/src/bot.ts来更改Bot构造函数的签名。

替换

// constructor(conversationState: ConversationState, userState: UserState, botConfig: BotConfiguration) {...

constructor(conversationState: ConversationState, userState: UserState) {...

7)删除bot.ts中所有对botConfig的引用,因为这似乎仅用于其他Azure服务

// if (!botConfig) throw ('Missing parameter.  botConfig is required');
//
// add the LUIS recognizer
// let luisConfig: LuisService;
// luisConfig = <LuisService>botConfig.findServiceByNameOrId(LUIS_CONFIGURATION);
// if (!luisConfig || !luisConfig.appId) throw ('Missing LUIS configuration. Please follow README.MD to create required LUIS applications.\n\n');
// this.luisRecognizer = new LuisRecognizer({
//     applicationId: luisConfig.appId,
//
// CAUTION: Its better to assign and use a subscription key instead of authoring key here.
//     endpointKey: luisConfig.authoringKey,
//     endpoint: luisConfig.getEndpoint()
// });

8)不要忘记根据bot.ts中步骤7的已删除变量删除所有逻辑。