@mujian/js-sdk 0.0.6-beta.50 → 0.0.6-beta.52
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/dist/events/index.d.ts +4 -0
- package/dist/index.js +11 -2
- package/dist/modules/ai/chat/message/index.d.ts +4 -0
- package/dist/react/chat/useChat/index.d.ts +5 -1
- package/dist/react.js +53 -9
- package/dist/types/index.d.ts +4 -0
- package/dist/umd/index.js +11 -2
- package/dist/umd/react.js +4189 -3909
- package/package.json +1 -1
package/dist/events/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var events_EVENT = /*#__PURE__*/ function(EVENT) {
|
|
|
9
9
|
EVENT["MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE"] = "mujian:ai:openai:chat:completions:create";
|
|
10
10
|
EVENT["MUJIAN_AI_OPENAI_RESPONSES_CREATE"] = "mujian:ai:openai:responses:create";
|
|
11
11
|
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
|
|
12
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PAGE"] = "mujian:ai:chat:message:getPage";
|
|
12
13
|
EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
|
|
13
14
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
|
|
14
15
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
|
|
@@ -118,6 +119,12 @@ const getPrompt = async function(messageId) {
|
|
|
118
119
|
messageId
|
|
119
120
|
});
|
|
120
121
|
};
|
|
122
|
+
async function getPage(fromCursor, pageSize) {
|
|
123
|
+
return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE, {
|
|
124
|
+
fromCursor,
|
|
125
|
+
pageSize
|
|
126
|
+
});
|
|
127
|
+
}
|
|
121
128
|
const getInfo = async function() {
|
|
122
129
|
return await this.call(events_EVENT.MUJIAN_AI_CHAT_PROJECT_GET_INFO);
|
|
123
130
|
};
|
|
@@ -254,7 +261,8 @@ class MujianSdk {
|
|
|
254
261
|
deleteOne: messageDeleteOne.bind(this),
|
|
255
262
|
editOne: messageEditOne.bind(this),
|
|
256
263
|
swipe: messageSwipe.bind(this),
|
|
257
|
-
getPrompt: getPrompt.bind(this)
|
|
264
|
+
getPrompt: getPrompt.bind(this),
|
|
265
|
+
getPage: getPage.bind(this)
|
|
258
266
|
}
|
|
259
267
|
},
|
|
260
268
|
text: {
|
|
@@ -453,7 +461,8 @@ class src_MujianSdk {
|
|
|
453
461
|
deleteOne: messageDeleteOne.bind(this),
|
|
454
462
|
editOne: messageEditOne.bind(this),
|
|
455
463
|
swipe: messageSwipe.bind(this),
|
|
456
|
-
getPrompt: getPrompt.bind(this)
|
|
464
|
+
getPrompt: getPrompt.bind(this),
|
|
465
|
+
getPage: getPage.bind(this)
|
|
457
466
|
}
|
|
458
467
|
},
|
|
459
468
|
text: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MujianSdk } from '../../../../index.ts';
|
|
2
2
|
import type { Message } from '../../../../react/chat/useChat/message';
|
|
3
|
+
import { Cursor } from '../../../../types';
|
|
3
4
|
/**
|
|
4
5
|
* 获取消息列表
|
|
5
6
|
* @returns 消息当前列表
|
|
@@ -41,3 +42,6 @@ this: MujianSdk, messageId: string, swipeId: number) => Promise<unknown>;
|
|
|
41
42
|
export declare const getPrompt: (
|
|
42
43
|
/** @hidden */
|
|
43
44
|
this: MujianSdk, messageId: string) => Promise<unknown>;
|
|
45
|
+
export declare function getPage(
|
|
46
|
+
/** @hidden */
|
|
47
|
+
this: MujianSdk, fromCursor: Cursor, pageSize: number): Promise<unknown>;
|
|
@@ -12,6 +12,8 @@ export type UseChatProps = {
|
|
|
12
12
|
body?: object;
|
|
13
13
|
onError?: (e: unknown) => void;
|
|
14
14
|
onFinish?: (message: Message) => void;
|
|
15
|
+
/** 消息分页大小,不传时不分页 */
|
|
16
|
+
pageSize?: number;
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Use chat return
|
|
@@ -39,6 +41,8 @@ export type UseChatReturn = {
|
|
|
39
41
|
setSwipe: (messageId: string, swipeId: number) => Promise<void>;
|
|
40
42
|
editMessage: (messageId: string, content: string) => Promise<void>;
|
|
41
43
|
deleteMessage: (messageId: string) => Promise<void>;
|
|
44
|
+
loadMoreMessage: () => Promise<void>;
|
|
45
|
+
messagesStatus: 'all-loaded' | 'loading' | 'has-more' | 'error';
|
|
42
46
|
};
|
|
43
47
|
/**
|
|
44
48
|
* Use chat common
|
|
@@ -52,4 +56,4 @@ export type UseChatCommon = {
|
|
|
52
56
|
* Use chat
|
|
53
57
|
* @returns {UseChatReturn} The chat.
|
|
54
58
|
*/
|
|
55
|
-
export declare const useChat: ({ body, onError, onFinish, }: UseChatProps) => UseChatReturn;
|
|
59
|
+
export declare const useChat: ({ body, onError, onFinish, pageSize, }: UseChatProps) => UseChatReturn;
|
package/dist/react.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useInfiniteScroll, useRequest, useUpdateEffect } from "ahooks";
|
|
2
2
|
import react, { createContext, forwardRef, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import css_tools from "@adobe/css-tools";
|
|
@@ -507,6 +507,7 @@ var events_EVENT = /*#__PURE__*/ function(EVENT) {
|
|
|
507
507
|
EVENT["MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE"] = "mujian:ai:openai:chat:completions:create";
|
|
508
508
|
EVENT["MUJIAN_AI_OPENAI_RESPONSES_CREATE"] = "mujian:ai:openai:responses:create";
|
|
509
509
|
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
|
|
510
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PAGE"] = "mujian:ai:chat:message:getPage";
|
|
510
511
|
EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
|
|
511
512
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
|
|
512
513
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
|
|
@@ -616,6 +617,12 @@ const getPrompt = async function(messageId) {
|
|
|
616
617
|
messageId
|
|
617
618
|
});
|
|
618
619
|
};
|
|
620
|
+
async function getPage(fromCursor, pageSize) {
|
|
621
|
+
return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE, {
|
|
622
|
+
fromCursor,
|
|
623
|
+
pageSize
|
|
624
|
+
});
|
|
625
|
+
}
|
|
619
626
|
const getInfo = async function() {
|
|
620
627
|
return await this.call(events_EVENT.MUJIAN_AI_CHAT_PROJECT_GET_INFO);
|
|
621
628
|
};
|
|
@@ -795,7 +802,8 @@ class MujianSdk {
|
|
|
795
802
|
deleteOne: messageDeleteOne.bind(this),
|
|
796
803
|
editOne: messageEditOne.bind(this),
|
|
797
804
|
swipe: messageSwipe.bind(this),
|
|
798
|
-
getPrompt: getPrompt.bind(this)
|
|
805
|
+
getPrompt: getPrompt.bind(this),
|
|
806
|
+
getPage: getPage.bind(this)
|
|
799
807
|
}
|
|
800
808
|
},
|
|
801
809
|
text: {
|
|
@@ -1170,9 +1178,8 @@ const useChatStreaming = ({ common, setError, setMessages, mujian })=>{
|
|
|
1170
1178
|
isStreaming
|
|
1171
1179
|
};
|
|
1172
1180
|
};
|
|
1173
|
-
const useChat = ({ body, onError, onFinish })=>{
|
|
1181
|
+
const useChat = ({ body, onError, onFinish, pageSize })=>{
|
|
1174
1182
|
const [error, _setError] = useState();
|
|
1175
|
-
const [messages, setMessages] = useState([]);
|
|
1176
1183
|
const [input, setInput] = useState('');
|
|
1177
1184
|
const [abortController, setAbortController] = useState();
|
|
1178
1185
|
const mujian = useMujian();
|
|
@@ -1180,6 +1187,45 @@ const useChat = ({ body, onError, onFinish })=>{
|
|
|
1180
1187
|
_setError(error);
|
|
1181
1188
|
if (error) onError?.(error);
|
|
1182
1189
|
};
|
|
1190
|
+
const isLoadingMore = useRef(false);
|
|
1191
|
+
const { data, loadMoreAsync, loadingMore, loading, mutate, error: messageLoadError } = useInfiniteScroll(async (current)=>{
|
|
1192
|
+
isLoadingMore.current = true;
|
|
1193
|
+
if (current?.noMore) return {
|
|
1194
|
+
noMore: true,
|
|
1195
|
+
list: []
|
|
1196
|
+
};
|
|
1197
|
+
try {
|
|
1198
|
+
const resp = await mujian.ai.chat.message.getPage(current?.cursor, pageSize);
|
|
1199
|
+
return {
|
|
1200
|
+
cursor: resp.nextCursor,
|
|
1201
|
+
list: resp.messages,
|
|
1202
|
+
noMore: !resp.nextCursor
|
|
1203
|
+
};
|
|
1204
|
+
} finally{
|
|
1205
|
+
isLoadingMore.current = false;
|
|
1206
|
+
}
|
|
1207
|
+
}, {
|
|
1208
|
+
direction: 'top'
|
|
1209
|
+
});
|
|
1210
|
+
const loadMoreMessage = async ()=>{
|
|
1211
|
+
if (isLoadingMore.current) return;
|
|
1212
|
+
try {
|
|
1213
|
+
isLoadingMore.current = true;
|
|
1214
|
+
await loadMoreAsync();
|
|
1215
|
+
} finally{
|
|
1216
|
+
isLoadingMore.current = false;
|
|
1217
|
+
}
|
|
1218
|
+
};
|
|
1219
|
+
const messages = data?.list ?? [];
|
|
1220
|
+
const setMessages = (messages)=>{
|
|
1221
|
+
'function' == typeof messages ? mutate({
|
|
1222
|
+
cursor: data?.cursor,
|
|
1223
|
+
list: messages(data?.list ?? [])
|
|
1224
|
+
}) : mutate({
|
|
1225
|
+
cursor: data?.cursor,
|
|
1226
|
+
list: messages
|
|
1227
|
+
});
|
|
1228
|
+
};
|
|
1183
1229
|
const { chatStreaming, isStreaming } = useChatStreaming({
|
|
1184
1230
|
common: {
|
|
1185
1231
|
body
|
|
@@ -1188,10 +1234,6 @@ const useChat = ({ body, onError, onFinish })=>{
|
|
|
1188
1234
|
setMessages,
|
|
1189
1235
|
mujian
|
|
1190
1236
|
});
|
|
1191
|
-
useMount(async ()=>{
|
|
1192
|
-
const resp = await mujian.ai.chat.message.getAll();
|
|
1193
|
-
setMessages(resp);
|
|
1194
|
-
});
|
|
1195
1237
|
useUpdateEffect(()=>{
|
|
1196
1238
|
if (!isStreaming) {
|
|
1197
1239
|
const lastMessage = messages[messages.length - 1];
|
|
@@ -1316,7 +1358,9 @@ const useChat = ({ body, onError, onFinish })=>{
|
|
|
1316
1358
|
},
|
|
1317
1359
|
setSwipe,
|
|
1318
1360
|
editMessage,
|
|
1319
|
-
deleteMessage
|
|
1361
|
+
deleteMessage,
|
|
1362
|
+
loadMoreMessage,
|
|
1363
|
+
messagesStatus: messageLoadError ? 'error' : loadingMore || loading ? 'loading' : data?.noMore ? 'all-loaded' : 'has-more'
|
|
1320
1364
|
};
|
|
1321
1365
|
};
|
|
1322
1366
|
export { MdRenderer, MujianProvider, MujianSpinner, Thread, useChat, useMujian };
|
package/dist/types/index.d.ts
CHANGED
package/dist/umd/index.js
CHANGED
|
@@ -267,6 +267,7 @@
|
|
|
267
267
|
EVENT["MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE"] = "mujian:ai:openai:chat:completions:create";
|
|
268
268
|
EVENT["MUJIAN_AI_OPENAI_RESPONSES_CREATE"] = "mujian:ai:openai:responses:create";
|
|
269
269
|
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
|
|
270
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PAGE"] = "mujian:ai:chat:message:getPage";
|
|
270
271
|
EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
|
|
271
272
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
|
|
272
273
|
EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
|
|
@@ -376,6 +377,12 @@
|
|
|
376
377
|
messageId
|
|
377
378
|
});
|
|
378
379
|
};
|
|
380
|
+
async function getPage(fromCursor, pageSize) {
|
|
381
|
+
return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE, {
|
|
382
|
+
fromCursor,
|
|
383
|
+
pageSize
|
|
384
|
+
});
|
|
385
|
+
}
|
|
379
386
|
const getInfo = async function() {
|
|
380
387
|
return await this.call(events_EVENT.MUJIAN_AI_CHAT_PROJECT_GET_INFO);
|
|
381
388
|
};
|
|
@@ -512,7 +519,8 @@
|
|
|
512
519
|
deleteOne: messageDeleteOne.bind(this),
|
|
513
520
|
editOne: messageEditOne.bind(this),
|
|
514
521
|
swipe: messageSwipe.bind(this),
|
|
515
|
-
getPrompt: getPrompt.bind(this)
|
|
522
|
+
getPrompt: getPrompt.bind(this),
|
|
523
|
+
getPage: getPage.bind(this)
|
|
516
524
|
}
|
|
517
525
|
},
|
|
518
526
|
text: {
|
|
@@ -711,7 +719,8 @@
|
|
|
711
719
|
deleteOne: messageDeleteOne.bind(this),
|
|
712
720
|
editOne: messageEditOne.bind(this),
|
|
713
721
|
swipe: messageSwipe.bind(this),
|
|
714
|
-
getPrompt: getPrompt.bind(this)
|
|
722
|
+
getPrompt: getPrompt.bind(this),
|
|
723
|
+
getPage: getPage.bind(this)
|
|
715
724
|
}
|
|
716
725
|
},
|
|
717
726
|
text: {
|