max token is now dynamically handle for each model

This commit is contained in:
Raiyan Hasan
2024-11-20 21:41:51 +05:30
parent d41a0ac2c2
commit eabfbb2220
4 changed files with 77 additions and 66 deletions

View File

@@ -1,5 +1,5 @@
// see https://docs.anthropic.com/en/docs/about-claude/models
export const MAX_TOKENS = 4096;
export const MAX_TOKENS = 8000;
// limits the number of model responses that can be returned in a single request
export const MAX_RESPONSE_SEGMENTS = 2;

View File

@@ -41,10 +41,9 @@ function extractPropertiesFromMessage(message: Message): { model: string; provid
return { model, provider, content: cleanedContent };
}
export function streamText(
messages: Messages,
env: Env,
messages: Messages,
env: Env,
options?: StreamingOptions,
apiKeys?: Record<string, string>
) {
@@ -64,13 +63,21 @@ export function streamText(
return { ...message, content };
}
return message; // No changes for non-user messages
return message;
});
const modelDetails = MODEL_LIST.find((m) => m.name === currentModel);
const dynamicMaxTokens =
modelDetails && modelDetails.maxTokenAllowed
? Math.min(MAX_TOKENS, modelDetails.maxTokenAllowed)
: MAX_TOKENS;
console.log(dynamicMaxTokens)
return _streamText({
model: getModel(currentProvider, currentModel, env, apiKeys),
system: getSystemPrompt(),
maxTokens: MAX_TOKENS,
maxTokens: dynamicMaxTokens,
messages: convertToCoreMessages(processedMessages),
...options,
});