是否有办法将技能手动连接到微软虚拟助理?在不运行botskills连接

问题描述 投票:1回答:1

我跟随微软虚拟助理的文档,在typescript中创建了一个技能和VA,每个技能和VA都能独立正确运行。我试图将技能连接到VA。

当我运行 botskills connect在我的公司中,出现了一个兔子洞的错误,似乎是因为我手动设置了技能和 VA 的 Azure 资源,而不是 deploy.ps1。由于公司的治理和政策,我无法运行 deploy.ps1,而是通过公司的 ARM 模板或通过 Azure 门户创建 Azure 资源。

为了解决这个问题。何谓 botskills connect 具体做什么? 我可以自己执行这些步骤吗?我一直找不到关于如何将一个技能连接到VA的文档,而不用运行 botskills connect.

typescript azure botframework
1个回答
1
投票

不幸的是,没有列出实际的错误,我不能帮助解决这些问题,但我可以指导你的目的是 botskills connect.

在外壳下,botskills connect会对你的技能清单和认知模型进行一系列验证。一旦解决了这些问题,它就会创建一个新的ConnectSkills对象,并在该对象上调用'.connectSkills'。1

该函数再运行几个验证,然后运行.connectSkillsManifest。2

这个新功能更新了Dispatch,以覆盖你的技能中的新认知模型,最后,在你的VA机器人中创建一个 "技能清单",并在那里添加你的新技能。3

private async connectSkillManifest(cognitiveModelsFile: ICognitiveModel, skillManifest: IManifest): Promise<void> {
        try {
            // Take VA Skills configurations
            const assistantSkillsFile: IAppSetting = JSON.parse(readFileSync(this.configuration.appSettingsFile, 'UTF8'));
            const assistantSkills: ISkill[] = assistantSkillsFile.botFrameworkSkills !== undefined ? assistantSkillsFile.botFrameworkSkills : [];

            // Check if the skill is already connected to the assistant
            if (assistantSkills.find((assistantSkill: ISkill): boolean => assistantSkill.id === skillManifest.id)) {
                this.logger.warning(`The skill with ID '${ skillManifest.id }' is already registered.`);
                return;
            }

            // Validate cultures
            await this.validateCultures(cognitiveModelsFile, skillManifest.luisDictionary);
            // Updating Dispatch
            this.logger.message('Updating Dispatch');
            await this.updateModel(skillManifest.luisDictionary, skillManifest.id);
            // Adding the skill manifest to the assistant skills array
            this.logger.message(`Appending '${ skillManifest.name }' manifest to your assistant's skills configuration file.`);
            // Updating the assistant skills file's skills property with the assistant skills array
            // Writing (and overriding) the assistant skills file
            //writeFileSync(this.configuration.skillsFile, JSON.stringify(assistantSkillsFile, undefined, 4));
            await this.AddSkill(assistantSkillsFile, assistantSkills, skillManifest);
            this.logger.success(`Successfully appended '${ skillManifest.name }' manifest to your assistant's skills configuration file!`);
            // Configuring bot auth settings
            //this.logger.message('Configuring bot auth settings');
            //await this.authenticationUtils.authenticate(this.configuration, skillManifest, this.logger);
        } catch (err) {
            this.logger.error(`There was an error while connecting the Skill to the Assistant:\n${ err }`);
        }
    }

我的排版技巧有点生疏,但这都是用TS写的,你现在知道它藏在哪里了,可能会更容易解析。

© www.soinside.com 2019 - 2024. All rights reserved.