Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 7x 1x 1x 2x 7x 14x | import { OpenAIProvider } from "../openai/OpenAIProvider.js";
import { OpenRouterCapabilities } from "./Capabilities.js";
export interface OpenRouterProviderOptions {
apiKey: string;
baseUrl?: string;
}
export class OpenRouterProvider extends OpenAIProvider {
public capabilities = {
supportsVision: (model: string) => OpenRouterCapabilities.supportsVision(model),
supportsTools: (model: string) => OpenRouterCapabilities.supportsTools(model),
supportsStructuredOutput: (model: string) =>
OpenRouterCapabilities.supportsStructuredOutput(model),
supportsEmbeddings: (model: string) => OpenRouterCapabilities.supportsEmbeddings(model),
supportsImageGeneration: (model: string) =>
OpenRouterCapabilities.supportsImageGeneration(model),
supportsTranscription: (model: string) => OpenRouterCapabilities.supportsTranscription(model),
supportsModeration: (model: string) => OpenRouterCapabilities.supportsModeration(model),
supportsReasoning: (model: string) => OpenRouterCapabilities.supportsReasoning(model),
supportsDeveloperRole: (_model: string) => true,
getContextWindow: (model: string) => OpenRouterCapabilities.getContextWindow(model) || null
};
constructor(options: OpenRouterProviderOptions) {
super({
apiKey: options.apiKey,
baseUrl: options.baseUrl || "https://openrouter.ai/api/v1"
});
}
protected providerName(): string {
return "OpenRouter";
}
}
|