Skip to content

Commit 1460b91

Browse files
committed
sdk: extract metadata for generateObject and generateText
1 parent ac3b621 commit 1460b91

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

scripts/fat-sdk-openrouter-example.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
VERSION,
66
} from '@ai-sdk/openai-compatible'
77
import { websiteUrl } from '@codebuff/npm-app/config'
8-
import { streamText } from 'ai'
8+
import { generateText } from 'ai'
99

1010
const apiKey = '12345'
1111

@@ -21,7 +21,8 @@ const codebuffBackendModel = new OpenAICompatibleChatLanguageModel(
2121
}),
2222
metadataExtractor: {
2323
extractMetadata: async (...inputs) => {
24-
console.log(inputs, 'extractMetadata')
24+
console.dir({ extractMetadata: inputs }, { depth: null })
25+
2526
return undefined
2627
},
2728
createStreamExtractor: () => ({
@@ -43,10 +44,9 @@ const codebuffBackendModel = new OpenAICompatibleChatLanguageModel(
4344
},
4445
)
4546

46-
const response = streamText({
47-
// const response = await streamText({
48-
// const response = await generateText({
49-
// model: codebuffBackendProvider('openai/gpt-5'),
47+
// const response = streamText({
48+
// const response = await generateObject({
49+
const response = await generateText({
5050
model: codebuffBackendModel,
5151
messages: [
5252
{
@@ -82,6 +82,7 @@ const response = streamText({
8282
},
8383
})
8484

85-
for await (const chunk of response.fullStream) {
86-
console.dir({ chunk }, { depth: null })
87-
}
85+
// for await (const chunk of response.fullStream) {
86+
// console.dir({ chunk }, { depth: null })
87+
// }
88+
console.log(response.text)

sdk/src/impl/llm.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,18 @@ function getAiSdkModel(params: {
6666
'user-agent': `ai-sdk/openai-compatible/${VERSION}/codebuff`,
6767
}),
6868
metadataExtractor: {
69-
extractMetadata: async (...inputs) => {
70-
console.log(inputs, 'extractMetadata')
71-
return undefined
69+
extractMetadata: async ({ parsedBody }: { parsedBody: any }) => {
70+
if (typeof parsedBody?.usage?.cost === 'number') {
71+
openrouterUsage.cost = parsedBody.usage.cost
72+
}
73+
if (
74+
typeof parsedBody?.usage?.cost_details?.upstream_inference_cost ===
75+
'number'
76+
) {
77+
openrouterUsage.cost =
78+
parsedBody.usage.cost_details.upstream_inference_cost
79+
}
80+
return { codebuff: { usage: openrouterUsage } }
7281
},
7382
createStreamExtractor: () => ({
7483
processChunk: (parsedChunk: any) => {

0 commit comments

Comments
 (0)