diff --git a/src/core/condense/__tests__/index.spec.ts b/src/core/condense/__tests__/index.spec.ts index ef5af012435..a7f4a587187 100644 --- a/src/core/condense/__tests__/index.spec.ts +++ b/src/core/condense/__tests__/index.spec.ts @@ -1484,6 +1484,122 @@ describe("summarizeConversation", () => { expect(result.error).toBeUndefined() }) + + it("should return context window exceeded error when API throws context length error", async () => { + const messages: ApiMessage[] = [ + { role: "user", content: "Hello", ts: 1 }, + { role: "assistant", content: "Hi there", ts: 2 }, + { role: "user", content: "How are you?", ts: 3 }, + { role: "assistant", content: "I'm good", ts: 4 }, + { role: "user", content: "What's new?", ts: 5 }, + { role: "assistant", content: "Not much", ts: 6 }, + { role: "user", content: "Tell me more", ts: 7 }, + ] + + // Create a stream that throws a context length exceeded error + // eslint-disable-next-line require-yield + const errorStream = (async function* () { + throw new Error( + "400 This endpoint's maximum context length is 131072 tokens. However, you requested about 145406 tokens.", + ) + })() + + mockApiHandler.createMessage = vi.fn().mockReturnValue(errorStream) as any + + const result = await summarizeConversation( + messages, + mockApiHandler, + defaultSystemPrompt, + taskId, + DEFAULT_PREV_CONTEXT_TOKENS, + ) + + // Should return original messages with error + expect(result.messages).toEqual(messages) + expect(result.summary).toBe("") + expect(result.error).toBeTruthy() + // The error message comes from the translation key + expect(result.error).toContain("condense_context_window_exceeded") + expect(result.newContextTokens).toBeUndefined() + }) + + it("should return context window exceeded error for various context length error messages", async () => { + const messages: ApiMessage[] = [ + { role: "user", content: "Hello", ts: 1 }, + { role: "assistant", content: "Hi there", ts: 2 }, + { role: "user", content: "How are you?", ts: 3 }, + { role: "assistant", content: "I'm good", ts: 4 }, + { role: "user", content: "What's new?", ts: 5 }, + { role: "assistant", content: "Not much", ts: 6 }, + { role: "user", content: "Tell me more", ts: 7 }, + ] + + // Test various error message patterns + const errorPatterns = [ + "context_length_exceeded", + "maximum context length exceeded", + "prompt is too long", + "too many tokens in your request", + ] + + for (const errorPattern of errorPatterns) { + vi.clearAllMocks() + + // eslint-disable-next-line require-yield + const errorStream = (async function* () { + throw new Error(errorPattern) + })() + + mockApiHandler.createMessage = vi.fn().mockReturnValue(errorStream) as any + + const result = await summarizeConversation( + messages, + mockApiHandler, + defaultSystemPrompt, + taskId, + DEFAULT_PREV_CONTEXT_TOKENS, + ) + + expect(result.error).toBeTruthy() + // The error message comes from the translation key + expect(result.error).toContain("condense_context_window_exceeded") + } + }) + + it("should return generic error for non-context-window API errors", async () => { + const messages: ApiMessage[] = [ + { role: "user", content: "Hello", ts: 1 }, + { role: "assistant", content: "Hi there", ts: 2 }, + { role: "user", content: "How are you?", ts: 3 }, + { role: "assistant", content: "I'm good", ts: 4 }, + { role: "user", content: "What's new?", ts: 5 }, + { role: "assistant", content: "Not much", ts: 6 }, + { role: "user", content: "Tell me more", ts: 7 }, + ] + + // Create a stream that throws a generic API error + // eslint-disable-next-line require-yield + const errorStream = (async function* () { + throw new Error("Internal server error") + })() + + mockApiHandler.createMessage = vi.fn().mockReturnValue(errorStream) as any + + const result = await summarizeConversation( + messages, + mockApiHandler, + defaultSystemPrompt, + taskId, + DEFAULT_PREV_CONTEXT_TOKENS, + ) + + // Should return original messages with error + expect(result.messages).toEqual(messages) + expect(result.summary).toBe("") + expect(result.error).toBeTruthy() + expect(result.error).toContain("Internal server error") + expect(result.newContextTokens).toBeUndefined() + }) }) describe("summarizeConversation with custom settings", () => { diff --git a/src/core/condense/index.ts b/src/core/condense/index.ts index 79bc31ef9fc..93c8e0a3dd2 100644 --- a/src/core/condense/index.ts +++ b/src/core/condense/index.ts @@ -319,19 +319,45 @@ export async function summarizeConversation( } } - const stream = handlerToUse.createMessage(promptToUse, requestMessages) - let summary = "" let cost = 0 let outputTokens = 0 - for await (const chunk of stream) { - if (chunk.type === "text") { - summary += chunk.text - } else if (chunk.type === "usage") { - // Record final usage chunk only - cost = chunk.totalCost ?? 0 - outputTokens = chunk.outputTokens ?? 0 + try { + const stream = handlerToUse.createMessage(promptToUse, requestMessages) + + for await (const chunk of stream) { + if (chunk.type === "text") { + summary += chunk.text + } else if (chunk.type === "usage") { + // Record final usage chunk only + cost = chunk.totalCost ?? 0 + outputTokens = chunk.outputTokens ?? 0 + } + } + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error) + + // Check for context window exceeded error + if ( + errorMessage.includes("context_length_exceeded") || + errorMessage.includes("context length") || + errorMessage.includes("maximum context") || + errorMessage.includes("too long") || + errorMessage.includes("too many tokens") + ) { + return { + ...response, + cost, + error: t("common:errors.condense_context_window_exceeded"), + } + } + + // Return generic error for other failures + return { + ...response, + cost, + error: `${t("common:errors.condense_failed")}: ${errorMessage}`, } } diff --git a/src/i18n/locales/ca/common.json b/src/i18n/locales/ca/common.json index 321a1aa3a06..388e282b01b 100644 --- a/src/i18n/locales/ca/common.json +++ b/src/i18n/locales/ca/common.json @@ -67,6 +67,7 @@ "condensed_recently": "El context s'ha condensat recentment; s'omet aquest intent", "condense_handler_invalid": "El gestor de l'API per condensar el context no és vàlid", "condense_context_grew": "La mida del context ha augmentat durant la condensació; s'omet aquest intent", + "condense_context_window_exceeded": "La finestra de context del model de condensació seleccionat és massa petita per a la conversa actual. Si us plau, seleccioneu un model amb una finestra de context més gran o reduïu manualment la mida de la conversa primer.", "url_timeout": "El lloc web ha trigat massa a carregar (timeout). Això pot ser degut a una connexió lenta, un lloc web pesat o temporalment no disponible. Pots tornar-ho a provar més tard o comprovar si la URL és correcta.", "url_not_found": "No s'ha pogut trobar l'adreça del lloc web. Comprova si la URL és correcta i torna-ho a provar.", "no_internet": "No hi ha connexió a internet. Comprova la teva connexió de xarxa i torna-ho a provar.", diff --git a/src/i18n/locales/de/common.json b/src/i18n/locales/de/common.json index 0611cf889af..2dc76c848cb 100644 --- a/src/i18n/locales/de/common.json +++ b/src/i18n/locales/de/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Kontext wurde kürzlich verdichtet; dieser Versuch wird übersprungen", "condense_handler_invalid": "API-Handler zum Verdichten des Kontexts ist ungültig", "condense_context_grew": "Kontextgröße ist während der Verdichtung gewachsen; dieser Versuch wird übersprungen", + "condense_context_window_exceeded": "Das Kontextfenster des ausgewählten Verdichtungsmodells ist zu klein für die aktuelle Konversation. Bitte wählen Sie ein Modell mit einem größeren Kontextfenster oder reduzieren Sie zuerst manuell die Konversationsgröße.", "url_timeout": "Die Website hat zu lange zum Laden gebraucht (Timeout). Das könnte an einer langsamen Verbindung, einer schweren Website oder vorübergehender Nichtverfügbarkeit liegen. Du kannst es später nochmal versuchen oder prüfen, ob die URL korrekt ist.", "url_not_found": "Die Website-Adresse konnte nicht gefunden werden. Bitte prüfe, ob die URL korrekt ist und versuche es erneut.", "no_internet": "Keine Internetverbindung. Bitte prüfe deine Netzwerkverbindung und versuche es erneut.", diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index 90c409feb76..8d6b39383c9 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Context was condensed recently; skipping this attempt", "condense_handler_invalid": "API handler for condensing context is invalid", "condense_context_grew": "Context size increased during condensing; skipping this attempt", + "condense_context_window_exceeded": "The selected condensing model's context window is too small for the current conversation. Please select a model with a larger context window or manually reduce the conversation size first.", "url_timeout": "The website took too long to load (timeout). This could be due to a slow connection, heavy website, or the site being temporarily unavailable. You can try again later or check if the URL is correct.", "url_not_found": "The website address could not be found. Please check if the URL is correct and try again.", "no_internet": "No internet connection. Please check your network connection and try again.", diff --git a/src/i18n/locales/es/common.json b/src/i18n/locales/es/common.json index d0a086173e9..d07071cc500 100644 --- a/src/i18n/locales/es/common.json +++ b/src/i18n/locales/es/common.json @@ -63,6 +63,7 @@ "condensed_recently": "El contexto se condensó recientemente; se omite este intento", "condense_handler_invalid": "El manejador de API para condensar el contexto no es válido", "condense_context_grew": "El tamaño del contexto aumentó durante la condensación; se omite este intento", + "condense_context_window_exceeded": "La ventana de contexto del modelo de condensación seleccionado es demasiado pequeña para la conversación actual. Por favor, seleccione un modelo con una ventana de contexto más grande o reduzca manualmente el tamaño de la conversación primero.", "url_timeout": "El sitio web tardó demasiado en cargar (timeout). Esto podría deberse a una conexión lenta, un sitio web pesado o que esté temporalmente no disponible. Puedes intentarlo más tarde o verificar si la URL es correcta.", "url_not_found": "No se pudo encontrar la dirección del sitio web. Por favor verifica si la URL es correcta e inténtalo de nuevo.", "no_internet": "Sin conexión a internet. Por favor verifica tu conexión de red e inténtalo de nuevo.", diff --git a/src/i18n/locales/fr/common.json b/src/i18n/locales/fr/common.json index 58350ef02ba..d300094da12 100644 --- a/src/i18n/locales/fr/common.json +++ b/src/i18n/locales/fr/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Le contexte a été condensé récemment ; cette tentative est ignorée", "condense_handler_invalid": "Le gestionnaire d'API pour condenser le contexte est invalide", "condense_context_grew": "La taille du contexte a augmenté pendant la condensation ; cette tentative est ignorée", + "condense_context_window_exceeded": "La fenêtre de contexte du modèle de condensation sélectionné est trop petite pour la conversation actuelle. Veuillez sélectionner un modèle avec une fenêtre de contexte plus grande ou réduire manuellement la taille de la conversation d'abord.", "url_timeout": "Le site web a pris trop de temps à charger (timeout). Cela pourrait être dû à une connexion lente, un site web lourd ou temporairement indisponible. Tu peux réessayer plus tard ou vérifier si l'URL est correcte.", "url_not_found": "L'adresse du site web n'a pas pu être trouvée. Vérifie si l'URL est correcte et réessaie.", "no_internet": "Pas de connexion internet. Vérifie ta connexion réseau et réessaie.", diff --git a/src/i18n/locales/hi/common.json b/src/i18n/locales/hi/common.json index 33277c71623..4fb623301dc 100644 --- a/src/i18n/locales/hi/common.json +++ b/src/i18n/locales/hi/common.json @@ -63,6 +63,7 @@ "condensed_recently": "संदर्भ हाल ही में संक्षिप्त किया गया था; इस प्रयास को छोड़ा जा रहा है", "condense_handler_invalid": "संदर्भ को संक्षिप्त करने के लिए API हैंडलर अमान्य है", "condense_context_grew": "संक्षिप्तीकरण के दौरान संदर्भ का आकार बढ़ गया; इस प्रयास को छोड़ा जा रहा है", + "condense_context_window_exceeded": "चयनित संक्षेपण मॉडल की संदर्भ विंडो वर्तमान वार्तालाप के लिए बहुत छोटी है। कृपया बड़ी संदर्भ विंडो वाला मॉडल चुनें या पहले वार्तालाप का आकार मैन्युअल रूप से कम करें।", "url_timeout": "वेबसाइट लोड होने में बहुत समय लगा (टाइमआउट)। यह धीमे कनेक्शन, भारी वेबसाइट या अस्थायी रूप से अनुपलब्ध होने के कारण हो सकता है। आप बाद में फिर से कोशिश कर सकते हैं या जांच सकते हैं कि URL सही है या नहीं।", "url_not_found": "वेबसाइट का पता नहीं मिल सका। कृपया जांचें कि URL सही है और फिर से कोशिश करें।", "no_internet": "इंटरनेट कनेक्शन नहीं है। कृपया अपना नेटवर्क कनेक्शन जांचें और फिर से कोशिश करें।", diff --git a/src/i18n/locales/id/common.json b/src/i18n/locales/id/common.json index c10532beef9..f723e75cc8d 100644 --- a/src/i18n/locales/id/common.json +++ b/src/i18n/locales/id/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Konteks baru saja dikompres; melewati percobaan ini", "condense_handler_invalid": "Handler API untuk mengompres konteks tidak valid", "condense_context_grew": "Ukuran konteks bertambah saat mengompres; melewati percobaan ini", + "condense_context_window_exceeded": "Jendela konteks model kondensasi yang dipilih terlalu kecil untuk percakapan saat ini. Silakan pilih model dengan jendela konteks yang lebih besar atau kurangi ukuran percakapan secara manual terlebih dahulu.", "url_timeout": "Situs web membutuhkan waktu terlalu lama untuk dimuat (timeout). Ini bisa disebabkan oleh koneksi lambat, situs web berat, atau sementara tidak tersedia. Kamu bisa mencoba lagi nanti atau memeriksa apakah URL sudah benar.", "url_not_found": "Alamat situs web tidak dapat ditemukan. Silakan periksa apakah URL sudah benar dan coba lagi.", "no_internet": "Tidak ada koneksi internet. Silakan periksa koneksi jaringan kamu dan coba lagi.", diff --git a/src/i18n/locales/it/common.json b/src/i18n/locales/it/common.json index a75dccd3875..f1560729f88 100644 --- a/src/i18n/locales/it/common.json +++ b/src/i18n/locales/it/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Il contesto è stato condensato di recente; questo tentativo viene saltato", "condense_handler_invalid": "Il gestore API per condensare il contesto non è valido", "condense_context_grew": "La dimensione del contesto è aumentata durante la condensazione; questo tentativo viene saltato", + "condense_context_window_exceeded": "La finestra di contesto del modello di condensazione selezionato è troppo piccola per la conversazione attuale. Seleziona un modello con una finestra di contesto più grande o riduci manualmente la dimensione della conversazione prima.", "url_timeout": "Il sito web ha impiegato troppo tempo a caricarsi (timeout). Questo potrebbe essere dovuto a una connessione lenta, un sito web pesante o temporaneamente non disponibile. Puoi riprovare più tardi o verificare se l'URL è corretto.", "url_not_found": "L'indirizzo del sito web non è stato trovato. Verifica se l'URL è corretto e riprova.", "no_internet": "Nessuna connessione internet. Verifica la tua connessione di rete e riprova.", diff --git a/src/i18n/locales/ja/common.json b/src/i18n/locales/ja/common.json index b378f00b03f..9ec357d314b 100644 --- a/src/i18n/locales/ja/common.json +++ b/src/i18n/locales/ja/common.json @@ -63,6 +63,7 @@ "condensed_recently": "コンテキストは最近圧縮されました;この試行をスキップします", "condense_handler_invalid": "コンテキストを圧縮するためのAPIハンドラーが無効です", "condense_context_grew": "圧縮中にコンテキストサイズが増加しました;この試行をスキップします", + "condense_context_window_exceeded": "選択された圧縮モデルのコンテキストウィンドウは、現在の会話には小さすぎます。より大きなコンテキストウィンドウを持つモデルを選択するか、先に会話のサイズを手動で削減してください。", "url_timeout": "ウェブサイトの読み込みがタイムアウトしました。接続が遅い、ウェブサイトが重い、または一時的に利用できない可能性があります。後でもう一度試すか、URLが正しいか確認してください。", "url_not_found": "ウェブサイトのアドレスが見つかりませんでした。URLが正しいか確認してもう一度試してください。", "no_internet": "インターネット接続がありません。ネットワーク接続を確認してもう一度試してください。", diff --git a/src/i18n/locales/ko/common.json b/src/i18n/locales/ko/common.json index e7afdceabce..18bdb60abab 100644 --- a/src/i18n/locales/ko/common.json +++ b/src/i18n/locales/ko/common.json @@ -63,6 +63,7 @@ "condensed_recently": "컨텍스트가 최근 압축되었습니다; 이 시도를 건너뜁니다", "condense_handler_invalid": "컨텍스트 압축을 위한 API 핸들러가 유효하지 않습니다", "condense_context_grew": "압축 중 컨텍스트 크기가 증가했습니다; 이 시도를 건너뜁니다", + "condense_context_window_exceeded": "선택한 압축 모델의 컨텍스트 창이 현재 대화에 비해 너무 작습니다. 더 큰 컨텍스트 창을 가진 모델을 선택하거나 먼저 대화 크기를 수동으로 줄여주세요.", "url_timeout": "웹사이트 로딩이 너무 오래 걸렸습니다(타임아웃). 느린 연결, 무거운 웹사이트 또는 일시적으로 사용할 수 없는 상태일 수 있습니다. 나중에 다시 시도하거나 URL이 올바른지 확인해 주세요.", "url_not_found": "웹사이트 주소를 찾을 수 없습니다. URL이 올바른지 확인하고 다시 시도해 주세요.", "no_internet": "인터넷 연결이 없습니다. 네트워크 연결을 확인하고 다시 시도해 주세요.", diff --git a/src/i18n/locales/nl/common.json b/src/i18n/locales/nl/common.json index 889cd4b3ab6..ac182de388e 100644 --- a/src/i18n/locales/nl/common.json +++ b/src/i18n/locales/nl/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Context is recent gecomprimeerd; deze poging wordt overgeslagen", "condense_handler_invalid": "API-handler voor het comprimeren van context is ongeldig", "condense_context_grew": "Contextgrootte nam toe tijdens comprimeren; deze poging wordt overgeslagen", + "condense_context_window_exceeded": "Het contextvenster van het geselecteerde comprimeermodel is te klein voor het huidige gesprek. Selecteer een model met een groter contextvenster of verklein eerst handmatig de gespreksgrootte.", "url_timeout": "De website deed er te lang over om te laden (timeout). Dit kan komen door een trage verbinding, een zware website of tijdelijke onbeschikbaarheid. Je kunt het later opnieuw proberen of controleren of de URL correct is.", "url_not_found": "Het websiteadres kon niet worden gevonden. Controleer of de URL correct is en probeer opnieuw.", "no_internet": "Geen internetverbinding. Controleer je netwerkverbinding en probeer opnieuw.", diff --git a/src/i18n/locales/pl/common.json b/src/i18n/locales/pl/common.json index faa4e9ed3a5..05dc9fe1251 100644 --- a/src/i18n/locales/pl/common.json +++ b/src/i18n/locales/pl/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Kontekst został niedawno skondensowany; pomijanie tej próby", "condense_handler_invalid": "Nieprawidłowy handler API do kondensowania kontekstu", "condense_context_grew": "Rozmiar kontekstu wzrósł podczas kondensacji; pomijanie tej próby", + "condense_context_window_exceeded": "Okno kontekstu wybranego modelu kondensacji jest zbyt małe dla bieżącej rozmowy. Wybierz model z większym oknem kontekstu lub najpierw ręcznie zmniejsz rozmiar rozmowy.", "url_timeout": "Strona internetowa ładowała się zbyt długo (timeout). Może to być spowodowane wolnym połączeniem, ciężką stroną lub tymczasową niedostępnością. Możesz spróbować ponownie później lub sprawdzić, czy URL jest poprawny.", "url_not_found": "Nie można znaleźć adresu strony internetowej. Sprawdź, czy URL jest poprawny i spróbuj ponownie.", "no_internet": "Brak połączenia z internetem. Sprawdź połączenie sieciowe i spróbuj ponownie.", diff --git a/src/i18n/locales/pt-BR/common.json b/src/i18n/locales/pt-BR/common.json index f41a379acbc..4cc95429d43 100644 --- a/src/i18n/locales/pt-BR/common.json +++ b/src/i18n/locales/pt-BR/common.json @@ -67,6 +67,7 @@ "condensed_recently": "O contexto foi condensado recentemente; pulando esta tentativa", "condense_handler_invalid": "O manipulador de API para condensar o contexto é inválido", "condense_context_grew": "O tamanho do contexto aumentou durante a condensação; pulando esta tentativa", + "condense_context_window_exceeded": "A janela de contexto do modelo de condensação selecionado é muito pequena para a conversa atual. Por favor, selecione um modelo com uma janela de contexto maior ou reduza manualmente o tamanho da conversa primeiro.", "url_timeout": "O site demorou muito para carregar (timeout). Isso pode ser devido a uma conexão lenta, site pesado ou temporariamente indisponível. Você pode tentar novamente mais tarde ou verificar se a URL está correta.", "url_not_found": "O endereço do site não pôde ser encontrado. Verifique se a URL está correta e tente novamente.", "no_internet": "Sem conexão com a internet. Verifique sua conexão de rede e tente novamente.", diff --git a/src/i18n/locales/ru/common.json b/src/i18n/locales/ru/common.json index 751637f19e0..58eb77a992d 100644 --- a/src/i18n/locales/ru/common.json +++ b/src/i18n/locales/ru/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Контекст был недавно сжат; пропускаем эту попытку", "condense_handler_invalid": "Обработчик API для сжатия контекста недействителен", "condense_context_grew": "Размер контекста увеличился во время сжатия; пропускаем эту попытку", + "condense_context_window_exceeded": "Контекстное окно выбранной модели для сжатия слишком мало для текущего разговора. Пожалуйста, выберите модель с большим контекстным окном или сначала вручную уменьшите размер разговора.", "url_timeout": "Веб-сайт слишком долго загружался (таймаут). Это может быть из-за медленного соединения, тяжелого веб-сайта или временной недоступности. Ты можешь попробовать позже или проверить правильность URL.", "url_not_found": "Адрес веб-сайта не найден. Проверь правильность URL и попробуй снова.", "no_internet": "Нет подключения к интернету. Проверь сетевое подключение и попробуй снова.", diff --git a/src/i18n/locales/tr/common.json b/src/i18n/locales/tr/common.json index 7b2ac152a9b..59b226c74d3 100644 --- a/src/i18n/locales/tr/common.json +++ b/src/i18n/locales/tr/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Bağlam yakın zamanda sıkıştırıldı; bu deneme atlanıyor", "condense_handler_invalid": "Bağlamı sıkıştırmak için API işleyicisi geçersiz", "condense_context_grew": "Sıkıştırma sırasında bağlam boyutu arttı; bu deneme atlanıyor", + "condense_context_window_exceeded": "Seçilen sıkıştırma modelinin bağlam penceresi mevcut konuşma için çok küçük. Lütfen daha büyük bağlam penceresine sahip bir model seçin veya önce konuşma boyutunu manuel olarak küçültün.", "url_timeout": "Web sitesi yüklenmesi çok uzun sürdü (zaman aşımı). Bu yavaş bağlantı, ağır web sitesi veya geçici olarak kullanılamama nedeniyle olabilir. Daha sonra tekrar deneyebilir veya URL'nin doğru olup olmadığını kontrol edebilirsin.", "url_not_found": "Web sitesi adresi bulunamadı. URL'nin doğru olup olmadığını kontrol et ve tekrar dene.", "no_internet": "İnternet bağlantısı yok. Ağ bağlantını kontrol et ve tekrar dene.", diff --git a/src/i18n/locales/vi/common.json b/src/i18n/locales/vi/common.json index 0d88ba07808..36133272407 100644 --- a/src/i18n/locales/vi/common.json +++ b/src/i18n/locales/vi/common.json @@ -63,6 +63,7 @@ "condensed_recently": "Ngữ cảnh đã được nén gần đây; bỏ qua lần thử này", "condense_handler_invalid": "Trình xử lý API để nén ngữ cảnh không hợp lệ", "condense_context_grew": "Kích thước ngữ cảnh tăng lên trong quá trình nén; bỏ qua lần thử này", + "condense_context_window_exceeded": "Cửa sổ ngữ cảnh của mô hình nén được chọn quá nhỏ cho cuộc trò chuyện hiện tại. Vui lòng chọn một mô hình có cửa sổ ngữ cảnh lớn hơn hoặc giảm kích thước cuộc trò chuyện theo cách thủ công trước.", "url_timeout": "Trang web mất quá nhiều thời gian để tải (timeout). Điều này có thể do kết nối chậm, trang web nặng hoặc tạm thời không khả dụng. Bạn có thể thử lại sau hoặc kiểm tra xem URL có đúng không.", "url_not_found": "Không thể tìm thấy địa chỉ trang web. Vui lòng kiểm tra URL có đúng không và thử lại.", "no_internet": "Không có kết nối internet. Vui lòng kiểm tra kết nối mạng và thử lại.", diff --git a/src/i18n/locales/zh-CN/common.json b/src/i18n/locales/zh-CN/common.json index 133b3de0794..4e6d5c5fbc7 100644 --- a/src/i18n/locales/zh-CN/common.json +++ b/src/i18n/locales/zh-CN/common.json @@ -68,6 +68,7 @@ "condensed_recently": "上下文最近已压缩;跳过此次尝试", "condense_handler_invalid": "压缩上下文的API处理程序无效", "condense_context_grew": "压缩过程中上下文大小增加;跳过此次尝试", + "condense_context_window_exceeded": "所选压缩模型的上下文窗口对于当前对话来说太小。请选择具有更大上下文窗口的模型,或先手动减少对话大小。", "url_timeout": "网站加载超时。这可能是由于网络连接缓慢、网站负载过重或暂时不可用。你可以稍后重试或检查 URL 是否正确。", "url_not_found": "找不到网站地址。请检查 URL 是否正确并重试。", "no_internet": "无网络连接。请检查网络连接并重试。", diff --git a/src/i18n/locales/zh-TW/common.json b/src/i18n/locales/zh-TW/common.json index 8039f203b62..c8d6db9ef92 100644 --- a/src/i18n/locales/zh-TW/common.json +++ b/src/i18n/locales/zh-TW/common.json @@ -63,6 +63,7 @@ "condensed_recently": "上下文最近已壓縮;跳過此次嘗試", "condense_handler_invalid": "壓縮上下文的 API 處理程式無效", "condense_context_grew": "壓縮過程中上下文大小增加;跳過此次嘗試", + "condense_context_window_exceeded": "所選壓縮模型的上下文視窗對於目前對話來說太小。請選擇具有更大上下文視窗的模型,或先手動減少對話大小。", "url_timeout": "網站載入超時。這可能是由於網路連線緩慢、網站負載過重或暫時無法使用。你可以稍後重試或檢查 URL 是否正確。", "url_not_found": "找不到網站位址。請檢查 URL 是否正確並重試。", "no_internet": "無網路連線。請檢查網路連線並重試。",