@@ -176,15 +176,15 @@ export class PerplexityLanguageModel implements LanguageModelV1 {
176
176
toolCalls : [ ] ,
177
177
finishReason : mapPerplexityFinishReason ( choice . finish_reason ) ,
178
178
usage : {
179
- promptTokens : response . usage . prompt_tokens ,
180
- completionTokens : response . usage . completion_tokens ,
179
+ promptTokens : response . usage ? .prompt_tokens ?? Number . NaN ,
180
+ completionTokens : response . usage ? .completion_tokens ?? Number . NaN ,
181
181
} ,
182
182
rawCall : { rawPrompt, rawSettings } ,
183
183
rawResponse : { headers : responseHeaders , body : rawResponse } ,
184
184
request : { body : JSON . stringify ( args ) } ,
185
185
response : getResponseMetadata ( response ) ,
186
186
warnings,
187
- sources : response . citations . map ( url => ( {
187
+ sources : response . citations ? .map ( url => ( {
188
188
sourceType : 'url' ,
189
189
id : this . config . generateId ( ) ,
190
190
url,
@@ -199,8 +199,8 @@ export class PerplexityLanguageModel implements LanguageModelV1 {
199
199
width : image . width ,
200
200
} ) ) ?? null ,
201
201
usage : {
202
- citationTokens : response . usage . citation_tokens ?? null ,
203
- numSearchQueries : response . usage . num_search_queries ?? null ,
202
+ citationTokens : response . usage ? .citation_tokens ?? null ,
203
+ numSearchQueries : response . usage ? .num_search_queries ?? null ,
204
204
} ,
205
205
} ,
206
206
} ,
@@ -397,12 +397,12 @@ const perplexityResponseSchema = z.object({
397
397
role : z . literal ( 'assistant' ) ,
398
398
content : z . string ( ) ,
399
399
} ) ,
400
- finish_reason : z . string ( ) ,
400
+ finish_reason : z . string ( ) . nullish ( ) ,
401
401
} ) ,
402
402
) ,
403
- citations : z . array ( z . string ( ) ) ,
403
+ citations : z . array ( z . string ( ) ) . nullish ( ) ,
404
404
images : z . array ( perplexityImageSchema ) . nullish ( ) ,
405
- usage : perplexityUsageSchema ,
405
+ usage : perplexityUsageSchema . nullish ( ) ,
406
406
} ) ;
407
407
408
408
// limited version of the schema, focussed on what is needed for the implementation
0 commit comments