@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.
@@ -1030,7 +1030,12 @@ ${finalContent}`;
1030
1030
  setQuotedText(null);
1031
1031
  setSelectedAction(null);
1032
1032
  const capturedSessionId = sessionId;
1033
- const isFirstMessage = !sessions.find((s) => s.id === capturedSessionId)?.messages.length;
1033
+ const currentSession2 = sessions.find((s) => s.id === capturedSessionId);
1034
+ const existingMessages = currentSession2?.messages || [];
1035
+ const isFirstMessage = !existingMessages.length;
1036
+ const contextSummary = currentSession2?.compressionState?.contextSummary || currentSession2?.contextSummary;
1037
+ const summaryAfterIndex = currentSession2?.compressionState?.summaryAfterIndex || currentSession2?.summaryAfterIndex || 0;
1038
+ let compressionCount = currentSession2?.compressionState?.compressionCount || 0;
1034
1039
  setSessions(
1035
1040
  (prev) => prev.map((s) => {
1036
1041
  if (s.id === capturedSessionId) {
@@ -1061,29 +1066,25 @@ ${finalContent}`;
1061
1066
  setIsLoading(true);
1062
1067
  abortControllerRef.current = new AbortController();
1063
1068
  try {
1064
- const session = sessions.find((s) => s.id === capturedSessionId);
1065
- const existingMessages = session?.messages || [];
1066
1069
  let messagesToSend = [...existingMessages, userMessage];
1067
1070
  const recompressionThreshold = DEFAULT_RECOMPRESSION_THRESHOLD;
1068
1071
  const tokenLimit = DEFAULT_TOKEN_LIMIT;
1069
- let contextSummary = session?.compressionState?.contextSummary || session?.contextSummary;
1070
- const summaryAfterIndex = session?.compressionState?.summaryAfterIndex || session?.summaryAfterIndex || 0;
1071
- let compressionCount = session?.compressionState?.compressionCount || 0;
1072
+ let currentContextSummary = contextSummary;
1072
1073
  const newMessageCount = messagesToSend.length - summaryAfterIndex;
1073
1074
  const estimatedTokensCount = estimateTokens(messagesToSend);
1074
- const needsInitialCompression = !contextSummary && messagesToSend.length > contextCompressionThreshold;
1075
- const needsRecompression = contextSummary && (newMessageCount > recompressionThreshold || estimatedTokensCount > tokenLimit * 0.7);
1075
+ const needsInitialCompression = !currentContextSummary && messagesToSend.length > contextCompressionThreshold;
1076
+ const needsRecompression = currentContextSummary && (newMessageCount > recompressionThreshold || estimatedTokensCount > tokenLimit * 0.7);
1076
1077
  if (needsInitialCompression || needsRecompression) {
1077
1078
  const toCompress = messagesToSend.slice(0, -keepRecentMessages);
1078
1079
  let summary;
1079
- if (needsRecompression && contextSummary) {
1080
+ if (needsRecompression && currentContextSummary) {
1080
1081
  const newMessages = toCompress.slice(summaryAfterIndex);
1081
- summary = await incrementalCompressContext(contextSummary, newMessages, selectedModel);
1082
+ summary = await incrementalCompressContext(currentContextSummary, newMessages, selectedModel);
1082
1083
  } else {
1083
1084
  summary = await compressContext(toCompress, selectedModel);
1084
1085
  }
1085
1086
  if (summary) {
1086
- contextSummary = summary;
1087
+ currentContextSummary = summary;
1087
1088
  compressionCount += 1;
1088
1089
  setSessions(
1089
1090
  (prev) => prev.map(
@@ -1111,11 +1112,11 @@ ${finalContent}`;
1111
1112
  }
1112
1113
  }
1113
1114
  let chatMessages;
1114
- if (contextSummary) {
1115
+ if (currentContextSummary) {
1115
1116
  const recentMessages = messagesToSend.slice(-keepRecentMessages);
1116
1117
  chatMessages = [
1117
1118
  { role: "system", content: `[\uC774\uC804 \uB300\uD654 \uC694\uC57D]
1118
- ${contextSummary}` },
1119
+ ${currentContextSummary}` },
1119
1120
  ...recentMessages.map((m) => ({ role: m.role, content: m.content }))
1120
1121
  ];
1121
1122
  } else {