mirror of
https://github.com/HeyPuter/puter.git
synced 2026-09-23 13:46:11 +00:00
Retry for openrouter on max_tokens overage (#2274)
This commit is contained in:
+18
-2
@@ -84,7 +84,7 @@ export class OpenRouterProvider implements IChatProvider {
|
||||
|
||||
messages = await OpenAIUtil.process_input_messages(messages);
|
||||
|
||||
const completion = await this.#openai.chat.completions.create({
|
||||
const completionParams = {
|
||||
messages,
|
||||
model: modelIdForParams,
|
||||
...(tools ? { tools } : {}),
|
||||
@@ -95,7 +95,23 @@ export class OpenRouterProvider implements IChatProvider {
|
||||
stream_options: { include_usage: true },
|
||||
} : {}),
|
||||
usage: { include: true },
|
||||
} as ChatCompletionCreateParams);
|
||||
} as ChatCompletionCreateParams;
|
||||
|
||||
let completion;
|
||||
try {
|
||||
completion = await this.#openai.chat.completions.create(completionParams);
|
||||
} catch ( e: any ) {
|
||||
// If you overestimate allowed max_tokens on openrouter then it will throw an error.
|
||||
// Since we know the user has enough for the query anyways, we should reexecute the
|
||||
// request without max_tokens.
|
||||
if ( e && e.error && e.error.message && e.error.message.startsWith("This endpoint's maximum context length is ") ) {
|
||||
delete completionParams.max_tokens;
|
||||
completion = await this.#openai.chat.completions.create(completionParams);
|
||||
} else {
|
||||
console.log('Openarouter error: ', e.error.message);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
return OpenAIUtil.handle_completion_output({
|
||||
usage_calculator: ({ usage }) => {
|
||||
|
||||
Reference in New Issue
Block a user