diff --git a/DATABASE-CHANGES.md b/DATABASE-CHANGES.md index 80f97f6e..44a53fa1 100644 --- a/DATABASE-CHANGES.md +++ b/DATABASE-CHANGES.md @@ -62,4 +62,8 @@ ALTER TABLE dbo.GuaribasInstance ADD GO UPDATE dbo.GuaribasInstance SET state= 'active' +# + + + ``` \ No newline at end of file diff --git a/packages/core.gbapp/models/GBModel.ts b/packages/core.gbapp/models/GBModel.ts index 21bd165a..36772d65 100644 --- a/packages/core.gbapp/models/GBModel.ts +++ b/packages/core.gbapp/models/GBModel.ts @@ -107,7 +107,7 @@ export class GuaribasInstance extends Model public translatorKey: string; @Column - @Column({ type: DataType.STRING(64) }) + @Column({ type: DataType.STRING(128) }) public translatorEndpoint: string; @Column @@ -226,7 +226,7 @@ export class GuaribasInstance extends Model public adminPass: string; @Column(DataType.FLOAT) - public nlpVsSearch: number; + public nlpVsSearch: number; // TODO: Remove field. @Column(DataType.FLOAT) public searchScore: number; diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index 865fd6bd..495cf66c 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -89,7 +89,7 @@ export class GBConversationalService { public getCurrentLanguage(step: GBDialogStep) { return step.context.activity.locale; } - + public async sendFile(min: GBMinInstance, step: GBDialogStep, mobile: string, url: string, caption: string): Promise { @@ -105,8 +105,7 @@ export class GBConversationalService { await min.conversationalService.sendText(min, step, url); } } - else - { + else { GBLog.info(`Sending file ${url} to ${mobile}...`) const filename = url.substring(url.lastIndexOf('/') + 1); await min.whatsAppDirectLine.sendFileToDevice(mobile, url, filename, caption); @@ -575,14 +574,15 @@ export class GBConversationalService { } public async prompt(min: GBMinInstance, step: GBDialogStep, text: string) { + const minBoot = GBServer.globals.minBoot as any; let sec = new SecService(); const member = step.context.activity.from; const user = await sec.ensureUser(min.instance.instanceId, member.id, member.name, "", "web", member.name); text = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, text, user.locale ? user.locale : 'pt' ); @@ -596,10 +596,11 @@ export class GBConversationalService { const member = step.context.activity.from; const user = await sec.ensureUser(min.instance.instanceId, member.id, member.name, "", "web", member.name); + const minBoot = GBServer.globals.minBoot as any; text = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, - text, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, + text, user.locale ? user.locale : 'pt' ); diff --git a/packages/core.gbapp/services/GBDeployer.ts b/packages/core.gbapp/services/GBDeployer.ts index 183260cb..ad43e3b9 100644 --- a/packages/core.gbapp/services/GBDeployer.ts +++ b/packages/core.gbapp/services/GBDeployer.ts @@ -166,6 +166,8 @@ export class GBDeployer implements IGBDeployer { instance.title = botId; instance.activationCode = instance.botId; instance.state = 'active'; + instance.nlpScore = 0.80; // TODO: Migrate to Excel Config.xlsx. + instance.searchScore = 0.45; await this.core.saveInstance(instance); diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 9abb9f2e..26ab6dfe 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -694,7 +694,7 @@ export class GBMinService { locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ? minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey, minBoot.instance.textAnalyticsEndpoint ? - minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsKeyEndpoint, query); + minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsEndpoint, query); } let sec = new SecService(); @@ -704,10 +704,10 @@ export class GBMinService { member.name, "", "web", member.name); user.locale = locale; await user.save(); - + const minBoot = GBServer.globals.minBoot as any; query = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, query, 'pt'); GBLog.info(`Translated text: ${query}.`) diff --git a/packages/customer-satisfaction.gbapp/dialogs/FeedbackDialog.ts b/packages/customer-satisfaction.gbapp/dialogs/FeedbackDialog.ts index a9a67837..2f633135 100644 --- a/packages/customer-satisfaction.gbapp/dialogs/FeedbackDialog.ts +++ b/packages/customer-satisfaction.gbapp/dialogs/FeedbackDialog.ts @@ -144,7 +144,7 @@ export class FeedbackDialog extends IGBDialog { minBoot.instance.textAnalyticsKey ? minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey, minBoot.instance.textAnalyticsEndpoint ? - minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsKeyEndpoint, + minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsEndpoint, min.conversationalService.getCurrentLanguage(step), step.result ); diff --git a/packages/kb.gbapp/dialogs/AskDialog.ts b/packages/kb.gbapp/dialogs/AskDialog.ts index fc51e380..b7fcc964 100644 --- a/packages/kb.gbapp/dialogs/AskDialog.ts +++ b/packages/kb.gbapp/dialogs/AskDialog.ts @@ -46,7 +46,6 @@ import { KBService } from './../services/KBService'; import { GuaribasAnswer } from '../models'; import { GBMinService } from '../../../packages/core.gbapp/services/GBMinService'; import { SecService } from '../../security.gblib/services/SecService'; -import { GBConversationalService } from '../../core.gbapp/services/GBConversationalService'; /** * Dialog arguments. @@ -105,13 +104,14 @@ export class AskDialog extends IGBDialog { let query = step.result; let locale = 'pt'; + const minBoot = GBServer.globals.minBoot as any; if (process.env.TRANSLATOR_DISABLED !== "true") { - const minBoot = GBServer.globals.minBoot as any; + locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ? minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey, minBoot.instance.textAnalyticsEndpoint ? - minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsKeyEndpoint, query); - } + minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsEndpoint, query); + } let sec = new SecService(); const member = step.context.activity.from; @@ -122,8 +122,8 @@ export class AskDialog extends IGBDialog { await user.save(); query = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, query, 'pt'); GBLog.info(`Translated text: ${query}.`) @@ -145,9 +145,10 @@ export class AskDialog extends IGBDialog { const member = step.context.activity.from; const userDb = await sec.ensureUser(min.instance.instanceId, member.id, member.name, "", "web", member.name); + const minBoot = GBServer.globals.minBoot as any; text = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, text, userDb.locale ? userDb.locale : 'pt' ); diff --git a/packages/kb.gbapp/services/KBService.ts b/packages/kb.gbapp/services/KBService.ts index dc4d5a66..7c69ddd4 100644 --- a/packages/kb.gbapp/services/KBService.ts +++ b/packages/kb.gbapp/services/KBService.ts @@ -44,6 +44,7 @@ const walkPromise = require('walk-promise'); // tslint:disable-next-line:newline-per-chained-call const { SearchService } = require('azure-search-client'); var Excel = require('exceljs'); +import { GBServer } from '../../../src/app'; import { IGBKBService, GBDialogStep, GBLog, IGBConversationalService, IGBCoreService, IGBInstance, GBMinInstance } from 'botlib'; import { Op } from 'sequelize'; import { Sequelize } from 'sequelize-typescript'; @@ -420,14 +421,15 @@ export class KBService implements IGBKBService { const member = step.context.activity.from; const user = await sec.ensureUser(min.instance.instanceId, member.id, member.name, "", "web", member.name); + const minBoot = GBServer.globals.minBoot as any; let text = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, answer.content, user.locale ? user.locale : 'pt' ); - await conversationalService.sendMarkdownToMobile(min, step, null, answer.content); + await conversationalService.sendMarkdownToMobile(min, step, null, text); } else { await min.conversationalService.sendText(min, step, html); @@ -440,9 +442,10 @@ export class KBService implements IGBKBService { const member = step.context.activity.from; const user = await sec.ensureUser(min.instance.instanceId, member.id, member.name, "", "web", member.name); + const minBoot = GBServer.globals.minBoot as any; html = await min.conversationalService.translate( - min.instance.translatorKey, - min.instance.translatorEndpoint, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, html, user.locale ? user.locale : 'pt' ); diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index 45cf84eb..d7a98ba6 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -189,7 +189,7 @@ export class WhatsappDirectLine extends GBService { buf, locale ); } - else{ + else { await this.sendToDevice(user.userSystemId, `No momento estou apenas conseguindo ler mensagens de texto.`); } } @@ -414,9 +414,11 @@ export class WhatsappDirectLine extends GBService { } public async sendToDeviceEx(to, msg, locale) { + const minBoot = GBServer.globals.minBoot as any; + const text = await this.min.conversationalService.translate( - this.min.instance.translatorKey, - this.min.instance.translatorEndpoint, + this.min.instance.translatorKey ? this.min.instance.translatorKey : minBoot.instance.translatorKey, + this.min.instance.translatorEndpoint ? this.min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, msg, locale );