Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Composer/packages/client/src/utils/buildUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { getReferredQnaFiles } from './qnaUtil';
import { getBaseName } from './fileUtil';

function createConfigId(fileId: string, language: string) {
return `${fileId}.${language}.lu`;
return `${fileId}.${language}`;
}

export function createCrossTrainConfig(dialogs: DialogInfo[], luFiles: LuFile[], languages: string[]) {
Expand All @@ -29,7 +29,7 @@ export function createCrossTrainConfig(dialogs: DialogInfo[], luFiles: LuFile[],
const triggers = filtered.reduce((result, { intent, dialogs }) => {
const ids = dialogs
.map((dialog) => createConfigId(dialog, language))
.filter((id) => luFiles.some((file) => `${file.id}.lu` === id));
.filter((id) => luFiles.some((file) => `${file.id}` === id));
if (!ids.length && dialogs.length) return result;
result[intent] = ids;
return result;
Expand Down
1 change: 1 addition & 0 deletions Composer/packages/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
"@microsoft/bf-dispatcher": "^4.11.0-beta.20201016.393c6b2",
"@microsoft/bf-generate-library": "^4.10.0-daily.20201015.174962",
"@microsoft/bf-lu": "^4.11.0-dev.20201013.7ccb128",
"@bfcomposer/bf-lu": "1.5.5",
"archiver": "^5.0.2",
"axios": "^0.19.2",
"azure-storage": "^2.10.3",
Expand Down
6 changes: 3 additions & 3 deletions Composer/packages/server/src/models/bot/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import log from '../../logger';

import { luImportResolverGenerator, getLUFiles, getQnAFiles } from './luResolver';

const crossTrainer = require('@microsoft/bf-lu/lib/parser/cross-train/crossTrainer.js');
const crossTrainer = require('@bfcomposer/bf-lu/lib/parser/cross-train/crossTrainer.js');
const luBuild = require('@microsoft/bf-lu/lib/parser/lubuild/builder.js');
const qnaBuild = require('@microsoft/bf-lu/lib/parser/qnabuild/builder.js');
const LuisBuilder = require('@microsoft/bf-lu/lib/parser/luis/luisBuilder');
Expand Down Expand Up @@ -110,11 +110,11 @@ export class Builder {

private async crossTrain(luFiles: FileInfo[], qnaFiles: FileInfo[], allFiles: FileInfo[]) {
const luContents = luFiles.map((file) => {
return { content: file.content, id: file.name };
return { content: file.content, id: Path.basename(file.name, '.lu') };
});

const qnaContents = qnaFiles.map((file) => {
return { content: file.content, id: file.name };
return { content: file.content, id: Path.basename(file.name, '.qna') };
});

const importResolver = luImportResolverGenerator([...getLUFiles(allFiles), ...getQnAFiles(allFiles)]);
Expand Down
47 changes: 1 addition & 46 deletions Composer/packages/server/src/models/bot/preBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,58 +44,13 @@ export class PreBuilder {

async updateCrossTrainConfig(luFiles: FileInfo[], crossTrainConfig?: CrossTrainConfig) {
if (crossTrainConfig && luFiles.length) {
const configWithPath = this.generateCrossTrainConfig(crossTrainConfig, luFiles);
await this.storage.writeFile(
`${this.folderPath}/cross-train.config.json`,
JSON.stringify(configWithPath, null, 2)
JSON.stringify(crossTrainConfig, null, 2)
);
}
}

replaceCrossTrainId(id: string, files: FileInfo[]) {
if (!id) return id;
const luFile = files.find((item) => item.name === id);
return Path.relative(this.folderPath, luFile?.path ?? '');
}

/**
* convert the cross train config from id to relativePath. The cli use the config to find the files.
* config = {
* 'main.lu': {
* rootDialog: true,
* triggers: {
* 'intentA':'diaA.lu',
* 'intentB': 'diaB.lu'
* }
* }
* }
*/
generateCrossTrainConfig(crossTrainConfig: CrossTrainConfig, files: FileInfo[]) {
const pathCache = {};

const configWithPath = keys(crossTrainConfig).reduce((result: CrossTrainConfig, key: string) => {
const { triggers: preTriggers, rootDialog } = crossTrainConfig[key];
// replace the key with path
if (!pathCache[key]) pathCache[key] = this.replaceCrossTrainId(key, files);

const triggers = keys(preTriggers).reduce((result: { [key: string]: string[] }, key) => {
const ids = preTriggers[key];
result[key] = ids.map((item) => {
// replace the trigger value with path
if (!pathCache[item]) pathCache[item] = this.replaceCrossTrainId(item, files);

return pathCache[item];
});
return result;
}, {});

result[pathCache[key]] = { triggers, rootDialog };
return result;
}, {});

return configWithPath;
}

/**
* update the recoginzers before build
*/
Expand Down