Fix token limit issue in #161
This commit is contained in:
		
							parent
							
								
									44d006b9de
								
							
						
					
					
						commit
						2b8eefe113
					
				| 
						 | 
					@ -20,7 +20,10 @@
 | 
				
			||||||
    type Request,
 | 
					    type Request,
 | 
				
			||||||
    type Message,
 | 
					    type Message,
 | 
				
			||||||
    type Chat,
 | 
					    type Chat,
 | 
				
			||||||
    type ChatCompletionOpts
 | 
					    type ChatCompletionOpts,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    type Model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  } from './Types.svelte'
 | 
					  } from './Types.svelte'
 | 
				
			||||||
  import Prompts from './Prompts.svelte'
 | 
					  import Prompts from './Prompts.svelte'
 | 
				
			||||||
  import Messages from './Messages.svelte'
 | 
					  import Messages from './Messages.svelte'
 | 
				
			||||||
| 
						 | 
					@ -358,6 +361,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Update token count with actual
 | 
					    // Update token count with actual
 | 
				
			||||||
    promptTokenCount = countPromptTokens(messagePayload, model)
 | 
					    promptTokenCount = countPromptTokens(messagePayload, model)
 | 
				
			||||||
 | 
					    const maxAllowed = getModelMaxTokens(chatSettings.model as Model) - (promptTokenCount + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      const request: Request = {
 | 
					      const request: Request = {
 | 
				
			||||||
| 
						 | 
					@ -369,9 +373,13 @@
 | 
				
			||||||
          if (typeof setting.apiTransform === 'function') {
 | 
					          if (typeof setting.apiTransform === 'function') {
 | 
				
			||||||
            value = setting.apiTransform(chatId, setting, value)
 | 
					            value = setting.apiTransform(chatId, setting, value)
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					          if (key === 'max_tokens') {
 | 
				
			||||||
            if (opts.maxTokens) {
 | 
					            if (opts.maxTokens) {
 | 
				
			||||||
            if (key === 'max_tokens') value = opts.maxTokens // only as large as requested
 | 
					              value = opts.maxTokens // only as large as requested
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (value > maxAllowed || value < 1) value = null
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          if (key === 'n') {
 | 
				
			||||||
            if (opts.streaming || opts.summaryRequest) {
 | 
					            if (opts.streaming || opts.summaryRequest) {
 | 
				
			||||||
              /*
 | 
					              /*
 | 
				
			||||||
              Streaming goes insane with more than one completion.
 | 
					              Streaming goes insane with more than one completion.
 | 
				
			||||||
| 
						 | 
					@ -379,7 +387,8 @@
 | 
				
			||||||
              different completions.
 | 
					              different completions.
 | 
				
			||||||
              Summary should only have one completion
 | 
					              Summary should only have one completion
 | 
				
			||||||
              */
 | 
					              */
 | 
				
			||||||
            if (key === 'n') value = 1
 | 
					              value = 1
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          if (value !== null) acc[key] = value
 | 
					          if (value !== null) acc[key] = value
 | 
				
			||||||
          return acc
 | 
					          return acc
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue