Skip to content

Commit 598ab6f

Browse files
authored
Merge pull request #1280 from narengogi/chore/openrouter-reasoning
fix params for openrouter reasoning
2 parents fdf04b9 + 177713c commit 598ab6f

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

src/providers/openrouter/chatComplete.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
generateErrorResponse,
1111
generateInvalidProviderResponseError,
1212
} from '../utils';
13+
import { transformReasoningParams, transformUsageOptions } from './utils';
1314

1415
export const OpenrouterChatCompleteConfig: ProviderConfig = {
1516
model: {
@@ -48,6 +49,15 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
4849
},
4950
reasoning: {
5051
param: 'reasoning',
52+
transform: (params: Params) => {
53+
return transformReasoningParams(params);
54+
},
55+
},
56+
reasoning_effort: {
57+
param: 'reasoning',
58+
transform: (params: Params) => {
59+
return transformReasoningParams(params);
60+
},
5161
},
5262
top_p: {
5363
param: 'top_p',
@@ -72,11 +82,20 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
7282
},
7383
usage: {
7484
param: 'usage',
85+
transform: (params: Params) => {
86+
return transformUsageOptions(params);
87+
},
7588
},
7689
stream: {
7790
param: 'stream',
7891
default: false,
7992
},
93+
stream_options: {
94+
param: 'usage',
95+
transform: (params: Params) => {
96+
return transformUsageOptions(params);
97+
},
98+
},
8099
response_format: {
81100
param: 'response_format',
82101
},

src/providers/openrouter/utils.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { Params } from '../../types/requestBody';
2+
3+
interface OpenrouterUsageParam {
4+
include?: boolean;
5+
}
6+
7+
interface OpenRouterParams extends Params {
8+
reasoning?: OpenrouterReasoningParam;
9+
}
10+
11+
type OpenrouterReasoningParam = {
12+
effort?: 'low' | 'medium' | 'high' | string;
13+
max_tokens?: number;
14+
exclude?: boolean;
15+
};
16+
17+
export const transformReasoningParams = (params: OpenRouterParams) => {
18+
let reasoning: OpenrouterReasoningParam = { ...params.reasoning };
19+
if (params.reasoning_effort) {
20+
reasoning.effort = params.reasoning_effort;
21+
}
22+
return Object.keys(reasoning).length > 0 ? reasoning : null;
23+
};
24+
25+
export const transformUsageOptions = (params: OpenRouterParams) => {
26+
let usage: OpenrouterUsageParam = { ...params.usage };
27+
if (params.stream_options?.include_usage) {
28+
usage.include = params.stream_options?.include_usage;
29+
}
30+
return Object.keys(usage).length > 0 ? usage : null;
31+
};

0 commit comments

Comments
 (0)