@botonic/react 0.54.0-alpha.0 → 0.55.0
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/components/index-types.d.ts +0 -2
- package/lib/cjs/components/message/index.js +2 -4
- package/lib/cjs/components/message/index.js.map +1 -1
- package/lib/cjs/components/message/message-footer.d.ts +1 -4
- package/lib/cjs/components/message/message-footer.js +2 -3
- package/lib/cjs/components/message/message-footer.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/debug-message.js +0 -2
- package/lib/cjs/components/system-debug-trace/debug-message.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +1 -1
- package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.js +6 -2
- package/lib/cjs/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.d.ts +6 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js +55 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +1 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/types.d.ts +2 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.d.ts +8 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js +41 -0
- package/lib/cjs/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +1 -0
- package/lib/cjs/components/system-debug-trace/events/constants.d.ts +0 -2
- package/lib/cjs/components/system-debug-trace/events/constants.js +0 -2
- package/lib/cjs/components/system-debug-trace/events/constants.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/index.d.ts +0 -1
- package/lib/cjs/components/system-debug-trace/events/index.js +0 -1
- package/lib/cjs/components/system-debug-trace/events/index.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +1 -4
- package/lib/cjs/components/system-debug-trace/hooks/use-knowledge-base-info.js +1 -23
- package/lib/cjs/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/types.d.ts +2 -2
- package/lib/cjs/components/text.js +0 -2
- package/lib/cjs/components/text.js.map +1 -1
- package/lib/cjs/debug-system-messages.d.ts +0 -22
- package/lib/cjs/debug-system-messages.js +0 -22
- package/lib/cjs/debug-system-messages.js.map +1 -1
- package/lib/cjs/dev-app.d.ts +0 -22
- package/lib/cjs/index-types.d.ts +5 -1
- package/lib/cjs/index-types.js.map +1 -1
- package/lib/cjs/webchat/input-panel/index.js +7 -17
- package/lib/cjs/webchat/input-panel/index.js.map +1 -1
- package/lib/cjs/webchat/input-panel/textarea.d.ts +3 -2
- package/lib/cjs/webchat/input-panel/textarea.js +16 -46
- package/lib/cjs/webchat/input-panel/textarea.js.map +1 -1
- package/lib/cjs/webchat/input-panel/typing-network-sender.d.ts +52 -0
- package/lib/cjs/webchat/input-panel/typing-network-sender.js +122 -0
- package/lib/cjs/webchat/input-panel/typing-network-sender.js.map +1 -0
- package/lib/cjs/webchat/input-panel/use-typing-chat-event-sender.d.ts +16 -0
- package/lib/cjs/webchat/input-panel/use-typing-chat-event-sender.js +45 -0
- package/lib/cjs/webchat/input-panel/use-typing-chat-event-sender.js.map +1 -0
- package/lib/cjs/webchat/input-panel/use-typing-session.d.ts +15 -0
- package/lib/cjs/webchat/input-panel/use-typing-session.js +98 -0
- package/lib/cjs/webchat/input-panel/use-typing-session.js.map +1 -0
- package/lib/cjs/webchat/tracking.d.ts +0 -10
- package/lib/cjs/webchat/tracking.js +1 -32
- package/lib/cjs/webchat/tracking.js.map +1 -1
- package/lib/esm/components/index-types.d.ts +0 -2
- package/lib/esm/components/message/index.js +2 -4
- package/lib/esm/components/message/index.js.map +1 -1
- package/lib/esm/components/message/message-footer.d.ts +1 -4
- package/lib/esm/components/message/message-footer.js +2 -3
- package/lib/esm/components/message/message-footer.js.map +1 -1
- package/lib/esm/components/system-debug-trace/debug-message.js +0 -2
- package/lib/esm/components/system-debug-trace/debug-message.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +1 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js +6 -2
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.d.ts +6 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js +55 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +1 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/types.d.ts +2 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.d.ts +8 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js +41 -0
- package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +1 -0
- package/lib/esm/components/system-debug-trace/events/constants.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/events/constants.js +0 -2
- package/lib/esm/components/system-debug-trace/events/constants.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/index.d.ts +0 -1
- package/lib/esm/components/system-debug-trace/events/index.js +0 -1
- package/lib/esm/components/system-debug-trace/events/index.js.map +1 -1
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +1 -4
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js +1 -23
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -1
- package/lib/esm/components/system-debug-trace/types.d.ts +2 -2
- package/lib/esm/components/text.js +0 -2
- package/lib/esm/components/text.js.map +1 -1
- package/lib/esm/debug-system-messages.d.ts +0 -22
- package/lib/esm/debug-system-messages.js +0 -22
- package/lib/esm/debug-system-messages.js.map +1 -1
- package/lib/esm/dev-app.d.ts +0 -22
- package/lib/esm/index-types.d.ts +5 -1
- package/lib/esm/index-types.js.map +1 -1
- package/lib/esm/webchat/input-panel/index.js +7 -17
- package/lib/esm/webchat/input-panel/index.js.map +1 -1
- package/lib/esm/webchat/input-panel/textarea.d.ts +3 -2
- package/lib/esm/webchat/input-panel/textarea.js +16 -46
- package/lib/esm/webchat/input-panel/textarea.js.map +1 -1
- package/lib/esm/webchat/input-panel/typing-network-sender.d.ts +52 -0
- package/lib/esm/webchat/input-panel/typing-network-sender.js +122 -0
- package/lib/esm/webchat/input-panel/typing-network-sender.js.map +1 -0
- package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.d.ts +16 -0
- package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.js +45 -0
- package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.js.map +1 -0
- package/lib/esm/webchat/input-panel/use-typing-session.d.ts +15 -0
- package/lib/esm/webchat/input-panel/use-typing-session.js +98 -0
- package/lib/esm/webchat/input-panel/use-typing-session.js.map +1 -0
- package/lib/esm/webchat/tracking.d.ts +0 -10
- package/lib/esm/webchat/tracking.js +1 -32
- package/lib/esm/webchat/tracking.js.map +1 -1
- package/package.json +2 -2
- package/src/components/index-types.ts +0 -2
- package/src/components/message/index.jsx +1 -8
- package/src/components/message/message-footer.tsx +0 -14
- package/src/components/system-debug-trace/debug-message.tsx +0 -3
- package/src/components/system-debug-trace/events/ai-agent/ai-agent.tsx +22 -10
- package/src/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.ts +70 -0
- package/src/components/system-debug-trace/events/ai-agent/types.ts +2 -0
- package/src/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.ts +67 -0
- package/src/components/system-debug-trace/events/constants.ts +0 -2
- package/src/components/system-debug-trace/events/index.ts +0 -1
- package/src/components/system-debug-trace/hooks/use-knowledge-base-info.tsx +1 -27
- package/src/components/system-debug-trace/types.ts +0 -2
- package/src/components/text.tsx +0 -2
- package/src/debug-system-messages.ts +0 -25
- package/src/index-types.ts +9 -1
- package/src/webchat/input-panel/index.tsx +7 -17
- package/src/webchat/input-panel/textarea.tsx +20 -60
- package/src/webchat/input-panel/typing-network-sender.ts +168 -0
- package/src/webchat/input-panel/use-typing-chat-event-sender.ts +67 -0
- package/src/webchat/input-panel/use-typing-session.ts +124 -0
- package/src/webchat/tracking.ts +2 -56
- package/lib/cjs/components/message/message-feedback.d.ts +0 -7
- package/lib/cjs/components/message/message-feedback.js +0 -55
- package/lib/cjs/components/message/message-feedback.js.map +0 -1
- package/lib/cjs/components/system-debug-trace/events/knowledge-base.d.ts +0 -17
- package/lib/cjs/components/system-debug-trace/events/knowledge-base.js +0 -42
- package/lib/cjs/components/system-debug-trace/events/knowledge-base.js.map +0 -1
- package/lib/esm/components/message/message-feedback.d.ts +0 -7
- package/lib/esm/components/message/message-feedback.js +0 -55
- package/lib/esm/components/message/message-feedback.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/knowledge-base.d.ts +0 -17
- package/lib/esm/components/system-debug-trace/events/knowledge-base.js +0 -42
- package/lib/esm/components/system-debug-trace/events/knowledge-base.js.map +0 -1
- package/src/components/message/message-feedback.tsx +0 -90
- package/src/components/system-debug-trace/events/knowledge-base.tsx +0 -115
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;;;;AAAA,iCAAuD;AAEvD,2FAAqD;AACrD,uFAAiD;AACjD,qCAAyC;AACzC,mDAAsD;AACtD,qDAAoD;AACpD,qCAAmE;AAa5D,MAAM,eAAe,GAAG,CAAC,EAC9B,gBAAgB,EAChB,WAAW,EACX,SAAS,GACG,EAAE,EAAE;IAChB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IAClE,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAA,sBAAW,GAAE,CAAA;IAEpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAe;QACrD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,CAAC,eAAwB,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CACpC,CAAA;QACD,MAAM,UAAU,GAAG;YACjB,GAAG,OAAO;YACV,eAAe;SAChB,CAAA;QACD,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,WAAW,GAAG,KAAK,EAAE,QAAiB,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,0BAA0B,CAAC;YAC/B,SAAS;YACT,QAAQ;YACR,gBAAgB;YAChB,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,CACL,wBAAC,iCAAwB,eACvB,uBAAC,uBAAc,IACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAEhC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,uBAAQ,CAAC,GAAI,GACrB,EACjB,uBAAC,uBAAc,IACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,YAEjC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,yBAAU,CAAC,GAAI,GACvB,IACQ,CAC5B,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,eAAe,mBAqE3B"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { EventAction } from '@botonic/core';
|
|
2
|
-
import type { DebugEventConfig } from '../types';
|
|
3
|
-
import type { ChunkIdsGroupedBySourceData } from './knowledge-bases-types';
|
|
4
|
-
export interface KnowledgeBaseDebugEvent {
|
|
5
|
-
action: EventAction.Knowledgebase;
|
|
6
|
-
flow_id: string;
|
|
7
|
-
flow_node_id: string;
|
|
8
|
-
knowledgebase_inference_id: string;
|
|
9
|
-
knowledgebase_fail_reason: string;
|
|
10
|
-
knowledgebase_sources_ids: string[];
|
|
11
|
-
knowledgebase_chunks_ids: string[];
|
|
12
|
-
user_input: string;
|
|
13
|
-
knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[];
|
|
14
|
-
messageId?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare const KnowledgeBase: (props: KnowledgeBaseDebugEvent) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
export declare const getKnowledgeBaseEventConfig: (_data: KnowledgeBaseDebugEvent) => DebugEventConfig;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getKnowledgeBaseEventConfig = exports.KnowledgeBase = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const core_1 = require("@botonic/core");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const context_1 = require("../../../webchat/context");
|
|
8
|
-
const use_knowledge_base_info_1 = require("../hooks/use-knowledge-base-info");
|
|
9
|
-
const icons_1 = require("../icons");
|
|
10
|
-
const styles_1 = require("../styles");
|
|
11
|
-
const components_1 = require("./components");
|
|
12
|
-
const constants_1 = require("./constants");
|
|
13
|
-
const KnowledgeBase = (props) => {
|
|
14
|
-
const { previewUtils } = (0, react_1.useContext)(context_1.WebchatContext);
|
|
15
|
-
const { sources, chunks, chunksWithSources, getIconForSourceType, hasKnowledge, isFaithful, } = (0, use_knowledge_base_info_1.useKnowledgeBaseInfo)({
|
|
16
|
-
sourceIds: props.knowledgebase_sources_ids,
|
|
17
|
-
chunkIds: props.knowledgebase_chunks_ids,
|
|
18
|
-
messageId: props.messageId,
|
|
19
|
-
existingChunksWithSources: props.knowledge_base_chunks_with_sources,
|
|
20
|
-
failReason: props.knowledgebase_fail_reason,
|
|
21
|
-
});
|
|
22
|
-
const showFailReason = !hasKnowledge || !isFaithful;
|
|
23
|
-
const handleSeeChunks = () => {
|
|
24
|
-
if (previewUtils?.onClickOpenChunks) {
|
|
25
|
-
previewUtils.onClickOpenChunks(chunksWithSources);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.QUERY }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugValue, { children: ["\"", props.user_input, "\""] })] }), showFailReason ? ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.KNOWLEDGE_BASE_FAIL_REASON }), (0, jsx_runtime_1.jsx)(styles_1.StyledDebugValue, { children: props.knowledgebase_fail_reason })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.SourcesSection, { sources: sources, chunks: chunks, getIconForSourceType: getIconForSourceType, onSeeChunks: handleSeeChunks }), hasKnowledge && ((0, jsx_runtime_1.jsxs)(styles_1.StyledGuardrailItem, { children: [(0, jsx_runtime_1.jsx)(icons_1.CircleCheckSvg, {}), (0, jsx_runtime_1.jsx)(styles_1.StyledGuardrailLabel, { children: constants_1.LABELS.KNOWLEDGE_FOUND })] })), isFaithful && ((0, jsx_runtime_1.jsxs)(styles_1.StyledGuardrailItem, { "$isLastItem": true, children: [(0, jsx_runtime_1.jsx)(icons_1.CircleCheckSvg, {}), (0, jsx_runtime_1.jsx)(styles_1.StyledGuardrailLabel, { children: constants_1.LABELS.FAITHFUL_ANSWER })] }))] }))] }));
|
|
29
|
-
};
|
|
30
|
-
exports.KnowledgeBase = KnowledgeBase;
|
|
31
|
-
const getKnowledgeBaseEventConfig = (_data) => {
|
|
32
|
-
const title = (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Knowledge Base triggered" });
|
|
33
|
-
return {
|
|
34
|
-
action: core_1.EventAction.Knowledgebase,
|
|
35
|
-
title,
|
|
36
|
-
component: exports.KnowledgeBase,
|
|
37
|
-
icon: (0, jsx_runtime_1.jsx)(icons_1.WandSvg, {}),
|
|
38
|
-
collapsible: true,
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
exports.getKnowledgeBaseEventConfig = getKnowledgeBaseEventConfig;
|
|
42
|
-
//# sourceMappingURL=knowledge-base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-base.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/knowledge-base.tsx"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,iCAAkC;AAElC,sDAAyD;AACzD,8EAAuE;AACvE,oCAAkD;AAClD,sCAMkB;AAElB,6CAA6C;AAC7C,2CAAoC;AAgB7B,MAAM,aAAa,GAAG,CAAC,KAA8B,EAAE,EAAE;IAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IACnD,MAAM,EACJ,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,UAAU,GACX,GAAG,IAAA,8CAAoB,EAAC;QACvB,SAAS,EAAE,KAAK,CAAC,yBAAyB;QAC1C,QAAQ,EAAE,KAAK,CAAC,wBAAwB;QACxC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,yBAAyB,EAAE,KAAK,CAAC,kCAAkC;QACnE,UAAU,EAAE,KAAK,CAAC,yBAAyB;KAC5C,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,CAAA;IAEnD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,YAAY,EAAE,iBAAiB,EAAE,CAAC;YACpC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;QACnD,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,6DACE,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cAAE,kBAAM,CAAC,KAAK,GAAoB,EACnD,wBAAC,yBAAgB,qBAAQ,KAAK,CAAC,UAAU,UAA0B,IACjD,EAEnB,cAAc,CAAC,CAAC,CAAC,CAChB,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cACd,kBAAM,CAAC,0BAA0B,GACjB,EACnB,uBAAC,yBAAgB,cAAE,KAAK,CAAC,yBAAyB,GAAoB,IACpD,CACrB,CAAC,CAAC,CAAC,CACF,6DACE,uBAAC,2BAAc,IACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,eAAe,GAC5B,EAED,YAAY,IAAI,CACf,wBAAC,4BAAmB,eAClB,uBAAC,sBAAc,KAAG,EAClB,uBAAC,6BAAoB,cAClB,kBAAM,CAAC,eAAe,GACF,IACH,CACvB,EAEA,UAAU,IAAI,CACb,wBAAC,4BAAmB,mBAAc,IAAI,aACpC,uBAAC,sBAAc,KAAG,EAClB,uBAAC,6BAAoB,cAClB,kBAAM,CAAC,eAAe,GACF,IACH,CACvB,IACA,CACJ,IACA,CACJ,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,aAAa,iBAqEzB;AAEM,MAAM,2BAA2B,GAAG,CACzC,KAA8B,EACZ,EAAE;IACpB,MAAM,KAAK,GAAG,wFAA6B,CAAA;IAE3C,OAAO;QACL,MAAM,EAAE,kBAAW,CAAC,aAAa;QACjC,KAAK;QACL,SAAS,EAAE,qBAAa;QACxB,IAAI,EAAE,uBAAC,eAAO,KAAG;QACjB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MessageFeedback = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const thumbs_down_svg_1 = tslib_1.__importDefault(require("../../assets/thumbs-down.svg"));
|
|
8
|
-
const thumbs_up_svg_1 = tslib_1.__importDefault(require("../../assets/thumbs-up.svg"));
|
|
9
|
-
const util_1 = require("../../util");
|
|
10
|
-
const context_1 = require("../../webchat/context");
|
|
11
|
-
const tracking_1 = require("../../webchat/tracking");
|
|
12
|
-
const styles_1 = require("./styles");
|
|
13
|
-
const MessageFeedback = ({ botInteractionId, inferenceId, messageId, }) => {
|
|
14
|
-
const { webchatState, updateMessage } = (0, react_1.useContext)(context_1.WebchatContext);
|
|
15
|
-
const { trackKnowledgebaseFeedback } = (0, tracking_1.useTracking)();
|
|
16
|
-
const [className, setClassName] = (0, react_1.useState)('');
|
|
17
|
-
const [disabled, setDisabled] = (0, react_1.useState)({
|
|
18
|
-
positive: false,
|
|
19
|
-
negative: false,
|
|
20
|
-
});
|
|
21
|
-
const updateMsgWithFeedback = (feedbackEnabled) => {
|
|
22
|
-
const message = webchatState.messagesJSON.find(message => message.id === messageId);
|
|
23
|
-
const updatedMsg = {
|
|
24
|
-
...message,
|
|
25
|
-
feedbackEnabled,
|
|
26
|
-
};
|
|
27
|
-
updateMessage(updatedMsg);
|
|
28
|
-
};
|
|
29
|
-
(0, react_1.useEffect)(() => {
|
|
30
|
-
updateMsgWithFeedback(true);
|
|
31
|
-
}, []);
|
|
32
|
-
(0, react_1.useEffect)(() => {
|
|
33
|
-
if (disabled.positive || disabled.negative) {
|
|
34
|
-
setClassName('clicked');
|
|
35
|
-
updateMsgWithFeedback(false);
|
|
36
|
-
}
|
|
37
|
-
}, [disabled]);
|
|
38
|
-
const handleClick = async (isUseful) => {
|
|
39
|
-
if (isUseful) {
|
|
40
|
-
setDisabled({ positive: false, negative: true });
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
setDisabled({ positive: true, negative: false });
|
|
44
|
-
}
|
|
45
|
-
await trackKnowledgebaseFeedback({
|
|
46
|
-
messageId,
|
|
47
|
-
isUseful,
|
|
48
|
-
botInteractionId,
|
|
49
|
-
inferenceId,
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
return ((0, jsx_runtime_1.jsxs)(styles_1.FeedbackMessageContainer, { children: [(0, jsx_runtime_1.jsx)(styles_1.FeedbackButton, { className: className, disabled: disabled.positive, onClick: () => handleClick(true), children: (0, jsx_runtime_1.jsx)("img", { src: (0, util_1.resolveImage)(thumbs_up_svg_1.default) }) }), (0, jsx_runtime_1.jsx)(styles_1.FeedbackButton, { className: className, disabled: disabled.negative, onClick: () => handleClick(false), children: (0, jsx_runtime_1.jsx)("img", { src: (0, util_1.resolveImage)(thumbs_down_svg_1.default) }) })] }));
|
|
53
|
-
};
|
|
54
|
-
exports.MessageFeedback = MessageFeedback;
|
|
55
|
-
//# sourceMappingURL=message-feedback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;;;;AAAA,iCAAuD;AAEvD,2FAAqD;AACrD,uFAAiD;AACjD,qCAAyC;AACzC,mDAAsD;AACtD,qDAAoD;AACpD,qCAAmE;AAa5D,MAAM,eAAe,GAAG,CAAC,EAC9B,gBAAgB,EAChB,WAAW,EACX,SAAS,GACG,EAAE,EAAE;IAChB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IAClE,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAA,sBAAW,GAAE,CAAA;IAEpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAe;QACrD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,CAAC,eAAwB,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CACpC,CAAA;QACD,MAAM,UAAU,GAAG;YACjB,GAAG,OAAO;YACV,eAAe;SAChB,CAAA;QACD,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,WAAW,GAAG,KAAK,EAAE,QAAiB,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,0BAA0B,CAAC;YAC/B,SAAS;YACT,QAAQ;YACR,gBAAgB;YAChB,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,CACL,wBAAC,iCAAwB,eACvB,uBAAC,uBAAc,IACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAEhC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,uBAAQ,CAAC,GAAI,GACrB,EACjB,uBAAC,uBAAc,IACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,YAEjC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,yBAAU,CAAC,GAAI,GACvB,IACQ,CAC5B,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,eAAe,mBAqE3B"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { EventAction } from '@botonic/core';
|
|
2
|
-
import type { DebugEventConfig } from '../types';
|
|
3
|
-
import type { ChunkIdsGroupedBySourceData } from './knowledge-bases-types';
|
|
4
|
-
export interface KnowledgeBaseDebugEvent {
|
|
5
|
-
action: EventAction.Knowledgebase;
|
|
6
|
-
flow_id: string;
|
|
7
|
-
flow_node_id: string;
|
|
8
|
-
knowledgebase_inference_id: string;
|
|
9
|
-
knowledgebase_fail_reason: string;
|
|
10
|
-
knowledgebase_sources_ids: string[];
|
|
11
|
-
knowledgebase_chunks_ids: string[];
|
|
12
|
-
user_input: string;
|
|
13
|
-
knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[];
|
|
14
|
-
messageId?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare const KnowledgeBase: (props: KnowledgeBaseDebugEvent) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
export declare const getKnowledgeBaseEventConfig: (_data: KnowledgeBaseDebugEvent) => DebugEventConfig;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getKnowledgeBaseEventConfig = exports.KnowledgeBase = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const core_1 = require("@botonic/core");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const context_1 = require("../../../webchat/context");
|
|
8
|
-
const use_knowledge_base_info_1 = require("../hooks/use-knowledge-base-info");
|
|
9
|
-
const icons_1 = require("../icons");
|
|
10
|
-
const styles_1 = require("../styles");
|
|
11
|
-
const components_1 = require("./components");
|
|
12
|
-
const constants_1 = require("./constants");
|
|
13
|
-
const KnowledgeBase = (props) => {
|
|
14
|
-
const { previewUtils } = (0, react_1.useContext)(context_1.WebchatContext);
|
|
15
|
-
const { sources, chunks, chunksWithSources, getIconForSourceType, hasKnowledge, isFaithful, } = (0, use_knowledge_base_info_1.useKnowledgeBaseInfo)({
|
|
16
|
-
sourceIds: props.knowledgebase_sources_ids,
|
|
17
|
-
chunkIds: props.knowledgebase_chunks_ids,
|
|
18
|
-
messageId: props.messageId,
|
|
19
|
-
existingChunksWithSources: props.knowledge_base_chunks_with_sources,
|
|
20
|
-
failReason: props.knowledgebase_fail_reason,
|
|
21
|
-
});
|
|
22
|
-
const showFailReason = !hasKnowledge || !isFaithful;
|
|
23
|
-
const handleSeeChunks = () => {
|
|
24
|
-
if (previewUtils?.onClickOpenChunks) {
|
|
25
|
-
previewUtils.onClickOpenChunks(chunksWithSources);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.QUERY }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugValue, { children: ["\"", props.user_input, "\""] })] }), showFailReason ? ((0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.KNOWLEDGE_BASE_FAIL_REASON }), (0, jsx_runtime_1.jsx)(styles_1.StyledDebugValue, { children: props.knowledgebase_fail_reason })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.SourcesSection, { sources: sources, chunks: chunks, getIconForSourceType: getIconForSourceType, onSeeChunks: handleSeeChunks }), hasKnowledge && ((0, jsx_runtime_1.jsxs)(styles_1.StyledGuardrailItem, { children: [(0, jsx_runtime_1.jsx)(icons_1.CircleCheckSvg, {}), (0, jsx_runtime_1.jsx)(styles_1.StyledGuardrailLabel, { children: constants_1.LABELS.KNOWLEDGE_FOUND })] })), isFaithful && ((0, jsx_runtime_1.jsxs)(styles_1.StyledGuardrailItem, { "$isLastItem": true, children: [(0, jsx_runtime_1.jsx)(icons_1.CircleCheckSvg, {}), (0, jsx_runtime_1.jsx)(styles_1.StyledGuardrailLabel, { children: constants_1.LABELS.FAITHFUL_ANSWER })] }))] }))] }));
|
|
29
|
-
};
|
|
30
|
-
exports.KnowledgeBase = KnowledgeBase;
|
|
31
|
-
const getKnowledgeBaseEventConfig = (_data) => {
|
|
32
|
-
const title = (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Knowledge Base triggered" });
|
|
33
|
-
return {
|
|
34
|
-
action: core_1.EventAction.Knowledgebase,
|
|
35
|
-
title,
|
|
36
|
-
component: exports.KnowledgeBase,
|
|
37
|
-
icon: (0, jsx_runtime_1.jsx)(icons_1.WandSvg, {}),
|
|
38
|
-
collapsible: true,
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
exports.getKnowledgeBaseEventConfig = getKnowledgeBaseEventConfig;
|
|
42
|
-
//# sourceMappingURL=knowledge-base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-base.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/knowledge-base.tsx"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,iCAAkC;AAElC,sDAAyD;AACzD,8EAAuE;AACvE,oCAAkD;AAClD,sCAMkB;AAElB,6CAA6C;AAC7C,2CAAoC;AAgB7B,MAAM,aAAa,GAAG,CAAC,KAA8B,EAAE,EAAE;IAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IACnD,MAAM,EACJ,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,UAAU,GACX,GAAG,IAAA,8CAAoB,EAAC;QACvB,SAAS,EAAE,KAAK,CAAC,yBAAyB;QAC1C,QAAQ,EAAE,KAAK,CAAC,wBAAwB;QACxC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,yBAAyB,EAAE,KAAK,CAAC,kCAAkC;QACnE,UAAU,EAAE,KAAK,CAAC,yBAAyB;KAC5C,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,CAAA;IAEnD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,YAAY,EAAE,iBAAiB,EAAE,CAAC;YACpC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;QACnD,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,6DACE,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cAAE,kBAAM,CAAC,KAAK,GAAoB,EACnD,wBAAC,yBAAgB,qBAAQ,KAAK,CAAC,UAAU,UAA0B,IACjD,EAEnB,cAAc,CAAC,CAAC,CAAC,CAChB,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cACd,kBAAM,CAAC,0BAA0B,GACjB,EACnB,uBAAC,yBAAgB,cAAE,KAAK,CAAC,yBAAyB,GAAoB,IACpD,CACrB,CAAC,CAAC,CAAC,CACF,6DACE,uBAAC,2BAAc,IACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,eAAe,GAC5B,EAED,YAAY,IAAI,CACf,wBAAC,4BAAmB,eAClB,uBAAC,sBAAc,KAAG,EAClB,uBAAC,6BAAoB,cAClB,kBAAM,CAAC,eAAe,GACF,IACH,CACvB,EAEA,UAAU,IAAI,CACb,wBAAC,4BAAmB,mBAAc,IAAI,aACpC,uBAAC,sBAAc,KAAG,EAClB,uBAAC,6BAAoB,cAClB,kBAAM,CAAC,eAAe,GACF,IACH,CACvB,IACA,CACJ,IACA,CACJ,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,aAAa,iBAqEzB;AAEM,MAAM,2BAA2B,GAAG,CACzC,KAA8B,EACZ,EAAE;IACpB,MAAM,KAAK,GAAG,wFAA6B,CAAA;IAE3C,OAAO;QACL,MAAM,EAAE,kBAAW,CAAC,aAAa;QACjC,KAAK;QACL,SAAS,EAAE,qBAAa;QACxB,IAAI,EAAE,uBAAC,eAAO,KAAG;QACjB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { useContext, useEffect, useState } from 'react'
|
|
2
|
-
|
|
3
|
-
import ThumbsDown from '../../assets/thumbs-down.svg'
|
|
4
|
-
import ThumbsUp from '../../assets/thumbs-up.svg'
|
|
5
|
-
import { resolveImage } from '../../util'
|
|
6
|
-
import { WebchatContext } from '../../webchat/context'
|
|
7
|
-
import { useTracking } from '../../webchat/tracking'
|
|
8
|
-
import { FeedbackButton, FeedbackMessageContainer } from './styles'
|
|
9
|
-
|
|
10
|
-
interface ButtonsState {
|
|
11
|
-
positive: boolean
|
|
12
|
-
negative: boolean
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
interface RatingProps {
|
|
16
|
-
botInteractionId?: string
|
|
17
|
-
inferenceId?: string
|
|
18
|
-
messageId: string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const MessageFeedback = ({
|
|
22
|
-
botInteractionId,
|
|
23
|
-
inferenceId,
|
|
24
|
-
messageId,
|
|
25
|
-
}: RatingProps) => {
|
|
26
|
-
const { webchatState, updateMessage } = useContext(WebchatContext)
|
|
27
|
-
const { trackKnowledgebaseFeedback } = useTracking()
|
|
28
|
-
|
|
29
|
-
const [className, setClassName] = useState('')
|
|
30
|
-
const [disabled, setDisabled] = useState<ButtonsState>({
|
|
31
|
-
positive: false,
|
|
32
|
-
negative: false,
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
const updateMsgWithFeedback = (feedbackEnabled: boolean) => {
|
|
36
|
-
const message = webchatState.messagesJSON.find(
|
|
37
|
-
message => message.id === messageId
|
|
38
|
-
)
|
|
39
|
-
const updatedMsg = {
|
|
40
|
-
...message,
|
|
41
|
-
feedbackEnabled,
|
|
42
|
-
}
|
|
43
|
-
updateMessage(updatedMsg)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
updateMsgWithFeedback(true)
|
|
48
|
-
}, [])
|
|
49
|
-
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
if (disabled.positive || disabled.negative) {
|
|
52
|
-
setClassName('clicked')
|
|
53
|
-
updateMsgWithFeedback(false)
|
|
54
|
-
}
|
|
55
|
-
}, [disabled])
|
|
56
|
-
|
|
57
|
-
const handleClick = async (isUseful: boolean) => {
|
|
58
|
-
if (isUseful) {
|
|
59
|
-
setDisabled({ positive: false, negative: true })
|
|
60
|
-
} else {
|
|
61
|
-
setDisabled({ positive: true, negative: false })
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
await trackKnowledgebaseFeedback({
|
|
65
|
-
messageId,
|
|
66
|
-
isUseful,
|
|
67
|
-
botInteractionId,
|
|
68
|
-
inferenceId,
|
|
69
|
-
})
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return (
|
|
73
|
-
<FeedbackMessageContainer>
|
|
74
|
-
<FeedbackButton
|
|
75
|
-
className={className}
|
|
76
|
-
disabled={disabled.positive}
|
|
77
|
-
onClick={() => handleClick(true)}
|
|
78
|
-
>
|
|
79
|
-
<img src={resolveImage(ThumbsUp)} />
|
|
80
|
-
</FeedbackButton>
|
|
81
|
-
<FeedbackButton
|
|
82
|
-
className={className}
|
|
83
|
-
disabled={disabled.negative}
|
|
84
|
-
onClick={() => handleClick(false)}
|
|
85
|
-
>
|
|
86
|
-
<img src={resolveImage(ThumbsDown)} />
|
|
87
|
-
</FeedbackButton>
|
|
88
|
-
</FeedbackMessageContainer>
|
|
89
|
-
)
|
|
90
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { EventAction } from '@botonic/core'
|
|
2
|
-
import { useContext } from 'react'
|
|
3
|
-
|
|
4
|
-
import { WebchatContext } from '../../../webchat/context'
|
|
5
|
-
import { useKnowledgeBaseInfo } from '../hooks/use-knowledge-base-info'
|
|
6
|
-
import { CircleCheckSvg, WandSvg } from '../icons'
|
|
7
|
-
import {
|
|
8
|
-
StyledDebugDetail,
|
|
9
|
-
StyledDebugLabel,
|
|
10
|
-
StyledDebugValue,
|
|
11
|
-
StyledGuardrailItem,
|
|
12
|
-
StyledGuardrailLabel,
|
|
13
|
-
} from '../styles'
|
|
14
|
-
import type { DebugEventConfig } from '../types'
|
|
15
|
-
import { SourcesSection } from './components'
|
|
16
|
-
import { LABELS } from './constants'
|
|
17
|
-
import type { ChunkIdsGroupedBySourceData } from './knowledge-bases-types'
|
|
18
|
-
|
|
19
|
-
export interface KnowledgeBaseDebugEvent {
|
|
20
|
-
action: EventAction.Knowledgebase
|
|
21
|
-
flow_id: string
|
|
22
|
-
flow_node_id: string
|
|
23
|
-
knowledgebase_inference_id: string
|
|
24
|
-
knowledgebase_fail_reason: string
|
|
25
|
-
knowledgebase_sources_ids: string[]
|
|
26
|
-
knowledgebase_chunks_ids: string[]
|
|
27
|
-
user_input: string
|
|
28
|
-
knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[]
|
|
29
|
-
messageId?: string
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export const KnowledgeBase = (props: KnowledgeBaseDebugEvent) => {
|
|
33
|
-
const { previewUtils } = useContext(WebchatContext)
|
|
34
|
-
const {
|
|
35
|
-
sources,
|
|
36
|
-
chunks,
|
|
37
|
-
chunksWithSources,
|
|
38
|
-
getIconForSourceType,
|
|
39
|
-
hasKnowledge,
|
|
40
|
-
isFaithful,
|
|
41
|
-
} = useKnowledgeBaseInfo({
|
|
42
|
-
sourceIds: props.knowledgebase_sources_ids,
|
|
43
|
-
chunkIds: props.knowledgebase_chunks_ids,
|
|
44
|
-
messageId: props.messageId,
|
|
45
|
-
existingChunksWithSources: props.knowledge_base_chunks_with_sources,
|
|
46
|
-
failReason: props.knowledgebase_fail_reason,
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
const showFailReason = !hasKnowledge || !isFaithful
|
|
50
|
-
|
|
51
|
-
const handleSeeChunks = () => {
|
|
52
|
-
if (previewUtils?.onClickOpenChunks) {
|
|
53
|
-
previewUtils.onClickOpenChunks(chunksWithSources)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<>
|
|
59
|
-
<StyledDebugDetail>
|
|
60
|
-
<StyledDebugLabel>{LABELS.QUERY}</StyledDebugLabel>
|
|
61
|
-
<StyledDebugValue>"{props.user_input}"</StyledDebugValue>
|
|
62
|
-
</StyledDebugDetail>
|
|
63
|
-
|
|
64
|
-
{showFailReason ? (
|
|
65
|
-
<StyledDebugDetail>
|
|
66
|
-
<StyledDebugLabel>
|
|
67
|
-
{LABELS.KNOWLEDGE_BASE_FAIL_REASON}
|
|
68
|
-
</StyledDebugLabel>
|
|
69
|
-
<StyledDebugValue>{props.knowledgebase_fail_reason}</StyledDebugValue>
|
|
70
|
-
</StyledDebugDetail>
|
|
71
|
-
) : (
|
|
72
|
-
<>
|
|
73
|
-
<SourcesSection
|
|
74
|
-
sources={sources}
|
|
75
|
-
chunks={chunks}
|
|
76
|
-
getIconForSourceType={getIconForSourceType}
|
|
77
|
-
onSeeChunks={handleSeeChunks}
|
|
78
|
-
/>
|
|
79
|
-
|
|
80
|
-
{hasKnowledge && (
|
|
81
|
-
<StyledGuardrailItem>
|
|
82
|
-
<CircleCheckSvg />
|
|
83
|
-
<StyledGuardrailLabel>
|
|
84
|
-
{LABELS.KNOWLEDGE_FOUND}
|
|
85
|
-
</StyledGuardrailLabel>
|
|
86
|
-
</StyledGuardrailItem>
|
|
87
|
-
)}
|
|
88
|
-
|
|
89
|
-
{isFaithful && (
|
|
90
|
-
<StyledGuardrailItem $isLastItem={true}>
|
|
91
|
-
<CircleCheckSvg />
|
|
92
|
-
<StyledGuardrailLabel>
|
|
93
|
-
{LABELS.FAITHFUL_ANSWER}
|
|
94
|
-
</StyledGuardrailLabel>
|
|
95
|
-
</StyledGuardrailItem>
|
|
96
|
-
)}
|
|
97
|
-
</>
|
|
98
|
-
)}
|
|
99
|
-
</>
|
|
100
|
-
)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export const getKnowledgeBaseEventConfig = (
|
|
104
|
-
_data: KnowledgeBaseDebugEvent
|
|
105
|
-
): DebugEventConfig => {
|
|
106
|
-
const title = <>Knowledge Base triggered</>
|
|
107
|
-
|
|
108
|
-
return {
|
|
109
|
-
action: EventAction.Knowledgebase,
|
|
110
|
-
title,
|
|
111
|
-
component: KnowledgeBase,
|
|
112
|
-
icon: <WandSvg />,
|
|
113
|
-
collapsible: true,
|
|
114
|
-
}
|
|
115
|
-
}
|