@botonic/plugin-flow-builder 0.27.0-alpha.0 → 0.27.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/action/index.js +11 -9
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/knowledge-bases.js +31 -16
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/functions/conditional-queue-status.js +1 -10
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -1
- package/lib/cjs/index.js +6 -4
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/tracking.d.ts +20 -13
- package/lib/cjs/tracking.js +37 -19
- package/lib/cjs/tracking.js.map +1 -1
- package/lib/cjs/types.d.ts +5 -1
- package/lib/cjs/user-input/index.js +1 -1
- package/lib/cjs/user-input/index.js.map +1 -1
- package/lib/cjs/user-input/intent.js +1 -1
- package/lib/cjs/user-input/keyword.js +3 -6
- package/lib/cjs/user-input/keyword.js.map +1 -1
- package/lib/cjs/user-input/smart-intent.js +2 -2
- package/lib/cjs/user-input/smart-intent.js.map +1 -1
- package/lib/esm/action/index.js +12 -10
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/knowledge-bases.js +32 -17
- package/lib/esm/action/knowledge-bases.js.map +1 -1
- package/lib/esm/functions/conditional-queue-status.js +1 -10
- package/lib/esm/functions/conditional-queue-status.js.map +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/tracking.d.ts +20 -13
- package/lib/esm/tracking.js +34 -17
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +5 -1
- package/lib/esm/user-input/index.js +1 -1
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/intent.js +1 -1
- package/lib/esm/user-input/keyword.js +3 -6
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.js +2 -2
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/package.json +2 -2
- package/src/action/index.tsx +22 -10
- package/src/action/knowledge-bases.ts +43 -20
- package/src/functions/conditional-queue-status.ts +0 -8
- package/src/index.ts +8 -10
- package/src/tracking.ts +43 -18
- package/src/types.ts +5 -1
- package/src/user-input/index.ts +1 -1
- package/src/user-input/intent.ts +1 -1
- package/src/user-input/keyword.ts +3 -7
- package/src/user-input/smart-intent.ts +2 -2
|
@@ -2,7 +2,7 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { v4 as uuid } from 'uuid';
|
|
3
3
|
import { HtNodeWithContentType, } from '../content-fields/hubtype-fields';
|
|
4
4
|
import { getFlowBuilderPlugin } from '../helpers';
|
|
5
|
-
import { EventAction, trackEvent } from '../tracking';
|
|
5
|
+
import { EventAction, KnowledgebaseFailReason, trackEvent } from '../tracking';
|
|
6
6
|
export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
7
7
|
return __awaiter(this, void 0, void 0, function* () {
|
|
8
8
|
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
@@ -13,11 +13,9 @@ export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
13
13
|
(knowledgeBaseConfig === null || knowledgeBaseConfig === void 0 ? void 0 : knowledgeBaseConfig.isActive)) {
|
|
14
14
|
try {
|
|
15
15
|
const knowledgeBaseResponse = yield flowBuilderPlugin.getKnowledgeBaseResponse(request);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
knowledgebaseChunksIds: [],
|
|
20
|
-
});
|
|
16
|
+
yield trackKnowledgeBase(knowledgeBaseResponse, request);
|
|
17
|
+
if (knowledgeBaseResponse.hasKnowledge &&
|
|
18
|
+
knowledgeBaseResponse.isFaithuful) {
|
|
21
19
|
const knowledgeBaseNode = {
|
|
22
20
|
type: HtNodeWithContentType.TEXT,
|
|
23
21
|
content: {
|
|
@@ -41,23 +39,40 @@ export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
41
39
|
};
|
|
42
40
|
return knowledgeBaseNode;
|
|
43
41
|
}
|
|
44
|
-
yield trackEvent(request, EventAction.knowledgebase, {
|
|
45
|
-
knowledgebaseFailReason: 'The knowledge base does not have enough knowledge',
|
|
46
|
-
knowledgeSourceIds: [],
|
|
47
|
-
knowledgebaseChunksIds: [],
|
|
48
|
-
});
|
|
49
42
|
}
|
|
50
43
|
catch (e) {
|
|
51
44
|
console.error('Hubtype knowledge base api error: ', { e });
|
|
52
|
-
yield trackEvent(request, EventAction.knowledgebase, {
|
|
53
|
-
knowledgebaseFailReason: 'Knowledge base api error',
|
|
54
|
-
knowledgeSourceIds: [],
|
|
55
|
-
knowledgebaseChunksIds: [],
|
|
56
|
-
});
|
|
57
|
-
return undefined;
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
47
|
return undefined;
|
|
61
48
|
});
|
|
62
49
|
}
|
|
50
|
+
function trackKnowledgeBase(response, request) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
/* TODO:
|
|
53
|
+
In order to have all these parameters in the base knowlege response
|
|
54
|
+
it is necessary to use the new endpoint to which the knowledge sources
|
|
55
|
+
have to be indicated. For now this will not work, we need to finish
|
|
56
|
+
the knowldege base node in the flow builder frontend.
|
|
57
|
+
*/
|
|
58
|
+
const knowledgebaseInferenceId = response.inferenceId;
|
|
59
|
+
const knowledgebaseSourcesIds = response.sources.map(source => source.knowledgeSourceId);
|
|
60
|
+
const knowledgebaseChunksIds = response.sources.map(source => source.knowledgeChunkId);
|
|
61
|
+
const knowledgebaseMessageId = request.input.message_id;
|
|
62
|
+
let knowledgebaseFailReason;
|
|
63
|
+
if (!response.isFaithuful) {
|
|
64
|
+
knowledgebaseFailReason = KnowledgebaseFailReason.Hallucination;
|
|
65
|
+
}
|
|
66
|
+
if (!response.hasKnowledge) {
|
|
67
|
+
knowledgebaseFailReason = KnowledgebaseFailReason.NoKnowledge;
|
|
68
|
+
}
|
|
69
|
+
yield trackEvent(request, EventAction.Knowledgebase, {
|
|
70
|
+
knowledgebaseInferenceId,
|
|
71
|
+
knowledgebaseFailReason,
|
|
72
|
+
knowledgebaseSourcesIds,
|
|
73
|
+
knowledgebaseChunksIds,
|
|
74
|
+
knowledgebaseMessageId,
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
63
78
|
//# sourceMappingURL=knowledge-bases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAGjC,OAAO,EAEL,qBAAqB,GAEtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
// import { EventAction, trackEvent } from '../tracking'
|
|
4
3
|
const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
|
|
5
4
|
var QueueStatusResult;
|
|
6
5
|
(function (QueueStatusResult) {
|
|
@@ -8,17 +7,9 @@ var QueueStatusResult;
|
|
|
8
7
|
QueueStatusResult["CLOSED"] = "closed";
|
|
9
8
|
QueueStatusResult["OPEN_WITHOUT_AGENTS"] = "open-without-agents";
|
|
10
9
|
})(QueueStatusResult || (QueueStatusResult = {}));
|
|
11
|
-
export function conditionalQueueStatus({
|
|
12
|
-
// request,
|
|
13
|
-
queue_id,
|
|
14
|
-
// queue_name,
|
|
15
|
-
check_available_agents, }) {
|
|
10
|
+
export function conditionalQueueStatus({ queue_id, check_available_agents, }) {
|
|
16
11
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
12
|
const data = yield getQueueAvailability(queue_id, check_available_agents);
|
|
18
|
-
// await trackEvent(request, EventAction.handoffOption, {
|
|
19
|
-
// queueId: queue_id,
|
|
20
|
-
// queueName: queue_name,
|
|
21
|
-
// })
|
|
22
13
|
if (check_available_agents && data.open && data.available_agents === 0) {
|
|
23
14
|
return QueueStatusResult.OPEN_WITHOUT_AGENTS;
|
|
24
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,
|
|
1
|
+
{"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../src/functions/conditional-queue-status.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;AAShF,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,gEAA2C,CAAA;AAC7C,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,MAAM,UAAgB,sBAAsB,CAAC,EAC3C,QAAQ,EACR,sBAAsB,GACK;;QAC3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;QACzE,IAAI,sBAAsB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YACtE,OAAO,iBAAiB,CAAC,mBAAmB,CAAA;SAC7C;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAA;IACtE,CAAC;CAAA;AAED,MAAM,OAAO,gBAAgB;IAI3B,YAAY,OAAe,EAAE,oBAA8B;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,KAAK,CAAA;IAC3D,CAAC;IAEK,eAAe;;YACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,eAAe,qBAAqB,IAAI,CAAC,OAAO,gBAAgB;YACnE,2CAA2C;YAC3C;gBACE,MAAM,EAAE;oBACN,oBAAoB,EAAE,IAAI;oBAC1B,mBAAmB,EAAE,KAAK;oBAC1B,sBAAsB,EAAE,IAAI,CAAC,oBAAoB;iBAClD;aACF,CACF,CAAA;YACD,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;KAAA;CACF;AAWD,MAAM,UAAgB,oBAAoB,CACxC,OAAe,EACf,oBAAoB,GAAG,KAAK;;QAE5B,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QACrE,OAAO,MAAM,SAAS,CAAC,eAAe,EAAE,CAAA;IAC1C,CAAC;CAAA"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
21
21
|
pre(request: PluginPreRequest): Promise<void>;
|
|
22
22
|
private updateRequestBeforeRoutes;
|
|
23
23
|
private removeSourceSufix;
|
|
24
|
-
|
|
24
|
+
replacePayload(payload: string): string;
|
|
25
25
|
getContentsByContentID(contentID: string, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
|
|
26
26
|
getUUIDByContentID(contentID: string): string;
|
|
27
27
|
private getContentsById;
|
|
@@ -34,6 +34,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
|
|
|
34
34
|
getFlowName(flowId: string): string;
|
|
35
35
|
}
|
|
36
36
|
export * from './action';
|
|
37
|
+
export { BOT_ACTION_PAYLOAD_PREFIX } from './constants';
|
|
37
38
|
export * from './content-fields';
|
|
38
39
|
export { BotonicPluginFlowBuilderOptions, FlowBuilderJSONVersion, PayloadParamsBase, } from './types';
|
|
39
40
|
export * from './webview';
|
package/lib/esm/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { FlowCarousel, FlowHandoff, FlowImage, FlowText, FlowVideo, FlowWhatsapp
|
|
|
6
6
|
import { FlowWhatsappCtaUrlButtonNode } from './content-fields/flow-whatsapp-cta-url-button';
|
|
7
7
|
import { HtNodeWithContentType, } from './content-fields/hubtype-fields';
|
|
8
8
|
import { DEFAULT_FUNCTIONS } from './functions';
|
|
9
|
-
import {
|
|
9
|
+
import { trackFlowContent } from './tracking';
|
|
10
10
|
import { FlowBuilderJSONVersion, } from './types';
|
|
11
11
|
import { getNodeByUserInput } from './user-input';
|
|
12
12
|
import { resolveGetAccessToken } from './utils';
|
|
@@ -83,9 +83,9 @@ export default class BotonicPluginFlowBuilder {
|
|
|
83
83
|
const resolvedLocale = this.cmsApi.getResolvedLocale(locale);
|
|
84
84
|
const startNode = this.cmsApi.getStartNode();
|
|
85
85
|
this.currentRequest.session.flow_thread_id = uuid();
|
|
86
|
-
const
|
|
87
|
-
yield
|
|
88
|
-
return
|
|
86
|
+
const contents = yield this.getContentsByNode(startNode, resolvedLocale);
|
|
87
|
+
yield trackFlowContent(this.currentRequest, contents);
|
|
88
|
+
return contents;
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
getContentsByNode(node, locale, prevContents) {
|
|
@@ -168,6 +168,7 @@ export default class BotonicPluginFlowBuilder {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
export * from './action';
|
|
171
|
+
export { BOT_ACTION_PAYLOAD_PREFIX } from './constants';
|
|
171
172
|
export * from './content-fields';
|
|
172
173
|
export { FlowBuilderJSONVersion, } from './types';
|
|
173
174
|
export * from './webview';
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,SAAS,EACT,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EAEZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAQL,qBAAqB,GACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,SAAS,EACT,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EAEZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAQL,qBAAqB,GACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAEL,sBAAsB,GAGvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAkB3C,YAAqB,OAAwC;QAAxC,YAAO,GAAP,OAAO,CAAiC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,yBAAyB,CAAA;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,sBAAsB,CAAC,MAAM,CAAA;QACxE,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,SAAS,WAAW,EAAE,CAAA;QAC9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAA;QAChE,IAAI,CAAC,kBAAkB,mCAClB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,KAC9B,SAAS,EAAE,WAAW,KAAK,sBAAsB,CAAC,MAAM,GACzD,CAAA;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,SAAS,mCAAQ,iBAAiB,GAAK,eAAe,CAAE,CAAA;IAC/D,CAAC;IAEK,GAAG,CAAC,OAAyB;;YACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;YAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC;gBACxC,GAAG,EAAE,IAAI,CAAC,OAAO;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;gBACjD,OAAO,EAAE,IAAI,CAAC,cAAc;aAC7B,CAAC,CAAA;YAEF,MAAM,kBAAkB,GACtB,OAAO,CAAC,KAAK,CAAC,IAAI;gBAClB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;gBACtB,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAA;YAEvC,IAAI,kBAAkB,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;gBAC5D,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAC9C,IAAI,CAAC,MAAM,EACX,cAAc,EACd,OAAmC,EACnC,IAAI,CAAC,kBAAkB,CACxB,CAAA;gBACD,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC,CAAA;aACxE;YAED,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC;KAAA;IAEO,yBAAyB,CAAC,OAAyB;QACzD,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAErE,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE;gBAC/D,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;aACnE;SACF;IACH,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAEM,cAAc,CAAC,OAAe;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAkB,WAAW,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAA;IAC3D,CAAC;IAEK,sBAAsB,CAC1B,SAAiB,EACjB,MAAc,EACd,YAA4B;;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAsB,CAAA;YAC3E,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QACjE,CAAC;KAAA;IAED,kBAAkB,CAAC,SAAiB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAEa,eAAe,CAC3B,EAAU,EACV,MAAc,EACd,YAA4B;;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAsB,CAAA;YAC7D,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QACjE,CAAC;KAAA;IAEK,gBAAgB,CAAC,MAAc;;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;YAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,EAAE,CAAA;YACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;YAExE,MAAM,gBAAgB,CACpB,IAAI,CAAC,cAA0C,EAC/C,QAAQ,CACT,CAAA;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAEK,iBAAiB,CACrB,IAAuB,EACvB,MAAc,EACd,YAA4B;;YAE5B,MAAM,QAAQ,GAAG,YAAY,IAAI,EAAE,CAAA;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAE5D,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,EAAE;gBAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;gBAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAA;aAChE;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;YACzD,IAAI,OAAO,EAAE;gBACX,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACvB;YACD,yCAAyC;YAEzC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAA;aACzE;YAED,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAEO,cAAc,CACpB,cAA+B,EAC/B,MAAc;QAEd,QAAQ,cAAc,CAAC,IAAI,EAAE;YAC3B,KAAK,qBAAqB,CAAC,IAAI;gBAC7B,OAAO,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACrE,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACzD,KAAK,qBAAqB,CAAC,QAAQ;gBACjC,OAAO,YAAY,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACzE,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACzD,KAAK,qBAAqB,CAAC,oBAAoB;gBAC7C,OAAO,sBAAsB,CAAC,cAAc,CAC1C,cAAc,EACd,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAA;YACH,KAAK,qBAAqB,CAAC,uBAAuB;gBAChD,OAAO,4BAA4B,CAAC,cAAc,CAChD,cAAc,EACd,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAA;YACH,KAAK,qBAAqB,CAAC,OAAO;gBAChC,OAAO,WAAW,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACxE;gBACE,OAAO,SAAS,CAAA;SACnB;IACH,CAAC;IAEa,YAAY,CACxB,YAA4B,EAC5B,MAAc;;YAEd,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,CAAA;YACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CACjD,YAAY,CAAC,OAAO,CAAC,SAAS,EAC9B,MAAM,CACP,CAAA;YACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC7C,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB;gBACE,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAChE,EACD,GAAG,UAAU,CACd,CAAA;YACD,MAAM,cAAc,GAClB,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;YACzD,0CAA0C;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CACjC,CAAA;YACD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;gBACnB,MAAM,IAAI,KAAK,CACb,wDAAwD,cAAc,EAAE,CACzE,CAAA;aACF;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;QACzB,CAAC;KAAA;IAEO,oBAAoB,CAC1B,IAA2B,EAC3B,MAAc;QAEd,IAAI,eAAe,GAAyB,EAAE,CAAA;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC5C,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;aACtD;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;gBACjB,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,CAAC,CAAA;aAC5C;SACF;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,gBAAgB,CAA8B,OAAe;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;QACrE,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;CACF;AAED,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACvD,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAEL,sBAAsB,GAEvB,MAAM,SAAS,CAAA;AAChB,cAAc,WAAW,CAAA"}
|
package/lib/esm/tracking.d.ts
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
import { ActionRequest } from '@botonic/react';
|
|
2
|
-
import {
|
|
2
|
+
import { FlowContent } from './content-fields';
|
|
3
|
+
export declare enum EventAction {
|
|
4
|
+
FlowNode = "flow_node",
|
|
5
|
+
Keyword = "nlu_keyword",
|
|
6
|
+
Intent = "nlu_intent",
|
|
7
|
+
IntentSmart = "nlu_intent_smart",
|
|
8
|
+
Knowledgebase = "knowledgebase",
|
|
9
|
+
Fallback = "fallback"
|
|
10
|
+
}
|
|
11
|
+
export declare enum KnowledgebaseFailReason {
|
|
12
|
+
NoKnowledge = "no_knowledge",
|
|
13
|
+
Hallucination = "hallucination"
|
|
14
|
+
}
|
|
3
15
|
export declare function trackEvent(request: ActionRequest, eventAction: EventAction, args?: Record<string, any>): Promise<void>;
|
|
4
|
-
export declare function
|
|
16
|
+
export declare function trackFlowContent(request: ActionRequest, contents: FlowContent[]): Promise<void>;
|
|
17
|
+
export declare function getContentEventArgs(request: ActionRequest, contentInfo: {
|
|
18
|
+
code: string;
|
|
19
|
+
flowId: string;
|
|
20
|
+
flowName: string;
|
|
21
|
+
id: string;
|
|
22
|
+
}): {
|
|
5
23
|
flowThreadId: string | undefined;
|
|
6
24
|
flowId: string;
|
|
7
25
|
flowName: string;
|
|
@@ -9,14 +27,3 @@ export declare function getNodeEventArgs(request: ActionRequest, node: HtNodeWit
|
|
|
9
27
|
flowNodeContentId: string;
|
|
10
28
|
flowNodeIsMeaningful: undefined;
|
|
11
29
|
};
|
|
12
|
-
export declare enum EventAction {
|
|
13
|
-
flowNode = "flow_node",
|
|
14
|
-
handoffOption = "handoff_option",
|
|
15
|
-
handoffSuccess = "handoff_success",
|
|
16
|
-
handoffFail = "handoff_fail",
|
|
17
|
-
keyword = "nlu_keyword",
|
|
18
|
-
intent = "nlu_intent",
|
|
19
|
-
intentSmart = "nlu_intent_smart",
|
|
20
|
-
knowledgebase = "knowledgebase",
|
|
21
|
-
fallback = "fallback"
|
|
22
|
-
}
|
package/lib/esm/tracking.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { getFlowBuilderPlugin } from './helpers';
|
|
3
|
+
export var EventAction;
|
|
4
|
+
(function (EventAction) {
|
|
5
|
+
EventAction["FlowNode"] = "flow_node";
|
|
6
|
+
EventAction["Keyword"] = "nlu_keyword";
|
|
7
|
+
EventAction["Intent"] = "nlu_intent";
|
|
8
|
+
EventAction["IntentSmart"] = "nlu_intent_smart";
|
|
9
|
+
EventAction["Knowledgebase"] = "knowledgebase";
|
|
10
|
+
EventAction["Fallback"] = "fallback";
|
|
11
|
+
})(EventAction || (EventAction = {}));
|
|
12
|
+
export var KnowledgebaseFailReason;
|
|
13
|
+
(function (KnowledgebaseFailReason) {
|
|
14
|
+
KnowledgebaseFailReason["NoKnowledge"] = "no_knowledge";
|
|
15
|
+
KnowledgebaseFailReason["Hallucination"] = "hallucination";
|
|
16
|
+
})(KnowledgebaseFailReason || (KnowledgebaseFailReason = {}));
|
|
3
17
|
export function trackEvent(request, eventAction, args) {
|
|
4
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5
19
|
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
@@ -9,27 +23,30 @@ export function trackEvent(request, eventAction, args) {
|
|
|
9
23
|
return;
|
|
10
24
|
});
|
|
11
25
|
}
|
|
12
|
-
export function
|
|
26
|
+
export function trackFlowContent(request, contents) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
29
|
+
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
30
|
+
const firstNodeContent = cmsApi.getNodeById(contents[0].id);
|
|
31
|
+
const flowName = flowBuilderPlugin.getFlowName(firstNodeContent.flow_id);
|
|
32
|
+
const eventArgs = getContentEventArgs(request, {
|
|
33
|
+
code: firstNodeContent.code,
|
|
34
|
+
flowId: firstNodeContent.flow_id,
|
|
35
|
+
flowName,
|
|
36
|
+
id: firstNodeContent.id,
|
|
37
|
+
});
|
|
38
|
+
yield trackEvent(request, EventAction.FlowNode, eventArgs);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function getContentEventArgs(request, contentInfo) {
|
|
13
42
|
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
14
43
|
return {
|
|
15
44
|
flowThreadId: request.session.flow_thread_id,
|
|
16
|
-
flowId:
|
|
17
|
-
flowName: flowBuilderPlugin.getFlowName(
|
|
18
|
-
flowNodeId:
|
|
19
|
-
flowNodeContentId:
|
|
45
|
+
flowId: contentInfo.flowId,
|
|
46
|
+
flowName: flowBuilderPlugin.getFlowName(contentInfo.flowId),
|
|
47
|
+
flowNodeId: contentInfo.id,
|
|
48
|
+
flowNodeContentId: contentInfo.code,
|
|
20
49
|
flowNodeIsMeaningful: undefined, //node?.isMeaningful,
|
|
21
50
|
};
|
|
22
51
|
}
|
|
23
|
-
export var EventAction;
|
|
24
|
-
(function (EventAction) {
|
|
25
|
-
EventAction["flowNode"] = "flow_node";
|
|
26
|
-
EventAction["handoffOption"] = "handoff_option";
|
|
27
|
-
EventAction["handoffSuccess"] = "handoff_success";
|
|
28
|
-
EventAction["handoffFail"] = "handoff_fail";
|
|
29
|
-
EventAction["keyword"] = "nlu_keyword";
|
|
30
|
-
EventAction["intent"] = "nlu_intent";
|
|
31
|
-
EventAction["intentSmart"] = "nlu_intent_smart";
|
|
32
|
-
EventAction["knowledgebase"] = "knowledgebase";
|
|
33
|
-
EventAction["fallback"] = "fallback";
|
|
34
|
-
})(EventAction || (EventAction = {}));
|
|
35
52
|
//# sourceMappingURL=tracking.js.map
|
package/lib/esm/tracking.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,qCAAsB,CAAA;IACtB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,UAAgB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;SAC/D;QACD,OAAM;IACR,CAAC;CAAA;AAED,MAAM,UAAgB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;QAEvB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;QACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAoB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxE,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE;YAC7C,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,MAAM,EAAE,gBAAgB,CAAC,OAAO;YAChC,QAAQ;YACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;SACxB,CAAC,CAAA;QACF,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC5D,CAAC;CAAA;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,WAKC;IAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;QAC5C,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3D,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,SAAS,EAAE,qBAAqB;KACvD,CAAA;AACH,CAAC"}
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -29,11 +29,15 @@ export declare enum FlowBuilderJSONVersion {
|
|
|
29
29
|
LATEST = "latest"
|
|
30
30
|
}
|
|
31
31
|
export interface KnowledgeBaseResponse {
|
|
32
|
+
inferenceId: string;
|
|
33
|
+
question: string;
|
|
32
34
|
answer: string;
|
|
33
35
|
hasKnowledge: boolean;
|
|
36
|
+
isFaithuful: boolean;
|
|
34
37
|
sources: {
|
|
38
|
+
knowledgeBaseId: string;
|
|
35
39
|
knowledgeSourceId: string;
|
|
36
|
-
|
|
40
|
+
knowledgeChunkId: string;
|
|
37
41
|
}[];
|
|
38
42
|
}
|
|
39
43
|
export interface SmartIntentResponse {
|
|
@@ -14,7 +14,7 @@ export function getNodeByUserInput(cmsApi, locale, request, smartIntentsConfig)
|
|
|
14
14
|
if (keywordNode)
|
|
15
15
|
return keywordNode;
|
|
16
16
|
const smartIntentsApi = new SmartIntentsApi(cmsApi, request, smartIntentsConfig);
|
|
17
|
-
const smartIntentNode = smartIntentsApi.getNodeByInput();
|
|
17
|
+
const smartIntentNode = yield smartIntentsApi.getNodeByInput();
|
|
18
18
|
if (smartIntentNode)
|
|
19
19
|
return smartIntentNode;
|
|
20
20
|
const intentNode = yield getIntentNodeByInput(cmsApi, locale, request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAE7E,MAAM,UAAgB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3E,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAA;YAEnC,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAE7E,MAAM,UAAgB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3E,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAA;YAEnC,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;YAC9D,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAA;YAE3C,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACtE,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAA;SAClC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA"}
|
|
@@ -20,7 +20,7 @@ function trackIntentEvent(request, intentNode) {
|
|
|
20
20
|
nluIntentThreshold: intentNode === null || intentNode === void 0 ? void 0 : intentNode.content.confidence,
|
|
21
21
|
nluIntentMessageId: request.input.message_id,
|
|
22
22
|
};
|
|
23
|
-
yield trackEvent(request, EventAction.
|
|
23
|
+
yield trackEvent(request, EventAction.Intent, eventArgs);
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
function isIntentValid(intentNode, request, cmsApi) {
|
|
@@ -20,11 +20,8 @@ export class KeywordMatcher {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
getNodeByKeyword(userInput, keywordNodes) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
return matchedKeywordNodes[0];
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
23
|
+
const matchedKeywordNode = keywordNodes.find(node => this.matchKeywords(userInput, node));
|
|
24
|
+
return (matchedKeywordNode === null || matchedKeywordNode === void 0 ? void 0 : matchedKeywordNode.target) ? matchedKeywordNode : undefined;
|
|
28
25
|
}
|
|
29
26
|
matchKeywords(userInput, node) {
|
|
30
27
|
const result = node.content.keywords.find(keywords => {
|
|
@@ -64,7 +61,7 @@ export class KeywordMatcher {
|
|
|
64
61
|
nluKeywordIsRegex: this.isRegExp,
|
|
65
62
|
nluKeywordMessageId: this.request.input.message_id,
|
|
66
63
|
};
|
|
67
|
-
yield trackEvent(this.request, EventAction.
|
|
64
|
+
yield trackEvent(this.request, EventAction.Keyword, eventArgs);
|
|
68
65
|
});
|
|
69
66
|
}
|
|
70
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAOrD,MAAM,OAAO,cAAc;IAQzB,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAgB;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACvB,CAAC;IAEK,cAAc,CAAC,SAAiB;;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAA;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAClE,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,SAAS,CAAA;aACjB;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxB,OAAO,WAAW,CAAA;QACpB,CAAC;KAAA;IAEO,gBAAgB,CACtB,SAAiB,EACjB,YAA6B;QAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,9 @@ export class SmartIntentsApi {
|
|
|
24
24
|
const response = yield this.getInference(params);
|
|
25
25
|
const smartIntentNode = smartIntentNodes.find(smartIntentNode => smartIntentNode.content.title === response.data.smart_intent_title);
|
|
26
26
|
if (smartIntentNode) {
|
|
27
|
-
trackEvent(this.currentRequest, EventAction.
|
|
27
|
+
trackEvent(this.currentRequest, EventAction.IntentSmart, {
|
|
28
28
|
nluIntentSmartTitle: response.data.smart_intent_title,
|
|
29
|
-
nluIntentSmartNumUsed: response.data.smart_intents_used,
|
|
29
|
+
nluIntentSmartNumUsed: response.data.smart_intents_used.length,
|
|
30
30
|
nluIntentSmartMessageId: this.currentRequest.input.message_id,
|
|
31
31
|
});
|
|
32
32
|
return smartIntentNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAerD,MAAM,OAAO,eAAe;IAC1B,YACS,MAAsB,EACtB,cAA6B,EAC7B,kBAA+C;QAF/C,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAAe;QAC7B,uBAAkB,GAAlB,kBAAkB,CAA6B;IACrD,CAAC;IAEE,cAAc;;YAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;YACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAA;YAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE9C,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBACpC,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;gBACtE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;aAC9C,CAAA;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBAChD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,eAAe,CAAC,EAAE,CAChB,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CACrE,CAAA;gBACD,IAAI,eAAe,EAAE;oBACnB,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,WAAW,EAAE;wBACvD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;wBACrD,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAerD,MAAM,OAAO,eAAe;IAC1B,YACS,MAAsB,EACtB,cAA6B,EAC7B,kBAA+C;QAF/C,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAAe;QAC7B,uBAAkB,GAAlB,kBAAkB,CAA6B;IACrD,CAAC;IAEE,cAAc;;YAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;YACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAA;YAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE9C,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;gBACpC,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;gBACtE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS;aAC9C,CAAA;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBAChD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,eAAe,CAAC,EAAE,CAChB,eAAe,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CACrE,CAAA;gBACD,IAAI,eAAe,EAAE;oBACnB,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,WAAW,EAAE;wBACvD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;wBACrD,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM;wBAC9D,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU;qBAC9D,CAAC,CAAA;oBACF,OAAO,eAAe,CAAA;iBACvB;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACjB;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;KAAA;IAEa,YAAY,CACxB,eAA4C;;YAE5C,OAAO,MAAM,KAAK,CAAC;gBACjB,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,0CAA0C;gBAC7E,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE;oBACpE,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK;aACf,CAAC,CAAA;QACJ,CAAC;KAAA;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.27.0-alpha.
|
|
3
|
+
"version": "0.27.0-alpha.2",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@botonic/react": "^0.27.0-alpha.
|
|
17
|
+
"@botonic/react": "^0.27.0-alpha.1",
|
|
18
18
|
"axios": "^1.6.8",
|
|
19
19
|
"uuid": "^9.0.1"
|
|
20
20
|
},
|
package/src/action/index.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import { FlowContent, FlowHandoff } from '../content-fields'
|
|
|
6
6
|
import { HtNodeWithContent } from '../content-fields/hubtype-fields'
|
|
7
7
|
import { getFlowBuilderPlugin } from '../helpers'
|
|
8
8
|
import BotonicPluginFlowBuilder from '../index'
|
|
9
|
-
import { EventAction,
|
|
9
|
+
import { EventAction, trackEvent, trackFlowContent } from '../tracking'
|
|
10
10
|
import { createNodeFromKnowledgeBase } from './knowledge-bases'
|
|
11
11
|
|
|
12
12
|
export type FlowBuilderActionProps = {
|
|
@@ -24,7 +24,9 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
|
24
24
|
const handoffContent = contents.find(
|
|
25
25
|
content => content instanceof FlowHandoff
|
|
26
26
|
) as FlowHandoff
|
|
27
|
-
if (handoffContent)
|
|
27
|
+
if (handoffContent) {
|
|
28
|
+
await handoffContent.doHandoff(request)
|
|
29
|
+
}
|
|
28
30
|
|
|
29
31
|
return { contents }
|
|
30
32
|
}
|
|
@@ -89,10 +91,15 @@ async function getContentsByPayload({
|
|
|
89
91
|
: undefined
|
|
90
92
|
|
|
91
93
|
if (targetNode) {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
const contents = await flowBuilderPlugin.getContentsByNode(
|
|
95
|
+
targetNode,
|
|
96
|
+
resolvedLocale
|
|
97
|
+
)
|
|
98
|
+
await trackFlowContent(request, contents)
|
|
99
|
+
|
|
100
|
+
return contents
|
|
95
101
|
}
|
|
102
|
+
|
|
96
103
|
return []
|
|
97
104
|
}
|
|
98
105
|
|
|
@@ -103,9 +110,13 @@ async function getContentsByFallback({
|
|
|
103
110
|
resolvedLocale,
|
|
104
111
|
}: FlowBuilderContext): Promise<FlowContent[]> {
|
|
105
112
|
const fallbackNode = await getFallbackNode(cmsApi, request)
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
const fallbackContents = await flowBuilderPlugin.getContentsByNode(
|
|
114
|
+
fallbackNode,
|
|
115
|
+
resolvedLocale
|
|
116
|
+
)
|
|
117
|
+
await trackFlowContent(request, fallbackContents)
|
|
118
|
+
|
|
119
|
+
return fallbackContents
|
|
109
120
|
}
|
|
110
121
|
|
|
111
122
|
async function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {
|
|
@@ -126,8 +137,9 @@ async function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {
|
|
|
126
137
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption)
|
|
127
138
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption
|
|
128
139
|
|
|
129
|
-
trackEvent(request, EventAction.
|
|
130
|
-
|
|
140
|
+
trackEvent(request, EventAction.Fallback, {
|
|
141
|
+
fallbackOut: isFirstFallbackOption ? 1 : 2,
|
|
142
|
+
fallbackMessageId: request.input.message_id,
|
|
131
143
|
})
|
|
132
144
|
|
|
133
145
|
return fallbackNode
|
|
@@ -9,7 +9,8 @@ import {
|
|
|
9
9
|
HtTextNode,
|
|
10
10
|
} from '../content-fields/hubtype-fields'
|
|
11
11
|
import { getFlowBuilderPlugin } from '../helpers'
|
|
12
|
-
import { EventAction, trackEvent } from '../tracking'
|
|
12
|
+
import { EventAction, KnowledgebaseFailReason, trackEvent } from '../tracking'
|
|
13
|
+
import { KnowledgeBaseResponse } from '../types'
|
|
13
14
|
|
|
14
15
|
export async function createNodeFromKnowledgeBase(
|
|
15
16
|
cmsApi: FlowBuilderApi,
|
|
@@ -27,14 +28,12 @@ export async function createNodeFromKnowledgeBase(
|
|
|
27
28
|
try {
|
|
28
29
|
const knowledgeBaseResponse =
|
|
29
30
|
await flowBuilderPlugin.getKnowledgeBaseResponse(request)
|
|
30
|
-
|
|
31
|
-
await trackEvent(request, EventAction.knowledgebase, {
|
|
32
|
-
knowledgebaseSourcesIds: knowledgeBaseResponse.sources.map(
|
|
33
|
-
source => source.knowledgeSourceId
|
|
34
|
-
),
|
|
35
|
-
knowledgebaseChunksIds: [],
|
|
36
|
-
})
|
|
31
|
+
await trackKnowledgeBase(knowledgeBaseResponse, request)
|
|
37
32
|
|
|
33
|
+
if (
|
|
34
|
+
knowledgeBaseResponse.hasKnowledge &&
|
|
35
|
+
knowledgeBaseResponse.isFaithuful
|
|
36
|
+
) {
|
|
38
37
|
const knowledgeBaseNode: HtTextNode = {
|
|
39
38
|
type: HtNodeWithContentType.TEXT,
|
|
40
39
|
content: {
|
|
@@ -58,21 +57,45 @@ export async function createNodeFromKnowledgeBase(
|
|
|
58
57
|
}
|
|
59
58
|
return knowledgeBaseNode
|
|
60
59
|
}
|
|
61
|
-
await trackEvent(request, EventAction.knowledgebase, {
|
|
62
|
-
knowledgebaseFailReason:
|
|
63
|
-
'The knowledge base does not have enough knowledge',
|
|
64
|
-
knowledgeSourceIds: [],
|
|
65
|
-
knowledgebaseChunksIds: [],
|
|
66
|
-
})
|
|
67
60
|
} catch (e) {
|
|
68
61
|
console.error('Hubtype knowledge base api error: ', { e })
|
|
69
|
-
await trackEvent(request, EventAction.knowledgebase, {
|
|
70
|
-
knowledgebaseFailReason: 'Knowledge base api error',
|
|
71
|
-
knowledgeSourceIds: [],
|
|
72
|
-
knowledgebaseChunksIds: [],
|
|
73
|
-
})
|
|
74
|
-
return undefined
|
|
75
62
|
}
|
|
76
63
|
}
|
|
77
64
|
return undefined
|
|
78
65
|
}
|
|
66
|
+
|
|
67
|
+
async function trackKnowledgeBase(
|
|
68
|
+
response: KnowledgeBaseResponse,
|
|
69
|
+
request: ActionRequest
|
|
70
|
+
) {
|
|
71
|
+
/* TODO:
|
|
72
|
+
In order to have all these parameters in the base knowlege response
|
|
73
|
+
it is necessary to use the new endpoint to which the knowledge sources
|
|
74
|
+
have to be indicated. For now this will not work, we need to finish
|
|
75
|
+
the knowldege base node in the flow builder frontend.
|
|
76
|
+
*/
|
|
77
|
+
const knowledgebaseInferenceId = response.inferenceId
|
|
78
|
+
const knowledgebaseSourcesIds = response.sources.map(
|
|
79
|
+
source => source.knowledgeSourceId
|
|
80
|
+
)
|
|
81
|
+
const knowledgebaseChunksIds = response.sources.map(
|
|
82
|
+
source => source.knowledgeChunkId
|
|
83
|
+
)
|
|
84
|
+
const knowledgebaseMessageId = request.input.message_id
|
|
85
|
+
|
|
86
|
+
let knowledgebaseFailReason: KnowledgebaseFailReason | undefined
|
|
87
|
+
if (!response.isFaithuful) {
|
|
88
|
+
knowledgebaseFailReason = KnowledgebaseFailReason.Hallucination
|
|
89
|
+
}
|
|
90
|
+
if (!response.hasKnowledge) {
|
|
91
|
+
knowledgebaseFailReason = KnowledgebaseFailReason.NoKnowledge
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
await trackEvent(request, EventAction.Knowledgebase, {
|
|
95
|
+
knowledgebaseInferenceId,
|
|
96
|
+
knowledgebaseFailReason,
|
|
97
|
+
knowledgebaseSourcesIds,
|
|
98
|
+
knowledgebaseChunksIds,
|
|
99
|
+
knowledgebaseMessageId,
|
|
100
|
+
})
|
|
101
|
+
}
|