Typescript 有没有办法将技能手动连接到Microsoft虚拟助手?无需运行连接
我跟随微软的虚拟助手文档,在typescript中创建了一个技能和VA,每个都可以独立正确运行。我正在尝试将技能与VA联系起来 当我运行Typescript 有没有办法将技能手动连接到Microsoft虚拟助手?无需运行连接,typescript,azure,botframework,Typescript,Azure,Botframework,我跟随微软的虚拟助手文档,在typescript中创建了一个技能和VA,每个都可以独立正确运行。我正在尝试将技能与VA联系起来 当我运行botskills connect时,出现了一系列错误,这似乎是因为我手动设置了技能和VA的Azure资源,而不是deploy.ps1。由于公司的治理和政策,我无法运行deploy.ps1,而是通过公司ARM模板或Azure门户创建Azure资源 为了解决这个问题,botskills connect的具体功能是什么?我可以自己执行这些步骤吗?我找不到关于如何在不
botskills connect
时,出现了一系列错误,这似乎是因为我手动设置了技能和VA的Azure资源,而不是deploy.ps1。由于公司的治理和政策,我无法运行deploy.ps1,而是通过公司ARM模板或Azure门户创建Azure资源
为了解决这个问题,botskills connect的具体功能是什么?我可以自己执行这些步骤吗?我找不到关于如何在不运行
botskills connect
的情况下将技能连接到VA的文档 不幸的是,如果没有列出实际错误,我无法帮助您解决这些问题,但我可以告诉您连接的目的
在引擎盖下,botskills connect对您的技能清单和认知模型运行一系列验证。解决这些问题后,它将创建一个新的ConnectSkills对象,并在该对象上调用“.ConnectSkills”
该函数再运行几个验证,然后运行.connectSkillsManifest
此新功能更新Dispatch以涵盖您技能中的新认知模型,最后,在您的VA机器人中创建“skillmanifest”,并在其中添加您的新技能:
private-async-connectSkillManifest(认知模型文件:ICognitiveModel,skillManifest:IManifest):承诺{
试一试{
//以VA技能配置为例
const-assistantSkillsFile:iappset=JSON.parse(readFileSync(this.configuration.appsetingsfile,'UTF8');
const assistantSkills:ISkill[]=assistantSkills文件.botFrameworkSkills!==未定义?assistantSkills文件.botFrameworkSkills:[];
//检查技能是否已连接到助手
if(assistantSkills.find((assistantSkill:ISkill):boolean=>assistantSkill.id==skillManifest.id)){
this.logger.warning(`ID为'${skillManifest.ID}'的技能已注册。`);
返回;
}
//验证文化
等待这个消息。validateCultures(认知模型文件,skillManifest.luisDictionary);
//更新调度
this.logger.message('update Dispatch');
等待这个.updateModel(skillManifest.luisDictionary,skillManifest.id);
//将技能清单添加到助手技能数组
此.logger.message(`Appending'${skillManifest.name}'清单到助手的技能配置文件。`);
//使用助手技能数组更新助手技能文件的技能属性
//写入(和重写)助手技能文件
//writeFileSync(this.configuration.skillsFile,JSON.stringify(assistantSkillsFile,未定义,4));
等待这个。添加技能(助手技能文件、助手技能、技能清单);
this.logger.success(`successfulladded'${skillManifest.name}'清单到助手的技能配置文件!`);
//配置机器人身份验证设置
//此.logger.message('Configuring bot auth settings');
//等待this.authenticationUtils.authenticate(this.configuration、skillManifest、this.logger);
}捕捉(错误){
this.logger.error(`将技能连接到助手时出错:\n${err}`);
}
}
我的打字脚本技能有点生疏,但这都是在TS中完成的,现在你知道了它的隐藏位置,你可能会更容易解析它 感谢您的回复,我在这里发布了一个带有我具体错误的后续问题:
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 }`);
}
}