@blueking/ai-ui-sdk 0.0.15-beta.3 → 0.0.15-beta.30

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.
Files changed (89) hide show
  1. package/dist/assets/images/ai.png +0 -0
  2. package/dist/assets/images/user.png +0 -0
  3. package/dist/assets/svg/picture-fail.svg +1 -0
  4. package/dist/common/util.d.ts +10 -0
  5. package/dist/common/util.js +34 -0
  6. package/dist/component/render-image/index.script.vue.js +37 -0
  7. package/dist/component/render-image/index.vue.d.ts +6 -0
  8. package/dist/component/render-image/index.vue.js +3 -0
  9. package/dist/component/render-input/index.script.vue.js +210 -0
  10. package/dist/component/render-input/index.vue.css +124 -0
  11. package/dist/component/render-input/index.vue.d.ts +20 -0
  12. package/dist/component/render-input/index.vue.js +5 -0
  13. package/dist/component/render-input/render-drag.script.vue.js +61 -0
  14. package/dist/component/render-input/render-drag.vue.css +28 -0
  15. package/dist/component/render-input/render-drag.vue.d.ts +13 -0
  16. package/dist/component/render-input/render-drag.vue.js +5 -0
  17. package/dist/component/render-input/render-quill.script.vue.js +197 -0
  18. package/dist/component/render-input/render-quill.vue.css +27 -0
  19. package/dist/component/render-input/render-quill.vue.d.ts +24 -0
  20. package/dist/component/render-input/render-quill.vue.js +4 -0
  21. package/dist/component/render-knowledge-icon/index.script.vue.js +40 -0
  22. package/dist/component/render-knowledge-icon/index.vue.css +4 -0
  23. package/dist/component/render-knowledge-icon/index.vue.d.ts +14 -0
  24. package/dist/component/render-knowledge-icon/index.vue.js +5 -0
  25. package/dist/component/render-markdown/mark-down-code.d.ts +2 -0
  26. package/dist/component/render-markdown/mark-down-code.js +171 -0
  27. package/dist/component/render-markdown/mark-down-emoji.d.ts +2 -0
  28. package/dist/component/render-markdown/mark-down-emoji.js +4 -0
  29. package/dist/component/render-markdown/mark-down.d.ts +74 -0
  30. package/dist/component/render-markdown/mark-down.js +147 -0
  31. package/dist/component/render-markdown/mark-down.postcss.css +129 -0
  32. package/dist/component/render-message/index.d.ts +61 -0
  33. package/dist/component/render-message/index.js +110 -0
  34. package/dist/component/render-message/openai-message.script.vue.js +215 -0
  35. package/dist/component/render-message/openai-message.vue.css +99 -0
  36. package/dist/component/render-message/openai-message.vue.d.ts +15 -0
  37. package/dist/component/render-message/openai-message.vue.js +5 -0
  38. package/dist/component/render-message/skeleton-message.script.vue.js +7 -0
  39. package/dist/component/render-message/skeleton-message.vue.css +7 -0
  40. package/dist/component/render-message/skeleton-message.vue.d.ts +2 -0
  41. package/dist/component/render-message/skeleton-message.vue.js +6 -0
  42. package/dist/component/render-message/system-message.script.vue.js +17 -0
  43. package/dist/component/render-message/system-message.vue.css +18 -0
  44. package/dist/component/render-message/system-message.vue.d.ts +6 -0
  45. package/dist/component/render-message/system-message.vue.js +5 -0
  46. package/dist/component/render-message/time-message.script.vue.js +41 -0
  47. package/dist/component/render-message/time-message.vue.css +14 -0
  48. package/dist/component/render-message/time-message.vue.d.ts +6 -0
  49. package/dist/component/render-message/time-message.vue.js +5 -0
  50. package/dist/component/render-message/token-expired-message.script.vue.js +78 -0
  51. package/dist/component/render-message/token-expired-message.vue.css +56 -0
  52. package/dist/component/render-message/token-expired-message.vue.d.ts +15 -0
  53. package/dist/component/render-message/token-expired-message.vue.js +5 -0
  54. package/dist/component/render-message/user-message.script.vue.js +230 -0
  55. package/dist/component/render-message/user-message.vue.css +90 -0
  56. package/dist/component/render-message/user-message.vue.d.ts +21 -0
  57. package/dist/component/render-message/user-message.vue.js +5 -0
  58. package/dist/component/render-stop/index.script.vue.js +24 -0
  59. package/dist/component/render-stop/index.vue.css +18 -0
  60. package/dist/component/render-stop/index.vue.d.ts +6 -0
  61. package/dist/component/render-stop/index.vue.js +5 -0
  62. package/dist/component.d.ts +5 -0
  63. package/dist/component.js +6 -0
  64. package/dist/css/fonts/iconcool.eot +0 -0
  65. package/dist/css/fonts/iconcool.svg +30 -0
  66. package/dist/css/fonts/iconcool.ttf +0 -0
  67. package/dist/css/fonts/iconcool.woff +0 -0
  68. package/dist/css/iconcool.js +1 -1
  69. package/dist/css/style.css +34 -4
  70. package/dist/event/index.js +2 -1
  71. package/dist/hooks/use-chat.d.ts +8 -8
  72. package/dist/hooks/use-chat.js +88 -51
  73. package/dist/hooks/use-click-proxy.js +1 -1
  74. package/dist/hooks/use-http.d.ts +1 -0
  75. package/dist/hooks/use-http.js +4 -0
  76. package/dist/hooks/use-mouse-drag.d.ts +13 -0
  77. package/dist/hooks/use-mouse-drag.js +59 -0
  78. package/dist/hooks/use-reference-doc.js +4 -4
  79. package/dist/http/fetch/error-interceptor.js +23 -2
  80. package/dist/http/fetch/index.js +5 -6
  81. package/dist/http/helper/agent.d.ts +7 -0
  82. package/dist/http/helper/agent.js +8 -0
  83. package/dist/http/helper/session.js +1 -1
  84. package/dist/types/agent.d.ts +8 -0
  85. package/dist/types/enum.d.ts +6 -1
  86. package/dist/types/enum.js +7 -1
  87. package/dist/types/model.d.ts +14 -0
  88. package/dist/types/session.d.ts +4 -2
  89. package/package.json +25 -5
@@ -0,0 +1,99 @@
1
+
2
+ .ai-message-home[data-v-oxy4e30u] {
3
+ justify-content: center;
4
+ align-items: flex-start;
5
+ width: 100%;
6
+ }
7
+ .ai-content[data-v-oxy4e30u] {
8
+ flex: 1;
9
+ max-width: calc(100% - 104px);
10
+ background: #FFFFFF;
11
+ line-height: 22px;
12
+ color: #313238;
13
+ font-size: 14px;
14
+ box-shadow: 0 2px 6px 0 #0000000f;
15
+ border-radius: 8px;
16
+ position: relative;
17
+ padding-top: 12px;
18
+ margin-right: 52px;
19
+ }
20
+ .ai-content .ai-ui-sdk-warning-circle-fill[data-v-oxy4e30u] {
21
+ color: #EA3636;
22
+ font-size: 18px;
23
+ margin-right: 2px;
24
+ }
25
+ .ai-content .ai-ui-sdk-quanquan[data-v-oxy4e30u] {
26
+ display: inline-block;
27
+ color: #3A84FF;
28
+ animation: rotate-oxy4e30u 800ms linear infinite;
29
+ position: absolute;
30
+ left: 7px;
31
+ top: 23px;
32
+ z-index: 1501;
33
+ }
34
+ .ai-content .message-check[data-v-oxy4e30u] {
35
+ position: absolute;
36
+ top: 0;
37
+ left: -80px;
38
+ }
39
+ .ai-content[data-v-oxy4e30u]::before {
40
+ position: absolute;
41
+ content: '';
42
+ width: 15px;
43
+ height: 15px;
44
+ top: 15px;
45
+ left: -5px;
46
+ rotate: 45deg;
47
+ background: #FFFFFF;
48
+ }
49
+ .ai-content.fail[data-v-oxy4e30u] {
50
+ padding: 12px;
51
+ word-break: break-all;
52
+ }
53
+ .ai-content.loading[data-v-oxy4e30u] {
54
+ padding: 12px 0;
55
+ word-break: break-all;
56
+ }
57
+ .skeleton-message[data-v-oxy4e30u] {
58
+ margin-right: 52px;
59
+ }
60
+ .message-photo[data-v-oxy4e30u] {
61
+ width: 52px;
62
+ text-align: right;
63
+ user-select: none;
64
+ }
65
+ .message-photo img[data-v-oxy4e30u] {
66
+ margin-right: 16px;
67
+ margin-top: 5px;
68
+ width: 36px;
69
+ height: 36px;
70
+ }
71
+ .message-tools[data-v-oxy4e30u] {
72
+ margin: 12px 12px 12px;
73
+ padding-top: 10px;
74
+ justify-content: space-between;
75
+ border-top: 1px solid #EAEBF0;
76
+ }
77
+ .message-tools .rate-tip[data-v-oxy4e30u] {
78
+ font-size: 12px;
79
+ color: #979BA5;
80
+ margin-left: 7px;
81
+ }
82
+ .message-tools .tool-icons .ai-ui-sdk-icon[data-v-oxy4e30u] {
83
+ cursor: pointer;
84
+ color: #979BA5;
85
+ }
86
+ .message-tools .tool-icons .ai-ui-sdk-icon[data-v-oxy4e30u]:hover {
87
+ color: #3A84FF;
88
+ }
89
+ @keyframes rotate-oxy4e30u {
90
+ 0% {
91
+ transform: rotate(0);
92
+ }
93
+ 50% {
94
+ transform: rotate(180deg);
95
+ }
96
+ 100% {
97
+ transform: rotate(360deg);
98
+ }
99
+ }
@@ -0,0 +1,15 @@
1
+ import { ISessionContent } from '@/types/session';
2
+ interface IProps {
3
+ sessionContent: ISessionContent;
4
+ isOperateHistory: boolean;
5
+ selected: boolean;
6
+ visible: boolean;
7
+ }
8
+ declare const _default: import("vue").DefineComponent<IProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ select: (selected: boolean) => any;
10
+ "modify-session-content": (sessionContent: ISessionContent) => any;
11
+ }, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{
12
+ onSelect?: ((selected: boolean) => any) | undefined;
13
+ "onModify-session-content"?: ((sessionContent: ISessionContent) => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import script from './openai-message.script.vue.js';
2
+ script.__scopeId = "data-v-oxy4e30u";
3
+ script.__file = "./src/component/render-message/openai-message.vue";
4
+ import './openai-message.vue.css';
5
+ export default script;
@@ -0,0 +1,7 @@
1
+ import { openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
2
+ const _hoisted_1 = {
3
+ class: "skeleton-message"
4
+ };
5
+ export function render(_ctx, _cache) {
6
+ return _openBlock(), _createElementBlock("section", _hoisted_1);
7
+ }
@@ -0,0 +1,7 @@
1
+
2
+ .skeleton-message[data-v-ime64dpr] {
3
+ height: 50px;
4
+ flex: 1;
5
+ background-color: #EBECF3;
6
+ border-radius: 8px;
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { render } from './skeleton-message.script.vue.js';
2
+ const script = { render };
3
+ script.__scopeId = "data-v-ime64dpr";
4
+ script.__file = "./src/component/render-message/skeleton-message.vue";
5
+ import './skeleton-message.vue.css';
6
+ export default script;
@@ -0,0 +1,17 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
3
+ const _hoisted_1 = {
4
+ class: "system-message"
5
+ };
6
+ export default /*@__PURE__*/ _defineComponent({
7
+ props: {
8
+ sessionContent: {}
9
+ },
10
+ setup (__props) {
11
+ return (_ctx, _cache)=>{
12
+ return _openBlock(), _createElementBlock("span", _hoisted_1, [
13
+ _createElementVNode("span", null, _toDisplayString(_ctx.sessionContent.content), 1 /* TEXT */ )
14
+ ]);
15
+ };
16
+ }
17
+ });
@@ -0,0 +1,18 @@
1
+
2
+ .system-message[data-v-nqo7fu84] {
3
+ position: relative;
4
+ width: calc(100% - 204px) !important;
5
+ max-width: 800px !important;
6
+ height: 0px;
7
+ border-bottom: 1px dashed #DCDEE5;
8
+ margin: 24px 0 40px !important;
9
+ }
10
+ .system-message span[data-v-nqo7fu84] {
11
+ position: absolute;
12
+ left: 50%;
13
+ top: 50%;
14
+ transform: translate(-50%, -50%);
15
+ color: #63656E;
16
+ font-size: 12px;
17
+ background-color: #f5f7fa;
18
+ }
@@ -0,0 +1,6 @@
1
+ import { ISessionContent } from '@/types/session';
2
+ interface IProps {
3
+ sessionContent: ISessionContent;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<IProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import script from './system-message.script.vue.js';
2
+ script.__scopeId = "data-v-nqo7fu84";
3
+ script.__file = "./src/component/render-message/system-message.vue";
4
+ import './system-message.vue.css';
5
+ export default script;
@@ -0,0 +1,41 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from "vue";
3
+ const _hoisted_1 = {
4
+ key: 0,
5
+ class: "time-message"
6
+ };
7
+ import dayjs from 'dayjs';
8
+ import { computed } from 'vue';
9
+ export default /*@__PURE__*/ _defineComponent({
10
+ props: {
11
+ sessionContent: {}
12
+ },
13
+ setup (__props) {
14
+ const props = __props;
15
+ const timeMessage = computed(()=>{
16
+ const now = dayjs();
17
+ const oneDayAgo = now.subtract(1, 'day');
18
+ const chatTime = dayjs(props.sessionContent.createdAt);
19
+ const chatDay = chatTime.format('YYYY-MM-DD');
20
+ const chatHour = chatTime.format('HH');
21
+ const chatDate = chatTime.format('YYYY-MM-DD HH:mm:ss');
22
+ const chatTimestamp = chatTime.format('HH:mm:ss');
23
+ const timeKey = props.sessionContent.id;
24
+ if (!timeKey) {
25
+ return '';
26
+ }
27
+ if (chatTime.isBefore(oneDayAgo, 'day') && (!window.timeMap[chatDay] || window.timeMap[chatDay] === timeKey)) {
28
+ window.timeMap[chatDay] = timeKey;
29
+ return chatDate;
30
+ }
31
+ if (chatTime.isAfter(oneDayAgo, 'day') && (!window.timeMap[chatHour] || window.timeMap[chatHour] === timeKey)) {
32
+ window.timeMap[chatHour] = timeKey;
33
+ return chatTimestamp;
34
+ }
35
+ return '';
36
+ });
37
+ return (_ctx, _cache)=>{
38
+ return timeMessage.value ? (_openBlock(), _createElementBlock("span", _hoisted_1, _toDisplayString(timeMessage.value), 1 /* TEXT */ )) : _createCommentVNode("v-if", true);
39
+ };
40
+ }
41
+ });
@@ -0,0 +1,14 @@
1
+
2
+ .time-message[data-v-oadklnih] {
3
+ position: relative;
4
+ padding: 0 8px !important;
5
+ height: 22px;
6
+ line-height: 22px;
7
+ margin: 16px 0 16px !important;
8
+ background: #F0F1F5;
9
+ text-align: center;
10
+ border-radius: 2px;
11
+ font-size: 12px;
12
+ color: #63656E;
13
+ width: auto !important;
14
+ }
@@ -0,0 +1,6 @@
1
+ import { ISessionContent } from '@/types/session';
2
+ interface IProps {
3
+ sessionContent: ISessionContent;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<IProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import script from './time-message.script.vue.js';
2
+ script.__scopeId = "data-v-oadklnih";
3
+ script.__file = "./src/component/render-message/time-message.vue";
4
+ import './time-message.vue.css';
5
+ export default script;
@@ -0,0 +1,78 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withModifiers as _withModifiers, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from "vue";
3
+ import _imports_0 from '../../assets/images/ai.png';
4
+ const _hoisted_1 = {
5
+ class: "ai-message-home g-flex-row"
6
+ };
7
+ import SkeletonMessage from './skeleton-message.vue.js';
8
+ export default /*@__PURE__*/ _defineComponent({
9
+ props: {
10
+ sessionContent: {},
11
+ isOperateHistory: {
12
+ type: Boolean
13
+ },
14
+ selected: {
15
+ type: Boolean
16
+ },
17
+ visible: {
18
+ type: Boolean
19
+ }
20
+ },
21
+ emits: [
22
+ "select",
23
+ "clear-session"
24
+ ],
25
+ setup (__props, { emit: __emit }) {
26
+ const props = __props;
27
+ const emits = __emit;
28
+ const handelCheck = (selected)=>{
29
+ emits('select', selected);
30
+ };
31
+ const handleClear = ()=>{
32
+ emits('clear-session');
33
+ };
34
+ return (_ctx, _cache)=>{
35
+ const _component_bk_checkbox = _resolveComponent("bk-checkbox");
36
+ return _openBlock(), _createElementBlock("section", _hoisted_1, [
37
+ _cache[5] || (_cache[5] = _createElementVNode("span", {
38
+ class: "message-photo"
39
+ }, [
40
+ _createElementVNode("img", {
41
+ src: _imports_0
42
+ })
43
+ ], -1 /* HOISTED */ )),
44
+ _ctx.visible ? (_openBlock(), _createElementBlock("p", {
45
+ key: 0,
46
+ class: _normalizeClass([
47
+ 'ai-content',
48
+ _ctx.sessionContent.status
49
+ ]),
50
+ onClick: _cache[1] || (_cache[1] = ($event)=>handelCheck(!_ctx.selected))
51
+ }, [
52
+ _cache[2] || (_cache[2] = _createElementVNode("i", {
53
+ class: "ai-ui-sdk-icon ai-ui-sdk-warning-circle-fill"
54
+ }, null, -1 /* HOISTED */ )),
55
+ _ctx.isOperateHistory ? (_openBlock(), _createBlock(_component_bk_checkbox, {
56
+ key: 0,
57
+ class: "message-check",
58
+ "model-value": _ctx.selected,
59
+ onChange: handelCheck,
60
+ onClick: _cache[0] || (_cache[0] = _withModifiers(()=>{}, [
61
+ "stop"
62
+ ]))
63
+ }, null, 8 /* PROPS */ , [
64
+ "model-value"
65
+ ])) : _createCommentVNode("v-if", true),
66
+ _cache[3] || (_cache[3] = _createTextVNode(" 抱歉,您的剩余 Token 不足,无法返回回答内容,请先 ")),
67
+ _createElementVNode("span", {
68
+ class: "clear-message",
69
+ onClick: handleClear
70
+ }, "清空当前会话"),
71
+ _cache[4] || (_cache[4] = _createTextVNode(" (上下文仍会作为历史记录保留) "))
72
+ ], 2 /* CLASS */ )) : (_openBlock(), _createBlock(SkeletonMessage, {
73
+ key: 1
74
+ }))
75
+ ]);
76
+ };
77
+ }
78
+ });
@@ -0,0 +1,56 @@
1
+
2
+ .ai-message-home[data-v-303vzop5] {
3
+ justify-content: center;
4
+ align-items: flex-start;
5
+ width: 100%;
6
+ }
7
+ .ai-content[data-v-303vzop5] {
8
+ flex: 1;
9
+ background: #FFFFFF;
10
+ line-height: 22px;
11
+ color: #313238;
12
+ font-size: 14px;
13
+ box-shadow: 0 2px 6px 0 #0000000f;
14
+ border-radius: 8px;
15
+ position: relative;
16
+ padding-top: 12px;
17
+ margin-right: 52px;
18
+ }
19
+ .ai-content .ai-ui-sdk-warning-circle-fill[data-v-303vzop5] {
20
+ color: #EA3636;
21
+ font-size: 18px;
22
+ margin-right: 2px;
23
+ }
24
+ .ai-content .message-check[data-v-303vzop5] {
25
+ position: absolute;
26
+ top: 0;
27
+ left: -80px;
28
+ }
29
+ .ai-content[data-v-303vzop5]::before {
30
+ position: absolute;
31
+ content: '';
32
+ width: 15px;
33
+ height: 15px;
34
+ top: 15px;
35
+ left: -5px;
36
+ rotate: 45deg;
37
+ background: #FFFFFF;
38
+ }
39
+ .ai-content.fail[data-v-303vzop5] {
40
+ padding: 12px;
41
+ }
42
+ .message-photo[data-v-303vzop5] {
43
+ width: 52px;
44
+ text-align: right;
45
+ user-select: none;
46
+ }
47
+ .message-photo img[data-v-303vzop5] {
48
+ margin-right: 16px;
49
+ margin-top: 5px;
50
+ width: 36px;
51
+ height: 36px;
52
+ }
53
+ .clear-message[data-v-303vzop5] {
54
+ color: #3a84ff;
55
+ cursor: pointer;
56
+ }
@@ -0,0 +1,15 @@
1
+ import { ISessionContent } from '@/types/session';
2
+ interface IProps {
3
+ sessionContent: ISessionContent;
4
+ isOperateHistory: boolean;
5
+ selected: boolean;
6
+ visible: boolean;
7
+ }
8
+ declare const _default: import("vue").DefineComponent<IProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ select: (selected: Boolean) => any;
10
+ "clear-session": () => any;
11
+ }, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{
12
+ onSelect?: ((selected: Boolean) => any) | undefined;
13
+ "onClear-session"?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import script from './token-expired-message.script.vue.js';
2
+ script.__scopeId = "data-v-303vzop5";
3
+ script.__file = "./src/component/render-message/token-expired-message.vue";
4
+ import './token-expired-message.vue.css';
5
+ export default script;