Add network error retry to summarization

This commit is contained in:
Webifi 2023-06-17 11:55:15 -05:00
parent 3ab605983d
commit 4fd3303e9b
1 changed files with 31 additions and 24 deletions

View File

@ -3,7 +3,7 @@
import { mergeProfileFields, prepareSummaryPrompt } from './Profiles.svelte'
import { countMessageTokens, countPromptTokens, getModelMaxTokens } from './Stats.svelte'
import type { Chat, ChatCompletionOpts, ChatSettings, Message, Model, Request, RequestImageGeneration } from './Types.svelte'
import { deleteMessage, getChatSettingValueNullDefault, insertMessages, getApiKey, addError, currentChatMessages, getMessages, updateMessages } from './Storage.svelte'
import { deleteMessage, getChatSettingValueNullDefault, insertMessages, getApiKey, addError, currentChatMessages, getMessages, updateMessages, deleteSummaryMessage } from './Storage.svelte'
import { scrollToBottom, scrollToMessage } from './Util.svelte'
import { getRequestSettingList, defaultModel } from './Settings.svelte'
import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source'
@ -418,7 +418,9 @@ export class ChatRequest {
const summarizedIds = rw.map(m => m.uuid)
const summaryIds = [summaryResponse.uuid]
let loopCount = 0
let networkRetry = 2 // number of retries on network error
while (continueCounter-- > 0) {
let error = false
try {
const summary = await _this.sendRequest(top.concat(rw).concat([summaryRequest]).concat(loopCount > 0 ? [summaryResponse] : []), {
summaryRequest: true,
@ -445,10 +447,21 @@ export class ChatRequest {
deleteMessage(chatId, srid)
return summary
}
} catch (e) {
if (e.message?.includes('network error') && networkRetry > 0) {
networkRetry--
error = true
} else {
_this.updating = false
_this.updatingMessage = ''
deleteSummaryMessage(chatId, srid)
throw e
}
}
// Looks like we got our summarized messages.
// Mark the new summaries as such
// Need more?
if (summaryResponse.finish_reason === 'length' && continueCounter > 0) {
if ((error || summaryResponse.finish_reason === 'length') && continueCounter > 0) {
// Our summary was truncated
// Try to get more of it
delete summaryResponse.finish_reason
@ -464,12 +477,6 @@ export class ChatRequest {
// We're done
continueCounter = 0
}
} catch (e) {
_this.updating = false
_this.updatingMessage = ''
deleteMessage(chatId, srid)
throw e
}
}
summaryResponse.summary = summarizedIds
// Disable the messages we summarized so they still show in history