我跟随微软虚拟助理的文档,在typescript中创建了一个技能和VA,每个技能和VA都能独立正确运行。我试图将技能连接到VA。
当我运行 botskills connect
在我的公司中,出现了一个兔子洞的错误,似乎是因为我手动设置了技能和 VA 的 Azure 资源,而不是 deploy.ps1。由于公司的治理和政策,我无法运行 deploy.ps1,而是通过公司的 ARM 模板或通过 Azure 门户创建 Azure 资源。
为了解决这个问题。何谓 botskills connect
具体做什么? 我可以自己执行这些步骤吗?我一直找不到关于如何将一个技能连接到VA的文档,而不用运行 botskills connect
.
不幸的是,没有列出实际的错误,我不能帮助解决这些问题,但我可以指导你的目的是 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写的,你现在知道它藏在哪里了,可能会更容易解析。