Skip to content

Commit 7e8768e

Browse files
committed
support reasoning for openrouter
1 parent f21e56a commit 7e8768e

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/providers/openrouter/chatComplete.ts

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

1515
export const OpenrouterChatCompleteConfig: ProviderConfig = {
1616
model: {
@@ -82,6 +82,9 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
8282
},
8383
usage: {
8484
param: 'usage',
85+
transform: (params: Params) => {
86+
return transformUsageOptions(params);
87+
},
8588
},
8689
stream: {
8790
param: 'stream',
@@ -90,12 +93,7 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
9093
stream_options: {
9194
param: 'usage',
9295
transform: (params: Params) => {
93-
if (params.stream_options?.include_usage) {
94-
return {
95-
include: params.stream_options?.include_usage,
96-
};
97-
}
98-
return null;
96+
return transformUsageOptions(params);
9997
},
10098
},
10199
response_format: {

src/providers/openrouter/utils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import { Params } from '../../types/requestBody';
22

3+
interface OpenrouterUsageParam {
4+
include?: boolean;
5+
}
6+
37
interface OpenRouterParams extends Params {
48
reasoning?: OpenrouterReasoningParam;
59
}
@@ -17,3 +21,11 @@ export const transformReasoningParams = (params: OpenRouterParams) => {
1721
}
1822
return Object.keys(reasoning).length > 0 ? reasoning : null;
1923
};
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)