Azure Search call fix for managing KB indexes.
This commit is contained in:
parent
1f1d63c2ff
commit
c173fa8a8e
5 changed files with 36 additions and 54 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
import { KBService } from './../../kb.gbapp/services/KBService';
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
| ( )_ _ |
|
| ( )_ _ |
|
||||||
| _ _ _ __ _ _ __ ___ ___ _ _ | ,_)(_) ___ ___ _ |
|
| _ _ _ __ _ _ __ ___ ___ _ _ | ,_)(_) ___ ___ _ |
|
||||||
|
@ -45,7 +46,7 @@ const UrlJoin = require("url-join");
|
||||||
export class AdminDialog extends IGBDialog {
|
export class AdminDialog extends IGBDialog {
|
||||||
|
|
||||||
static setup(bot: UniversalBot, min: GBMinInstance) {
|
static setup(bot: UniversalBot, min: GBMinInstance) {
|
||||||
|
|
||||||
let importer = new GBImporter(min.core);
|
let importer = new GBImporter(min.core);
|
||||||
let deployer = new GBDeployer(min.core, importer);
|
let deployer = new GBDeployer(min.core, importer);
|
||||||
|
|
||||||
|
@ -66,18 +67,18 @@ export class AdminDialog extends IGBDialog {
|
||||||
session.send(
|
session.send(
|
||||||
"Welcome to Pragmatismo.io GeneralBots Administration."
|
"Welcome to Pragmatismo.io GeneralBots Administration."
|
||||||
);
|
);
|
||||||
Prompts.text(session, "Which task do you wanna run now?");
|
Prompts.text(session, "Which task do you wanna run now?");
|
||||||
} else {
|
} else {
|
||||||
session.endDialog();
|
session.endDialog();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
function(session: Session, results) {
|
function (session: Session, results) {
|
||||||
var text = results.response;
|
var text = results.response;
|
||||||
if (text === "quit") {
|
if (text === "quit") {
|
||||||
session.privateConversationData.authenticated = false;
|
session.privateConversationData.authenticated = false;
|
||||||
session.replaceDialog("/");
|
session.replaceDialog("/");
|
||||||
} else if (text === "sync") {
|
} else if (text === "sync") {
|
||||||
min.core.syncDatabaseStructure(() => {});
|
min.core.syncDatabaseStructure(() => { });
|
||||||
session.send("Sync started...");
|
session.send("Sync started...");
|
||||||
session.replaceDialog("/admin", {
|
session.replaceDialog("/admin", {
|
||||||
firstRun: false
|
firstRun: false
|
||||||
|
@ -95,7 +96,7 @@ export class AdminDialog extends IGBDialog {
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
} else if (text.split(" ")[0] === "redeployPackage") {
|
} else if (text.split(" ")[0] === "redeployPackage") {
|
||||||
AdminDialog.undeployPackageCommand(text, min,session, () => {
|
AdminDialog.undeployPackageCommand(text, min, session, () => {
|
||||||
AdminDialog.deployPackageCommand(text, session, deployer, min, () => {
|
AdminDialog.deployPackageCommand(text, session, deployer, min, () => {
|
||||||
session.send("Redeploy done.");
|
session.send("Redeploy done.");
|
||||||
session.replaceDialog("/admin", {
|
session.replaceDialog("/admin", {
|
||||||
|
@ -158,7 +159,7 @@ export class AdminDialog extends IGBDialog {
|
||||||
UrlJoin(additionalPath, packageName),
|
UrlJoin(additionalPath, packageName),
|
||||||
(data, err) => {
|
(data, err) => {
|
||||||
session.send(`Package ${packageName} deployed... Please run rebuildIndex command.`);
|
session.send(`Package ${packageName} deployed... Please run rebuildIndex command.`);
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -171,8 +172,11 @@ export class AdminDialog extends IGBDialog {
|
||||||
min.instance.searchIndexer
|
min.instance.searchIndexer
|
||||||
);
|
);
|
||||||
session.send("Rebuilding index...");
|
session.send("Rebuilding index...");
|
||||||
search.rebuildIndex((data, err) => {
|
search.deleteIndex((data, err) => {
|
||||||
session.send("Index rebuilt.");
|
let kbService = new KBService();
|
||||||
|
search.createIndex(kbService.getSearchSchema(min.instance.searchIndex), "gb", (data, err) => {
|
||||||
|
session.send("Index rebuilt.");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,6 +184,7 @@ export class GBMinService {
|
||||||
// Prepares bot service.
|
// Prepares bot service.
|
||||||
|
|
||||||
let inMemoryStorage = new MemoryBotStorage();
|
let inMemoryStorage = new MemoryBotStorage();
|
||||||
|
|
||||||
min.bot = new gBuilder.UniversalBot(connector, {
|
min.bot = new gBuilder.UniversalBot(connector, {
|
||||||
storage: inMemoryStorage
|
storage: inMemoryStorage
|
||||||
});
|
});
|
||||||
|
@ -197,6 +198,8 @@ export class GBMinService {
|
||||||
min.bot.use({
|
min.bot.use({
|
||||||
|
|
||||||
botbuilder: (session, next) => {
|
botbuilder: (session, next) => {
|
||||||
|
|
||||||
|
|
||||||
if (!session.privateConversationData.loaded) {
|
if (!session.privateConversationData.loaded) {
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() => {
|
() => {
|
||||||
|
@ -206,14 +209,16 @@ export class GBMinService {
|
||||||
min.instance // TODO: Send a new thiner object.
|
min.instance // TODO: Send a new thiner object.
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
1500
|
500
|
||||||
);
|
);
|
||||||
session.privateConversationData.loaded = true;
|
session.privateConversationData.loaded = true;
|
||||||
appPackages.forEach(e => {
|
|
||||||
e.onNewSession(min, session)
|
|
||||||
});
|
|
||||||
session.userData.subjects = [];
|
session.userData.subjects = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
appPackages.forEach(e => {
|
||||||
|
e.onNewSession(min, session)
|
||||||
|
});
|
||||||
|
|
||||||
next();
|
next();
|
||||||
},
|
},
|
||||||
receive: function (event: any, next) {
|
receive: function (event: any, next) {
|
||||||
|
|
|
@ -159,10 +159,9 @@ export class KBService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createGuaribasKbIndex(cb, name) {
|
getSearchSchema(indexName) {
|
||||||
let _this = this;
|
return {
|
||||||
let schema = {
|
name: indexName,
|
||||||
name: name,
|
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: "questionId",
|
name: "questionId",
|
||||||
|
@ -259,28 +258,6 @@ export class KBService {
|
||||||
defaultScoringProfile: null,
|
defaultScoringProfile: null,
|
||||||
corsOptions: null
|
corsOptions: null
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: Migrate to Azure Search.
|
|
||||||
// this.client.createIndex(schema, function(err, schemaReturned) {
|
|
||||||
|
|
||||||
// let schemaIndexer = {
|
|
||||||
// name: _this.searchIndexer,
|
|
||||||
// description: 'gb',
|
|
||||||
// dataSourceName: 'gb', // TODO: Create it too dynamically from .env.
|
|
||||||
// targetIndexName: _this.searchIndex,
|
|
||||||
// parameters: {
|
|
||||||
// 'maxFailedItems' : 10,
|
|
||||||
// 'maxFailedItemsPerBatch' : 5,
|
|
||||||
// 'base64EncodeKeys': false,
|
|
||||||
// 'batchSize': 500
|
|
||||||
// }};
|
|
||||||
|
|
||||||
// // create/update an indexer
|
|
||||||
// _this.client.createIndexer(schemaIndexer, function(err, schemaIndexerReturned){
|
|
||||||
// cb(schemaIndexerReturned, err);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static getFormattedSubjectItems(subjects: GuaribasSubject[]) {
|
static getFormattedSubjectItems(subjects: GuaribasSubject[]) {
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"express": "^4.16.2",
|
"express": "^4.16.2",
|
||||||
"fs-walk": "0.0.1",
|
"fs-walk": "0.0.1",
|
||||||
"marked": "^0.3.12",
|
"marked": "^0.3.12",
|
||||||
"pragmatismo-io-framework": "^1.0.4",
|
"pragmatismo-io-framework": "^1.0.6",
|
||||||
"reflect-metadata": "^0.1.12",
|
"reflect-metadata": "^0.1.12",
|
||||||
"request-promise-native": "^1.0.5",
|
"request-promise-native": "^1.0.5",
|
||||||
"sequelize": "^4.37.6",
|
"sequelize": "^4.37.6",
|
||||||
|
|
26
src/app.ts
26
src/app.ts
|
@ -99,22 +99,18 @@ export class GBServer {
|
||||||
sysPackages.push(p);
|
sysPackages.push(p);
|
||||||
});
|
});
|
||||||
|
|
||||||
core.syncDatabaseStructure((err) => {
|
(async () => {
|
||||||
|
try {
|
||||||
|
let appPackages = new Array<IGBPackage>();
|
||||||
|
await minService.deployPackages(core, server, appPackages, sysPackages);
|
||||||
|
minService.buildMin(instance => {
|
||||||
|
logger.info(`Instance loaded: ${instance.botId}...`);
|
||||||
|
}, server, appPackages);
|
||||||
|
|
||||||
(async () => {
|
} catch (err) {
|
||||||
try {
|
logger.log(err)
|
||||||
let appPackages = new Array<IGBPackage>();
|
}
|
||||||
await minService.deployPackages(core, server, appPackages, sysPackages);
|
})()
|
||||||
minService.buildMin(instance => {
|
|
||||||
logger.info(`Instance loaded: ${instance.botId}...`);
|
|
||||||
}, server, appPackages);
|
|
||||||
|
|
||||||
} catch (err) {
|
|
||||||
logger.log(err)
|
|
||||||
}
|
|
||||||
})()
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue