Fix token limit issue in #161

This commit is contained in:
Webifi 2023-06-10 09:58:13 -05:00
parent 44d006b9de
commit 2b8eefe113
1 changed files with 20 additions and 11 deletions

View File

@ -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,17 +373,22 @@
if (typeof setting.apiTransform === 'function') { if (typeof setting.apiTransform === 'function') {
value = setting.apiTransform(chatId, setting, value) value = setting.apiTransform(chatId, setting, value)
} }
if (opts.maxTokens) { if (key === 'max_tokens') {
if (key === 'max_tokens') value = opts.maxTokens // only as large as requested if (opts.maxTokens) {
value = opts.maxTokens // only as large as requested
}
if (value > maxAllowed || value < 1) value = null
} }
if (opts.streaming || opts.summaryRequest) { if (key === 'n') {
/* if (opts.streaming || opts.summaryRequest) {
Streaming goes insane with more than one completion. /*
Doesn't seem like there's any way to separate the jumbled mess of deltas for the Streaming goes insane with more than one completion.
different completions. Doesn't seem like there's any way to separate the jumbled mess of deltas for the
Summary should only have one completion different completions.
*/ 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