|
|
@@ -14,15 +14,15 @@ const openRouterEndpointsSchema = z.object({
|
|
|
description: z.string().optional(),
|
|
|
architecture: z
|
|
|
.object({
|
|
|
- modality: z.string().optional(),
|
|
|
- tokenizer: z.string().optional(),
|
|
|
+ modality: z.string().nullish(),
|
|
|
+ tokenizer: z.string().nullish(),
|
|
|
})
|
|
|
- .optional(),
|
|
|
+ .nullish(),
|
|
|
endpoints: z.array(
|
|
|
z.object({
|
|
|
name: z.string(),
|
|
|
context_length: z.number(),
|
|
|
- max_completion_tokens: z.number().optional(),
|
|
|
+ max_completion_tokens: z.number().nullish(),
|
|
|
pricing: z
|
|
|
.object({
|
|
|
prompt: z.union([z.string(), z.number()]).optional(),
|
|
|
@@ -58,7 +58,7 @@ async function getOpenRouterProvidersForModel(modelId: string) {
|
|
|
const outputPrice = parseApiPrice(endpoint.pricing?.completion)
|
|
|
|
|
|
const modelInfo: OpenRouterModelProvider = {
|
|
|
- maxTokens: endpoint.max_completion_tokens,
|
|
|
+ maxTokens: endpoint.max_completion_tokens || endpoint.context_length,
|
|
|
contextWindow: endpoint.context_length,
|
|
|
supportsImages: architecture?.modality?.includes("image"),
|
|
|
supportsPromptCache: false,
|