@gendive/chatllm 0.10.1 → 0.10.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/dist/react/index.js +14 -13
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +14 -13
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.mjs
CHANGED
|
@@ -981,7 +981,12 @@ ${finalContent}`;
|
|
|
981
981
|
setQuotedText(null);
|
|
982
982
|
setSelectedAction(null);
|
|
983
983
|
const capturedSessionId = sessionId;
|
|
984
|
-
const
|
|
984
|
+
const currentSession2 = sessions.find((s) => s.id === capturedSessionId);
|
|
985
|
+
const existingMessages = currentSession2?.messages || [];
|
|
986
|
+
const isFirstMessage = !existingMessages.length;
|
|
987
|
+
const contextSummary = currentSession2?.compressionState?.contextSummary || currentSession2?.contextSummary;
|
|
988
|
+
const summaryAfterIndex = currentSession2?.compressionState?.summaryAfterIndex || currentSession2?.summaryAfterIndex || 0;
|
|
989
|
+
let compressionCount = currentSession2?.compressionState?.compressionCount || 0;
|
|
985
990
|
setSessions(
|
|
986
991
|
(prev) => prev.map((s) => {
|
|
987
992
|
if (s.id === capturedSessionId) {
|
|
@@ -1012,29 +1017,25 @@ ${finalContent}`;
|
|
|
1012
1017
|
setIsLoading(true);
|
|
1013
1018
|
abortControllerRef.current = new AbortController();
|
|
1014
1019
|
try {
|
|
1015
|
-
const session = sessions.find((s) => s.id === capturedSessionId);
|
|
1016
|
-
const existingMessages = session?.messages || [];
|
|
1017
1020
|
let messagesToSend = [...existingMessages, userMessage];
|
|
1018
1021
|
const recompressionThreshold = DEFAULT_RECOMPRESSION_THRESHOLD;
|
|
1019
1022
|
const tokenLimit = DEFAULT_TOKEN_LIMIT;
|
|
1020
|
-
let
|
|
1021
|
-
const summaryAfterIndex = session?.compressionState?.summaryAfterIndex || session?.summaryAfterIndex || 0;
|
|
1022
|
-
let compressionCount = session?.compressionState?.compressionCount || 0;
|
|
1023
|
+
let currentContextSummary = contextSummary;
|
|
1023
1024
|
const newMessageCount = messagesToSend.length - summaryAfterIndex;
|
|
1024
1025
|
const estimatedTokensCount = estimateTokens(messagesToSend);
|
|
1025
|
-
const needsInitialCompression = !
|
|
1026
|
-
const needsRecompression =
|
|
1026
|
+
const needsInitialCompression = !currentContextSummary && messagesToSend.length > contextCompressionThreshold;
|
|
1027
|
+
const needsRecompression = currentContextSummary && (newMessageCount > recompressionThreshold || estimatedTokensCount > tokenLimit * 0.7);
|
|
1027
1028
|
if (needsInitialCompression || needsRecompression) {
|
|
1028
1029
|
const toCompress = messagesToSend.slice(0, -keepRecentMessages);
|
|
1029
1030
|
let summary;
|
|
1030
|
-
if (needsRecompression &&
|
|
1031
|
+
if (needsRecompression && currentContextSummary) {
|
|
1031
1032
|
const newMessages = toCompress.slice(summaryAfterIndex);
|
|
1032
|
-
summary = await incrementalCompressContext(
|
|
1033
|
+
summary = await incrementalCompressContext(currentContextSummary, newMessages, selectedModel);
|
|
1033
1034
|
} else {
|
|
1034
1035
|
summary = await compressContext(toCompress, selectedModel);
|
|
1035
1036
|
}
|
|
1036
1037
|
if (summary) {
|
|
1037
|
-
|
|
1038
|
+
currentContextSummary = summary;
|
|
1038
1039
|
compressionCount += 1;
|
|
1039
1040
|
setSessions(
|
|
1040
1041
|
(prev) => prev.map(
|
|
@@ -1062,11 +1063,11 @@ ${finalContent}`;
|
|
|
1062
1063
|
}
|
|
1063
1064
|
}
|
|
1064
1065
|
let chatMessages;
|
|
1065
|
-
if (
|
|
1066
|
+
if (currentContextSummary) {
|
|
1066
1067
|
const recentMessages = messagesToSend.slice(-keepRecentMessages);
|
|
1067
1068
|
chatMessages = [
|
|
1068
1069
|
{ role: "system", content: `[\uC774\uC804 \uB300\uD654 \uC694\uC57D]
|
|
1069
|
-
${
|
|
1070
|
+
${currentContextSummary}` },
|
|
1070
1071
|
...recentMessages.map((m) => ({ role: m.role, content: m.content }))
|
|
1071
1072
|
];
|
|
1072
1073
|
} else {
|