@lobehub/ui 1.26.1 → 1.26.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/es/ActionIcon/index.d.ts +1 -1
- package/es/ActionIcon/index.js +30 -18
- package/es/Avatar/index.js +11 -11
- package/es/Chat/store/initialState.d.ts +3 -3
- package/es/Chat/store/initialState.js +4 -4
- package/es/Chat/store/messageReducer.js +71 -49
- package/es/Chat/store/selectors.d.ts +3 -3
- package/es/Chat/store/selectors.js +3 -3
- package/es/Chat/store/store.d.ts +1 -1
- package/es/Chat/store/store.js +110 -110
- package/es/Chat/types.d.ts +1 -1
- package/es/Chat/utils/fetch.d.ts +1 -1
- package/es/Chat/utils/fetch.js +4 -4
- package/es/ChatInputArea/index.js +2 -1
- package/es/ChatInputArea/style.d.ts +3 -3
- package/es/ChatInputArea/style.js +5 -5
- package/es/ChatItem/index.js +9 -9
- package/es/ChatItem/style.d.ts +3 -3
- package/es/ChatItem/style.js +7 -7
- package/es/ChatList/ActionsBar.d.ts +1 -1
- package/es/ChatList/ActionsBar.js +12 -11
- package/es/ChatList/index.d.ts +1 -1
- package/es/ChatList/index.js +1 -1
- package/es/ColorScales/ScaleRow.js +20 -14
- package/es/ColorScales/index.js +6 -4
- package/es/ColorScales/style.d.ts +2 -2
- package/es/ColorScales/style.js +7 -7
- package/es/ContextMenu/MenuItem/index.js +14 -14
- package/es/ContextMenu/MenuItem/style.d.ts +2 -2
- package/es/ContextMenu/MenuItem/style.js +5 -5
- package/es/ContextMenu/index.js +42 -42
- package/es/ContextMenu/style.d.ts +1 -1
- package/es/ContextMenu/style.js +2 -2
- package/es/Conversation/App.js +2 -2
- package/es/Conversation/ChatList/MessageItem/Content.js +15 -15
- package/es/Conversation/ChatList/MessageItem/Toolbar.js +3 -3
- package/es/Conversation/ChatList/MessageItem/index.js +14 -14
- package/es/Conversation/ChatList/index.js +5 -5
- package/es/Conversation/InputArea/ActionBar.d.ts +2 -2
- package/es/Conversation/InputArea/ActionBar.js +2 -2
- package/es/Conversation/InputArea/index.d.ts +2 -2
- package/es/Conversation/InputArea/index.js +10 -12
- package/es/Conversation/StoreUpdater.js +1 -1
- package/es/Conversation/index.js +2 -2
- package/es/CopyButton/index.d.ts +4 -2
- package/es/CopyButton/index.js +4 -3
- package/es/DraggablePanel/index.d.ts +2 -2
- package/es/DraggablePanel/index.js +50 -42
- package/es/DraggablePanel/style.d.ts +9 -9
- package/es/DraggablePanel/style.js +17 -17
- package/es/DraggablePanel/utils.js +12 -4
- package/es/EditableMessage/index.js +4 -4
- package/es/EditableMessageList/index.js +20 -19
- package/es/EditableText/index.js +1 -1
- package/es/Features/Item.js +5 -5
- package/es/Features/Item.style.d.ts +2 -2
- package/es/Features/Item.style.js +4 -4
- package/es/Features/index.js +3 -3
- package/es/Features/style.js +2 -2
- package/es/FontLoader/index.d.ts +6 -0
- package/es/FontLoader/index.js +16 -0
- package/es/Footer/index.js +2 -2
- package/es/GradientButton/style.d.ts +1 -1
- package/es/GradientButton/style.js +2 -2
- package/es/Header/index.js +2 -2
- package/es/Header/style.d.ts +1 -1
- package/es/Header/style.js +2 -2
- package/es/Hero/style.d.ts +3 -3
- package/es/Hero/style.js +14 -13
- package/es/Highlighter/SyntaxHighlighter/Prism.js +7 -7
- package/es/Highlighter/SyntaxHighlighter/index.js +1 -1
- package/es/Highlighter/SyntaxHighlighter/style.d.ts +2 -2
- package/es/Highlighter/SyntaxHighlighter/style.js +2 -2
- package/es/Highlighter/index.d.ts +1 -2
- package/es/Highlighter/index.js +4 -3
- package/es/Highlighter/style.d.ts +1 -1
- package/es/Highlighter/style.js +2 -2
- package/es/Highlighter/theme.js +22 -22
- package/es/Icon/index.js +24 -16
- package/es/Input/index.js +4 -4
- package/es/Layout/index.js +1 -1
- package/es/Layout/style.d.ts +5 -5
- package/es/Layout/style.js +7 -7
- package/es/List/ListItem/index.d.ts +1 -1
- package/es/List/ListItem/index.js +21 -42
- package/es/List/ListItem/style.d.ts +9 -0
- package/es/List/ListItem/style.js +21 -0
- package/es/List/index.d.ts +1 -1
- package/es/Logo/index.d.ts +2 -2
- package/es/Logo/index.js +48 -38
- package/es/Logo/style.d.ts +1 -1
- package/es/Logo/style.js +2 -2
- package/es/Markdown/CodeBlock.d.ts +1 -1
- package/es/Markdown/CodeBlock.js +7 -7
- package/es/Markdown/index.js +3 -3
- package/es/Markdown/style.d.ts +1 -1
- package/es/Markdown/style.js +2 -2
- package/es/MessageInput/index.d.ts +1 -1
- package/es/MessageInput/index.js +5 -5
- package/es/MessageModal/index.js +8 -6
- package/es/MessageModal/style.d.ts +1 -1
- package/es/MessageModal/style.js +2 -2
- package/es/SearchBar/index.d.ts +1 -1
- package/es/SearchBar/index.js +13 -11
- package/es/SearchBar/style.d.ts +2 -2
- package/es/SearchBar/style.js +3 -3
- package/es/Snippet/index.js +5 -3
- package/es/Spotlight/index.js +13 -13
- package/es/Spotlight/style.js +1 -1
- package/es/StroyBook/index.d.ts +1 -2
- package/es/StroyBook/index.js +3 -3
- package/es/StroyBook/style.d.ts +1 -1
- package/es/StroyBook/style.js +2 -2
- package/es/Swatches/index.d.ts +1 -1
- package/es/Swatches/index.js +9 -9
- package/es/ThemeProvider/index.d.ts +2 -2
- package/es/ThemeProvider/index.js +3 -4
- package/es/ThemeSwitch/index.js +8 -8
- package/es/Toc/TocMobile.d.ts +4 -4
- package/es/Toc/TocMobile.js +15 -15
- package/es/Toc/style.d.ts +2 -2
- package/es/Toc/style.js +3 -3
- package/es/TokenTag/style.js +12 -7
- package/es/components/ControlInput.d.ts +1 -1
- package/es/components/ControlInput.js +7 -6
- package/es/hooks/useHighlight.js +14 -14
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/styles/algorithms/generateColorPalette.js +10 -10
- package/es/styles/algorithms/generateCustomStylish.js +5 -5
- package/es/styles/algorithms/generateCustomToken.js +42 -17
- package/es/styles/algorithms/generateTheme.js +4 -4
- package/es/styles/colors.js +65 -65
- package/es/styles/theme/base.js +2 -2
- package/es/styles/theme/dark.js +16 -16
- package/es/styles/theme/light.js +16 -16
- package/es/types/llm.d.ts +1 -1
- package/package.json +2 -2
package/es/ActionIcon/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { LucideIcon } from 'lucide-react';
|
|
3
|
-
import { TooltipProps } from "../
|
|
3
|
+
import { type TooltipProps } from "../Tooltip";
|
|
4
4
|
import { DivProps } from "../types";
|
|
5
5
|
export declare type ActionIconSize = 'large' | 'normal' | 'small' | 'site' | {
|
|
6
6
|
blockSize?: number;
|
package/es/ActionIcon/index.js
CHANGED
|
@@ -5,7 +5,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
import { Loader2 } from 'lucide-react';
|
|
7
7
|
import { memo, useMemo } from 'react';
|
|
8
|
-
import
|
|
8
|
+
import Icon from "../Icon";
|
|
9
|
+
import Spotlight from "../Spotlight";
|
|
10
|
+
import Tooltip from "../Tooltip";
|
|
9
11
|
import { useStyles } from "./style";
|
|
10
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
13
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -15,25 +17,35 @@ var calcSize = function calcSize(size) {
|
|
|
15
17
|
var borderRadius;
|
|
16
18
|
switch (size) {
|
|
17
19
|
case 'large':
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
{
|
|
21
|
+
blockSize = 44;
|
|
22
|
+
borderRadius = 8;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
21
25
|
case 'normal':
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
{
|
|
27
|
+
blockSize = 36;
|
|
28
|
+
borderRadius = 5;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
25
31
|
case 'small':
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
{
|
|
33
|
+
blockSize = 24;
|
|
34
|
+
borderRadius = 5;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
29
37
|
case 'site':
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
{
|
|
39
|
+
blockSize = 34;
|
|
40
|
+
borderRadius = 5;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
33
43
|
default:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
{
|
|
45
|
+
blockSize = (size === null || size === void 0 ? void 0 : size.blockSize) || 36;
|
|
46
|
+
borderRadius = (size === null || size === void 0 ? void 0 : size.borderRadius) || 5;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
37
49
|
}
|
|
38
50
|
return {
|
|
39
51
|
blockSize: blockSize,
|
|
@@ -83,9 +95,9 @@ var ActionIcon = /*#__PURE__*/memo(function (_ref) {
|
|
|
83
95
|
className: cx(styles.block, className),
|
|
84
96
|
onClick: loading ? undefined : onClick,
|
|
85
97
|
style: _objectSpread({
|
|
86
|
-
|
|
98
|
+
borderRadius: borderRadius,
|
|
87
99
|
height: blockSize,
|
|
88
|
-
|
|
100
|
+
width: blockSize
|
|
89
101
|
}, style)
|
|
90
102
|
}, props), {}, {
|
|
91
103
|
children: [spotlight && /*#__PURE__*/_jsx(Spotlight, {}), loading ? spin : content]
|
package/es/Avatar/index.js
CHANGED
|
@@ -17,29 +17,29 @@ var Avatar = /*#__PURE__*/memo(function (_ref) {
|
|
|
17
17
|
shape = _ref$shape === void 0 ? 'circle' : _ref$shape,
|
|
18
18
|
background = _ref.background,
|
|
19
19
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
20
|
-
var isImage = Boolean(avatar && ['/', 'http', 'data:'].some(function (
|
|
21
|
-
return avatar.startsWith(
|
|
20
|
+
var isImage = Boolean(avatar && ['/', 'http', 'data:'].some(function (index) {
|
|
21
|
+
return avatar.startsWith(index);
|
|
22
22
|
}));
|
|
23
23
|
var isEmoji = Boolean(avatar && !isImage && /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g.test(avatar));
|
|
24
24
|
var _useStyles = useStyles({
|
|
25
25
|
background: background,
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
isEmoji: isEmoji,
|
|
27
|
+
size: size
|
|
28
28
|
}),
|
|
29
29
|
styles = _useStyles.styles,
|
|
30
30
|
cx = _useStyles.cx;
|
|
31
31
|
var text = isImage ? title : avatar;
|
|
32
|
-
return
|
|
32
|
+
return isImage ? /*#__PURE__*/_jsx(AntAvatar, _objectSpread({
|
|
33
|
+
className: cx(styles.avatar, className),
|
|
34
|
+
shape: shape,
|
|
35
|
+
size: size,
|
|
36
|
+
src: avatar
|
|
37
|
+
}, props)) : /*#__PURE__*/_jsx(AntAvatar, _objectSpread(_objectSpread({
|
|
33
38
|
className: cx(styles.avatar, className),
|
|
34
39
|
shape: shape,
|
|
35
40
|
size: size
|
|
36
41
|
}, props), {}, {
|
|
37
42
|
children: isEmoji ? text : text === null || text === void 0 ? void 0 : text.toUpperCase().slice(0, 2)
|
|
38
|
-
}))
|
|
39
|
-
className: cx(styles.avatar, className),
|
|
40
|
-
shape: shape,
|
|
41
|
-
size: size,
|
|
42
|
-
src: avatar
|
|
43
|
-
}, props));
|
|
43
|
+
}));
|
|
44
44
|
});
|
|
45
45
|
export default Avatar;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChatMessage, InternalChatContext,
|
|
1
|
+
import { ChatMessage, InternalChatContext, OpenAIRequestParameters } from '../types';
|
|
2
2
|
export interface ChatState extends InternalChatContext {
|
|
3
3
|
/**
|
|
4
4
|
* @title 改变系统角色状态
|
|
@@ -8,7 +8,7 @@ export interface ChatState extends InternalChatContext {
|
|
|
8
8
|
/**
|
|
9
9
|
* 编辑中的消息 id
|
|
10
10
|
*/
|
|
11
|
-
editingMessageId?: number |
|
|
11
|
+
editingMessageId?: number | undefined;
|
|
12
12
|
/**
|
|
13
13
|
* @title 加载状态
|
|
14
14
|
* @type {boolean}
|
|
@@ -23,6 +23,6 @@ export interface ChatState extends InternalChatContext {
|
|
|
23
23
|
onMessagesChange?: (messages: ChatMessage[]) => void;
|
|
24
24
|
onResponseFinished?: (session: any) => void;
|
|
25
25
|
onResponseStart?: (messages: ChatMessage[]) => Promise<void>;
|
|
26
|
-
request?: (
|
|
26
|
+
request?: (parameters: OpenAIRequestParameters) => Promise<Response>;
|
|
27
27
|
}
|
|
28
28
|
export declare const initialState: ChatState;
|
|
@@ -3,65 +3,87 @@ import { produce } from 'immer';
|
|
|
3
3
|
export var messagesReducer = function messagesReducer(state, payload) {
|
|
4
4
|
switch (payload.type) {
|
|
5
5
|
case 'addMessage':
|
|
6
|
-
|
|
6
|
+
{
|
|
7
|
+
return [].concat(_toConsumableArray(state), [payload.message]);
|
|
8
|
+
}
|
|
7
9
|
case 'insertMessage':
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
{
|
|
11
|
+
return produce(state, function (draftState) {
|
|
12
|
+
draftState.splice(payload.index, 0, payload.message);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
11
15
|
case 'deleteMessage':
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
16
|
+
{
|
|
17
|
+
return state.filter(function (_, index) {
|
|
18
|
+
return index !== payload.index;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
15
21
|
case 'resetMessages':
|
|
16
|
-
|
|
22
|
+
{
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
17
25
|
case 'updateMessage':
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
{
|
|
27
|
+
return produce(state, function (draftState) {
|
|
28
|
+
var index = payload.index,
|
|
29
|
+
message = payload.message;
|
|
30
|
+
draftState[index].content = message;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
23
33
|
case 'updateMessageRole':
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
{
|
|
35
|
+
return produce(state, function (draftState) {
|
|
36
|
+
var index = payload.index,
|
|
37
|
+
role = payload.role;
|
|
38
|
+
draftState[index].role = role;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
29
41
|
case 'addUserMessage':
|
|
30
|
-
|
|
31
|
-
draftState
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
{
|
|
43
|
+
return produce(state, function (draftState) {
|
|
44
|
+
draftState.push({
|
|
45
|
+
content: payload.message,
|
|
46
|
+
role: 'user'
|
|
47
|
+
});
|
|
34
48
|
});
|
|
35
|
-
}
|
|
49
|
+
}
|
|
36
50
|
case 'updateLatestBotMessage':
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
{
|
|
52
|
+
return produce(state, function () {
|
|
53
|
+
var responseStream = payload.responseStream;
|
|
54
|
+
var newMessage = {
|
|
55
|
+
content: responseStream.join(''),
|
|
56
|
+
role: 'assistant'
|
|
57
|
+
};
|
|
58
|
+
return [].concat(_toConsumableArray(state.slice(0, -1)), [newMessage]);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
45
61
|
case 'setErrorMessage':
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
62
|
+
{
|
|
63
|
+
return produce(state, function (draftState) {
|
|
64
|
+
var index = payload.index,
|
|
65
|
+
error = payload.error;
|
|
66
|
+
draftState[index].error = error;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
51
69
|
case 'updateMessageChoice':
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
botMessage.choices
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
{
|
|
71
|
+
return produce(state, function (draftState) {
|
|
72
|
+
var index = payload.index,
|
|
73
|
+
message = payload.message;
|
|
74
|
+
var botMessage = draftState[index];
|
|
75
|
+
var previousMessage = botMessage.content;
|
|
76
|
+
botMessage.content = message;
|
|
77
|
+
if (botMessage.choices) {
|
|
78
|
+
botMessage.choices.push(previousMessage);
|
|
79
|
+
} else {
|
|
80
|
+
botMessage.choices = [previousMessage];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
64
84
|
default:
|
|
65
|
-
|
|
85
|
+
{
|
|
86
|
+
throw new Error('暂未实现的 type,请检查 reducer');
|
|
87
|
+
}
|
|
66
88
|
}
|
|
67
89
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ChatStore } from './store';
|
|
2
2
|
export declare const chatSelectors: {
|
|
3
|
-
totalTokenCount: (s: ChatStore) => number;
|
|
4
3
|
agentTokenCount: (s: ChatStore) => number;
|
|
4
|
+
disableInput: (s: ChatStore) => boolean;
|
|
5
5
|
messagesTokenCount: (s: ChatStore) => number;
|
|
6
|
-
totalTokens: (s: ChatStore) => number[];
|
|
7
6
|
messagesTokens: (s: ChatStore) => number[];
|
|
8
|
-
|
|
7
|
+
totalTokenCount: (s: ChatStore) => number;
|
|
8
|
+
totalTokens: (s: ChatStore) => number[];
|
|
9
9
|
};
|
|
@@ -35,10 +35,10 @@ var messagesTokenCount = function messagesTokenCount(s) {
|
|
|
35
35
|
return messagesTokens(s).length;
|
|
36
36
|
};
|
|
37
37
|
export var chatSelectors = {
|
|
38
|
-
totalTokenCount: totalTokenCount,
|
|
39
38
|
agentTokenCount: agentTokenCount,
|
|
39
|
+
disableInput: disableInputSel,
|
|
40
40
|
messagesTokenCount: messagesTokenCount,
|
|
41
|
-
totalTokens: totalTokens,
|
|
42
41
|
messagesTokens: messagesTokens,
|
|
43
|
-
|
|
42
|
+
totalTokenCount: totalTokenCount,
|
|
43
|
+
totalTokens: totalTokens
|
|
44
44
|
};
|
package/es/Chat/store/store.d.ts
CHANGED
package/es/Chat/store/store.js
CHANGED
|
@@ -20,16 +20,11 @@ export var createStore = function createStore(set, get) {
|
|
|
20
20
|
set({
|
|
21
21
|
messages: messages
|
|
22
22
|
}, false, {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
payload: res,
|
|
24
|
+
type: "dispatchMessage/".concat(type)
|
|
25
25
|
});
|
|
26
26
|
(_get$onMessagesChange = (_get = get()).onMessagesChange) === null || _get$onMessagesChange === void 0 ? void 0 : _get$onMessagesChange.call(_get, messages);
|
|
27
27
|
},
|
|
28
|
-
handleMessageEditing: function handleMessageEditing(index) {
|
|
29
|
-
set({
|
|
30
|
-
editingMessageId: index
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
28
|
generateMessage: function () {
|
|
34
29
|
var _generateMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(message, messages, options) {
|
|
35
30
|
var _get2, onResponseStart, request, onResponseFinished, fetcher;
|
|
@@ -74,167 +69,172 @@ export var createStore = function createStore(set, get) {
|
|
|
74
69
|
}
|
|
75
70
|
return generateMessage;
|
|
76
71
|
}(),
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
case 0:
|
|
83
|
-
_get3 = get(), message = _get3.message, dispatchMessage = _get3.dispatchMessage, generateMessage = _get3.generateMessage, messages = _get3.messages;
|
|
84
|
-
if (message) {
|
|
85
|
-
_context2.next = 3;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
return _context2.abrupt("return");
|
|
89
|
-
case 3:
|
|
90
|
-
set({
|
|
91
|
-
message: ''
|
|
92
|
-
});
|
|
93
|
-
dispatchMessage({
|
|
94
|
-
type: 'addUserMessage',
|
|
95
|
-
message: message
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// 添加一个空的信息用于放置 ai 响应
|
|
99
|
-
dispatchMessage({
|
|
100
|
-
type: 'addMessage',
|
|
101
|
-
message: {
|
|
102
|
-
role: 'assistant',
|
|
103
|
-
content: LOADING_FLAT
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
currentResponse = []; // 生成 messages
|
|
107
|
-
_context2.next = 9;
|
|
108
|
-
return generateMessage(message, messages, {
|
|
109
|
-
onMessageHandle: function onMessageHandle(text) {
|
|
110
|
-
currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
|
|
111
|
-
dispatchMessage({
|
|
112
|
-
type: 'updateLatestBotMessage',
|
|
113
|
-
responseStream: currentResponse
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// 滚动到最后一条消息
|
|
117
|
-
var item = document.getElementById('for-loading');
|
|
118
|
-
if (!item) return;
|
|
119
|
-
item.scrollIntoView({
|
|
120
|
-
behavior: 'smooth'
|
|
121
|
-
});
|
|
122
|
-
},
|
|
123
|
-
onErrorHandle: function onErrorHandle(error) {
|
|
124
|
-
dispatchMessage({
|
|
125
|
-
type: 'setErrorMessage',
|
|
126
|
-
error: error,
|
|
127
|
-
index: get().messages.length - 1
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
case 9:
|
|
132
|
-
case "end":
|
|
133
|
-
return _context2.stop();
|
|
134
|
-
}
|
|
135
|
-
}, _callee2);
|
|
136
|
-
}));
|
|
137
|
-
function sendMessage() {
|
|
138
|
-
return _sendMessage.apply(this, arguments);
|
|
139
|
-
}
|
|
140
|
-
return sendMessage;
|
|
141
|
-
}(),
|
|
72
|
+
handleMessageEditing: function handleMessageEditing(index) {
|
|
73
|
+
set({
|
|
74
|
+
editingMessageId: index
|
|
75
|
+
});
|
|
76
|
+
},
|
|
142
77
|
resendMessage: function () {
|
|
143
|
-
var _resendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
78
|
+
var _resendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(index) {
|
|
144
79
|
var _contextMessages$at;
|
|
145
|
-
var
|
|
146
|
-
return _regeneratorRuntime.wrap(function
|
|
147
|
-
while (1) switch (
|
|
80
|
+
var _get3, dispatchMessage, sendMessage, generateMessage, messages, lastMessage, contextMessages, userMessage, targetMessage, botPreviousMessage, currentResponse;
|
|
81
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
82
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
148
83
|
case 0:
|
|
149
|
-
|
|
84
|
+
_get3 = get(), dispatchMessage = _get3.dispatchMessage, sendMessage = _get3.sendMessage, generateMessage = _get3.generateMessage, messages = _get3.messages;
|
|
150
85
|
lastMessage = messages.at(-1); // 用户通过手动删除,造成了他的问题是最后一条消息
|
|
151
86
|
// 这种情况下,相当于用户重新发送消息
|
|
152
87
|
if (!(messages.length === index && (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.role) === 'user')) {
|
|
153
|
-
|
|
88
|
+
_context2.next = 8;
|
|
154
89
|
break;
|
|
155
90
|
}
|
|
156
91
|
dispatchMessage({
|
|
157
|
-
|
|
158
|
-
|
|
92
|
+
index: index - 1,
|
|
93
|
+
type: 'deleteMessage'
|
|
159
94
|
});
|
|
160
95
|
set({
|
|
161
96
|
message: lastMessage.content
|
|
162
97
|
});
|
|
163
|
-
|
|
98
|
+
_context2.next = 7;
|
|
164
99
|
return sendMessage();
|
|
165
100
|
case 7:
|
|
166
|
-
return
|
|
101
|
+
return _context2.abrupt("return");
|
|
167
102
|
case 8:
|
|
168
103
|
// 上下文消息就是当前消息之前的消息
|
|
169
104
|
contextMessages = get().messages.slice(0, index); // 上下文消息中最后一条消息
|
|
170
105
|
userMessage = (_contextMessages$at = contextMessages.at(-1)) === null || _contextMessages$at === void 0 ? void 0 : _contextMessages$at.content;
|
|
171
106
|
if (userMessage) {
|
|
172
|
-
|
|
107
|
+
_context2.next = 12;
|
|
173
108
|
break;
|
|
174
109
|
}
|
|
175
|
-
return
|
|
110
|
+
return _context2.abrupt("return");
|
|
176
111
|
case 12:
|
|
177
|
-
|
|
178
|
-
if (
|
|
112
|
+
targetMessage = messages[index]; // 如果不是 assistant 的消息,那么需要额外插入一条消息
|
|
113
|
+
if (targetMessage.role === 'assistant') {
|
|
114
|
+
botPreviousMessage = targetMessage.content; // 保存之前的消息为历史消息
|
|
179
115
|
dispatchMessage({
|
|
180
|
-
type: 'insertMessage',
|
|
181
116
|
index: index,
|
|
182
|
-
message:
|
|
183
|
-
|
|
184
|
-
content: LOADING_FLAT
|
|
185
|
-
}
|
|
117
|
+
message: botPreviousMessage,
|
|
118
|
+
type: 'updateMessageChoice'
|
|
186
119
|
});
|
|
187
|
-
} else {
|
|
188
|
-
botPrevMsg = targetMsg.content; // 保存之前的消息为历史消息
|
|
189
120
|
dispatchMessage({
|
|
190
|
-
|
|
191
|
-
message:
|
|
192
|
-
|
|
121
|
+
index: index,
|
|
122
|
+
message: LOADING_FLAT,
|
|
123
|
+
type: 'updateMessage'
|
|
193
124
|
});
|
|
125
|
+
} else {
|
|
194
126
|
dispatchMessage({
|
|
195
|
-
|
|
196
|
-
message:
|
|
197
|
-
|
|
127
|
+
index: index,
|
|
128
|
+
message: {
|
|
129
|
+
content: LOADING_FLAT,
|
|
130
|
+
role: 'assistant'
|
|
131
|
+
},
|
|
132
|
+
type: 'insertMessage'
|
|
198
133
|
});
|
|
199
134
|
}
|
|
200
135
|
|
|
201
136
|
// 重置错误信息
|
|
202
137
|
dispatchMessage({
|
|
203
|
-
type: 'setErrorMessage',
|
|
204
138
|
error: undefined,
|
|
205
|
-
index: index
|
|
139
|
+
index: index,
|
|
140
|
+
type: 'setErrorMessage'
|
|
206
141
|
});
|
|
207
142
|
|
|
208
143
|
// 开始更新消息
|
|
209
144
|
currentResponse = [];
|
|
210
|
-
|
|
145
|
+
_context2.next = 18;
|
|
211
146
|
return generateMessage(userMessage, contextMessages, {
|
|
147
|
+
onErrorHandle: function onErrorHandle(error) {
|
|
148
|
+
dispatchMessage({
|
|
149
|
+
error: error,
|
|
150
|
+
index: index,
|
|
151
|
+
type: 'setErrorMessage'
|
|
152
|
+
});
|
|
153
|
+
},
|
|
212
154
|
onMessageHandle: function onMessageHandle(text) {
|
|
213
155
|
currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
|
|
214
156
|
dispatchMessage({
|
|
215
|
-
|
|
157
|
+
index: index,
|
|
216
158
|
message: currentResponse.join(''),
|
|
217
|
-
|
|
159
|
+
type: 'updateMessage'
|
|
218
160
|
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
case 18:
|
|
164
|
+
case "end":
|
|
165
|
+
return _context2.stop();
|
|
166
|
+
}
|
|
167
|
+
}, _callee2);
|
|
168
|
+
}));
|
|
169
|
+
function resendMessage(_x4) {
|
|
170
|
+
return _resendMessage.apply(this, arguments);
|
|
171
|
+
}
|
|
172
|
+
return resendMessage;
|
|
173
|
+
}(),
|
|
174
|
+
sendMessage: function () {
|
|
175
|
+
var _sendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
176
|
+
var _get4, message, dispatchMessage, generateMessage, messages, currentResponse;
|
|
177
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
178
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
179
|
+
case 0:
|
|
180
|
+
_get4 = get(), message = _get4.message, dispatchMessage = _get4.dispatchMessage, generateMessage = _get4.generateMessage, messages = _get4.messages;
|
|
181
|
+
if (message) {
|
|
182
|
+
_context3.next = 3;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
return _context3.abrupt("return");
|
|
186
|
+
case 3:
|
|
187
|
+
set({
|
|
188
|
+
message: ''
|
|
189
|
+
});
|
|
190
|
+
dispatchMessage({
|
|
191
|
+
message: message,
|
|
192
|
+
type: 'addUserMessage'
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// 添加一个空的信息用于放置 ai 响应
|
|
196
|
+
dispatchMessage({
|
|
197
|
+
message: {
|
|
198
|
+
content: LOADING_FLAT,
|
|
199
|
+
role: 'assistant'
|
|
219
200
|
},
|
|
201
|
+
type: 'addMessage'
|
|
202
|
+
});
|
|
203
|
+
currentResponse = []; // 生成 messages
|
|
204
|
+
_context3.next = 9;
|
|
205
|
+
return generateMessage(message, messages, {
|
|
220
206
|
onErrorHandle: function onErrorHandle(error) {
|
|
221
207
|
dispatchMessage({
|
|
222
|
-
type: 'setErrorMessage',
|
|
223
208
|
error: error,
|
|
224
|
-
index:
|
|
209
|
+
index: get().messages.length - 1,
|
|
210
|
+
type: 'setErrorMessage'
|
|
211
|
+
});
|
|
212
|
+
},
|
|
213
|
+
onMessageHandle: function onMessageHandle(text) {
|
|
214
|
+
currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
|
|
215
|
+
dispatchMessage({
|
|
216
|
+
responseStream: currentResponse,
|
|
217
|
+
type: 'updateLatestBotMessage'
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
// 滚动到最后一条消息
|
|
221
|
+
var item = document.querySelector('#for-loading');
|
|
222
|
+
if (!item) return;
|
|
223
|
+
item.scrollIntoView({
|
|
224
|
+
behavior: 'smooth'
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
227
|
});
|
|
228
|
-
case
|
|
228
|
+
case 9:
|
|
229
229
|
case "end":
|
|
230
230
|
return _context3.stop();
|
|
231
231
|
}
|
|
232
232
|
}, _callee3);
|
|
233
233
|
}));
|
|
234
|
-
function
|
|
235
|
-
return
|
|
234
|
+
function sendMessage() {
|
|
235
|
+
return _sendMessage.apply(this, arguments);
|
|
236
236
|
}
|
|
237
|
-
return
|
|
237
|
+
return sendMessage;
|
|
238
238
|
}()
|
|
239
239
|
});
|
|
240
240
|
};
|
package/es/Chat/types.d.ts
CHANGED
package/es/Chat/utils/fetch.d.ts
CHANGED
|
@@ -8,4 +8,4 @@ export interface FetchSSEOptions {
|
|
|
8
8
|
* @param fetchFn
|
|
9
9
|
* @param options
|
|
10
10
|
*/
|
|
11
|
-
export declare const fetchSSE: (
|
|
11
|
+
export declare const fetchSSE: (fetchFunction: () => Promise<Response>, options?: FetchSSEOptions) => Promise<Response | undefined>;
|