Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.
Merged
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
2 changes: 2 additions & 0 deletions packages/luis/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,8 @@ OPTIONS
--suffix=suffix Environment name as a suffix identifier to include in LUIS app name. Defaults to
current logged in user alias

--endpoint Luis authoring endpoint for publishing

EXAMPLE

$ bf luis:build --in {INPUT_FILE_OR_FOLDER} --authoringKey {AUTHORING_KEY} --botName {BOT_NAME} --dialog
Expand Down
2 changes: 1 addition & 1 deletion packages/luis/src/commands/luis/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export default class LuisBuild extends Command {
luConfig: flags.string({description: 'Path to config for lu build which can contain switches for arguments'}),
deleteOldVersion: flags.boolean({description: 'Delete old version of LUIS application after building new one.'}),
log: flags.boolean({description: 'write out log messages to console', default: false}),
endpoint: flags.string({description: 'Luis authoring endpoint for publishing'})
}

async run() {
Expand All @@ -67,7 +68,6 @@ export default class LuisBuild extends Command {

// Flags override userConfig
let luisBuildFlags = Object.keys(LuisBuild.flags)
luisBuildFlags.push('endpoint')

let {inVal, authoringKey, botName, region, out, defaultCulture, fallbackLocale, suffix, dialog, force, luConfig, deleteOldVersion, log, endpoint}
= await utils.processInputs(flags, luisBuildFlags, this.config.configDir)
Expand Down
72 changes: 63 additions & 9 deletions packages/luis/test/commands/luis/build.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -653,30 +653,30 @@ describe('luis:build update application succeed with parameters set from luconfi
before(async function () {
await fs.ensureDir(path.join(__dirname, './../../../results/'))

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('apps'))
.reply(200, [{
name: 'MyProject(development)-test.en-us.lu',
id: 'f8c64e2a-8635-3a09-8f78-39d7adc76ec5'
}])

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('apps'))
.reply(200, {
name: 'MyProject(development)-test.en-us.lu',
id: 'f8c64e2a-8635-3a09-8f78-39d7adc76ec5',
activeVersion: '0.1'
})

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('export'))
.reply(200, existingLuisApp)

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('import'))
.reply(201, '0.2')

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('apps'))
.reply(200, [
{
Expand All @@ -687,18 +687,18 @@ describe('luis:build update application succeed with parameters set from luconfi
}
])

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.delete(uri => uri.includes('apps'))
.reply(200)

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('train'))
.reply(202, {
statusId: 2,
status: 'UpToDate'
})

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('train'))
.reply(200, [{
modelId: '99999',
Expand All @@ -709,7 +709,7 @@ describe('luis:build update application succeed with parameters set from luconfi
}
}])

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('publish'))
.reply(201, {
versionId: '0.2',
Expand Down Expand Up @@ -862,4 +862,58 @@ describe('luis:build update application succeed when activeVersion is null', ()
expect(ctx.stdout).to.contain('publishing version=0.2')
expect(ctx.stdout).to.contain('publishing finished')
})
})

describe('luis:build create a new application successfully with endpoint override', () => {
before(function () {
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('apps'))
.reply(200, [{
name: 'test.en-us.lu',
id: 'f8c64e2a-1111-3a09-8f78-39d7adc76ec5'
}])

nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('import'))
.reply(201, {
appId: 'f8c64e2a-2222-3a09-8f78-39d7adc76ec5'
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('train'))
.reply(202, {
statusId: 2,
status: 'UpToDate'
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('train'))
.reply(200, [{
modelId: '99999',
details: {
statusId: 0,
status: 'Success',
exampleCount: 0
}
}])

nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('publish'))
.reply(201, {
versionId: '0.2',
isStaging: true
})
})

test
.stdout()
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich//lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--log', '--suffix', 'development', '--endpoint', 'https://chinaeast2.api.cognitive.azure.cn/'])
.it('should create a new application successfully with endpoint override', ctx => {
expect(ctx.stdout).to.contain('Handling applications...')
expect(ctx.stdout).to.contain('Creating LUIS.ai application')
expect(ctx.stdout).to.contain('training version=0.1')
expect(ctx.stdout).to.contain('waiting for training for version=0.1')
expect(ctx.stdout).to.contain('publishing version=0.1')
expect(ctx.stdout).to.contain('publishing finished')
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"deleteOldVersion": true,
"out": "./../../../../../../results",
"dialog": "multiLanguage",
"endpoint": "https://chinaeast2.api.cognitive.azure.cn",
"models": [
"./test.lu"
]
Expand Down
4 changes: 3 additions & 1 deletion packages/qnamaker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,16 @@ OPTIONS

--log write out log messages to console

--luConfig=luConfig Path to config for qnamaker build which can contain switches for arguments
--qnaConfig=qnaConfig Path to config for qnamaker build which can contain switches for arguments

--region=region [default: westus] Overrides public endpoint
https://<region>.api.cognitive.microsoft.com/qnamaker/v4.0/

--suffix=suffix Environment name as a suffix identifier to include in qnamaker kb name.
Defaults to current logged in user alias

--endpoint=endpoint Qnamaker authoring endpoint for publishing

EXAMPLE

$ bf qnamaker:build --in {INPUT_FILE_OR_FOLDER} --subscriptionKey {SUBSCRIPTION_KEY} --botName {BOT_NAME}
Expand Down
2 changes: 1 addition & 1 deletion packages/qnamaker/src/commands/qnamaker/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export default class QnamakerBuild extends Command {
force: flags.boolean({char: 'f', description: 'If --out flag is provided, overwrites relevant dialog file', default: false}),
qnaConfig: flags.string({description: 'Path to config for qna build which can contain switches for arguments'}),
log: flags.boolean({description: 'write out log messages to console', default: false}),
endpoint: flags.string({description: 'Qnamaker authoring endpoint for publishing'})
}

async run() {
Expand All @@ -67,7 +68,6 @@ export default class QnamakerBuild extends Command {

// Flags override userConfig
let qnamakerBuildFlags = Object.keys(QnamakerBuild.flags)
qnamakerBuildFlags.push('endpoint')

let {inVal, subscriptionKey, botName, region, out, defaultCulture, fallbackLocale, suffix, dialog, force, log, endpoint}
= await processFlags(flags, qnamakerBuildFlags, this.config.configDir)
Expand Down
78 changes: 73 additions & 5 deletions packages/qnamaker/test/commands/qnamaker/build.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,7 @@ describe('qnamaker:build update knowledge base successfully with parameters set
before(async function () {
await fs.ensureDir(path.join(__dirname, './../../../results/'))

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('qnamaker'))
.reply(200, {
knowledgebases:
Expand All @@ -561,7 +561,7 @@ describe('qnamaker:build update knowledge base successfully with parameters set
}]
})

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('knowledgebases'))
.reply(200, {
qnaDocuments: [{
Expand All @@ -573,15 +573,15 @@ describe('qnamaker:build update knowledge base successfully with parameters set
}]
})

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.put(uri => uri.includes('knowledgebases'))
.reply(204)

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('knowledgebases'))
.reply(204)

nock('https://westus.api.cognitive.microsoft.com')
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('endpointkeys'))
.reply(200, {
primaryEndpointKey: 'xxxx',
Expand All @@ -606,4 +606,72 @@ describe('qnamaker:build update knowledge base successfully with parameters set
expect(await compareFiles('./../../../results/test.en-us.qna.dialog', './../../fixtures/testcases/qnabuild/sandwich/dialogs/test.en-us.qna.dialog')).to.be.true
expect(await compareFiles('./../../../results/test.qna.dialog', './../../fixtures/testcases/qnabuild/sandwich/dialogs/test.qna.dialog')).to.be.true
})
})

describe('qnamaker:build create a new knowledge base successfully with endpoint override', () => {
before(function () {
nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('qnamaker'))
.reply(200, {
knowledgebases:
[{
name: 'test.en-us.qna',
id: 'f8c64e2a-1111-3a09-8f78-39d7adc76ec5',
hostName: 'https://myqnamakerbot.azurewebsites.net'
}]
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('createasync'))
.reply(202, {
operationId: 'f8c64e2a-aaaa-3a09-8f78-39d7adc76ec5'
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('operations'))
.reply(200, {
operationState: 'Succeeded',
resourceLocation: 'a/b/f8c64e2a-2222-3a09-8f78-39d7adc76ec5'
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.put(uri => uri.includes('knowledgebases'))
.reply(204)

nock('https://chinaeast2.api.cognitive.azure.cn')
.post(uri => uri.includes('knowledgebases'))
.reply(204)

nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('knowledgebases'))
.reply(200, {
id: 'f8c64e2a-1111-3a09-8f78-39d7adc76ec5',
hostName: 'https://myqnamakerbot.azurewebsites.net'
})

nock('https://chinaeast2.api.cognitive.azure.cn')
.put(uri => uri.includes('alterations'))
.reply(204)

nock('https://chinaeast2.api.cognitive.azure.cn')
.get(uri => uri.includes('endpointkeys'))
.reply(200, {
primaryEndpointKey: 'xxxx',
secondaryEndpointKey: 'yyyy'
})
})

test
.stdout()
.command(['qnamaker:build', '--in', './test/fixtures/testcases/qnabuild/sandwich/qnafiles/sandwich.en-us.qna', '--subscriptionKey', uuidv1(), '--botName', 'test', '--log', '--suffix', 'development', '--endpoint', 'https://chinaeast2.api.cognitive.azure.cn/qnamaker/v4.0'])
.it('should create a new knowledge base successfully with endpoint override', ctx => {
expect(ctx.stdout).to.contain('Handling qnamaker knowledge bases...')
expect(ctx.stdout).to.contain('Creating qnamaker KB: test(development).en-us.qna...')
expect(ctx.stdout).to.contain('Creating finished')
expect(ctx.stdout).to.contain('Publishing kb')
expect(ctx.stdout).to.contain('Publishing finished')
expect(ctx.stdout).to.contain('Replacing alterations...')
expect(ctx.stdout).to.contain('xxxx')
expect(ctx.stdout).to.contain('yyyy')
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"dialog": "multiLanguage",
"suffix": "development",
"log": true,
"endpoint": "https://chinaeast2.api.cognitive.azure.cn/qnamaker/v4.0",
"models": [
"./sandwich2.en-us.qna"
]
Expand Down