diff --git a/package.json b/package.json index c2142bced..da20747ea 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "@google-cloud/translate": "7.0.4", "@hubspot/api-client": "7.1.2", "@microsoft/microsoft-graph-client": "3.0.4", + "@nlpjs/basic": "4.26.1", "@nosferatu500/textract": "3.1.2", "@semantic-release/changelog": "5.0.1", "@semantic-release/exec": "5.0.0", @@ -89,6 +90,7 @@ "botframework-connector": "4.18.0", "botlib": "3.0.9", "c3-chart-maker": "0.2.8", + "cd": "^0.3.3", "chatgpt": "2.4.2", "chrome-remote-interface": "0.31.3", "cli-progress": "3.11.2", @@ -120,7 +122,7 @@ "nexmo": "2.9.1", "node-cron": "3.0.2", "node-html-parser": "6.1.5", - "node-nlp": "4.24.0", + "node-nlp": "4.26.1", "node-tesseract-ocr": "2.2.1", "open": "8.4.0", "open-docxtemplater-image-module": "1.0.3", diff --git a/packages/basic.gblib/services/GBVMService.ts b/packages/basic.gblib/services/GBVMService.ts index 1a972beaf..db9e95850 100644 --- a/packages/basic.gblib/services/GBVMService.ts +++ b/packages/basic.gblib/services/GBVMService.ts @@ -343,18 +343,17 @@ export class GBVMService extends GBService { GBConfigService.get('DEFAULT_CONTENT_LANGUAGE') ); - // TODO: https://github.com/GeneralBots/BotServer/issues/217 // Auto-NLP generates BASIC variables related to entities. - // if (step && step.context.activity['originalText'] && min['nerEngine']) { - // const entities = await min['nerEngine'].findEntities(step.context.activity['originalText'], contentLocale); + if (text && min['nerEngine']) { + const result = await min['nerEngine'].process(text); - // for (let i = 0; i < entities.length; i++) { - // const v = entities[i]; - // const variableName = `${v.entity}`; - // sandbox[variableName] = v.option; - // } - // } + for (let i = 0; i < result.entities.length; i++) { + const v = result.entities[i]; + const variableName = `${v.entity}`; + sandbox[variableName] = v.option; + } + } const botId = min.botId; const gbdialogPath = urlJoin(process.cwd(), 'work', `${botId}.gbai`, `${botId}.gbdialog`); diff --git a/packages/core.gbapp/services/GBCoreService.ts b/packages/core.gbapp/services/GBCoreService.ts index 9f3879257..a93486597 100644 --- a/packages/core.gbapp/services/GBCoreService.ts +++ b/packages/core.gbapp/services/GBCoreService.ts @@ -633,7 +633,7 @@ ENDPOINT_UPDATE=true /** * Get a dynamic param from instance. Dynamic params are defined in Config.xlsx - * and loaded into the work folder from /publish command. + * and loaded into the work folder from comida command. * * @param name Name of param to get from instance. * @param defaultValue Value returned when no param is defined in Config.xlsx. diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 9503c6c7f..db9784907 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -47,7 +47,7 @@ import path from 'path'; import mkdirp from 'mkdirp'; import Fs from 'fs'; import arrayBufferToBuffer from 'arraybuffer-to-buffer'; - +import { NlpManager } from 'node-nlp'; import { AutoSaveStateMiddleware, BotFrameworkAdapter, @@ -85,7 +85,6 @@ import { GBDeployer } from './GBDeployer.js'; import urlJoin from 'url-join'; import { GoogleChatDirectLine } from '../../google-chat.gblib/services/GoogleChatDirectLine.js'; import { SystemKeywords } from '../../basic.gblib/services/SystemKeywords.js'; -import * as nlp from 'node-nlp'; import Path from 'path'; import { GBSSR } from './GBSSR.js'; @@ -249,20 +248,13 @@ export class GBMinService { GBLog.verbose(`Bot UI ${GBMinService.uiPackage} accessible at custom domain: ${domain}.`); } - GBServer.globals.httpsServer.addContext(process.env.CERTIFICATE2_DOMAIN, options); } /** * Unmounts the bot web site (default.gbui) secure domain, if any. */ - public async unloadDomain(instance: IGBInstance) { - - - - - - } + public async unloadDomain(instance: IGBInstance) {} /** * Mount the instance by creating an BOT Framework bot object, @@ -325,8 +317,7 @@ export class GBMinService { // Loads Named Entity data for this bot. - // https://github.com/GeneralBots/BotServer/issues/217 - // await KBService.RefreshNER(min); + await KBService.RefreshNER(min); // Calls the loadBot context.activity for all packages. @@ -376,7 +367,6 @@ export class GBMinService { }; await CollectionUtil.asyncForEach(steps, async step => { - client.apis.Conversations.Conversations_PostActivity({ conversationId: conversationId, activity: { @@ -619,7 +609,6 @@ export class GBMinService { * Gets a Speech to Text / Text to Speech token from the provider. */ private async getSTSToken(instance: any) { - const options = { method: 'POST', headers: { @@ -628,8 +617,7 @@ export class GBMinService { }; try { - - const res = await fetch(instance.speechEndpoint, options) + const res = await fetch(instance.speechEndpoint, options); return res.text(); } catch (error) { const msg = `Error calling Speech to Text client. Error is: ${error}.`; @@ -674,10 +662,14 @@ export class GBMinService { min.sandBoxMap = {}; min['scheduleMap'] = {}; min['conversationWelcomed'] = {}; - min['nerEngine'] = new nlp.NlpManager(); // https://github.com/GeneralBots/BotServer/issues/217 min.packages = sysPackages; min.appPackages = appPackages; + // NLP Manager. + + const manager = new NlpManager({ languages: ['en'], forceNER: true }); + min['nerEngine'] = manager; + if (GBServer.globals.minBoot === undefined) { GBServer.globals.minBoot = min; } diff --git a/packages/core.gbapp/services/GBSSR.ts b/packages/core.gbapp/services/GBSSR.ts index cd12c242a..275c11654 100644 --- a/packages/core.gbapp/services/GBSSR.ts +++ b/packages/core.gbapp/services/GBSSR.ts @@ -175,14 +175,14 @@ export class GBSSR { }); }; - await sleep(15000); + await sleep(6000); // Inject on page to relative resources load properly. await page.evaluate(url => { const base = document.createElement('base'); base.href = url; - // Add to top of head, beeeEEEfore all other resources. + // Add to top of head, before all other resources. document.head.prepend(base); }, url); diff --git a/packages/kb.gbapp/services/KBService.ts b/packages/kb.gbapp/services/KBService.ts index c7eb01d12..241d64443 100644 --- a/packages/kb.gbapp/services/KBService.ts +++ b/packages/kb.gbapp/services/KBService.ts @@ -137,7 +137,7 @@ export class KBService implements IGBKBService { } public async getAnswerById(instanceId: number, answerId: number): Promise { - return GuaribasAnswer.findOne({ + return await GuaribasAnswer.findOne({ where: { instanceId: instanceId, answerId: answerId @@ -332,7 +332,7 @@ export class KBService implements IGBKBService { return { answer: value, questionId: result.document.questionId }; } else { GBLog.info( - `SEARCH WILL NOT be used as answerId ${result.document.answerId} was not found in database, + `Index problem. SEARCH WILL NOT be used as answerId ${result.document.answerId} was not found in database, returnedScore: ${returnedScore} < required (searchScore): ${searchScore}` );