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