UNPKG

@convo-lang/convo-lang

Version:
37 lines 1.53 kB
import { httpClient } from "@iyio/common"; import { allConvoModelCapability } from "../convo-types.js"; import { openRouterAutoSelectModel, openRouterModel, openRouterModelPrefix } from "./open-router-lib.js"; let promiseValue = null; export const getOpenRouterModelsAsync = async () => { return await (promiseValue ?? (promiseValue = _getOpenRouterModelsAsync())); }; const _getOpenRouterModelsAsync = async () => { const models = (await httpClient().getAsync('https://openrouter.ai/api/v1/models'))?.data; const r = models?.map(m => ({ name: openRouterModelPrefix + m.id, description: m.description, contextWindowSize: m.context_length, inputCapabilities: (m.architecture.input_modalities .filter(i => allConvoModelCapability.includes(i))), outputCapabilities: (m.architecture.output_modalities .filter(i => allConvoModelCapability.includes(i))), inputTokenPriceUsd: Number(m.pricing.prompt) || 0, outputTokenPriceUsd: Number(m.pricing.completion) || 0, supportsChat: true, supportsFunctionCalling: true, supportsJsonMode: true, })) ?? []; const autoName = `${openRouterModelPrefix}openrouter/auto`; const auto = r?.find(m => m.name === autoName); if (auto) { r.push({ ...auto, name: openRouterAutoSelectModel, }, { ...auto, name: openRouterModel, }); } return r; }; //# sourceMappingURL=open-router-models.js.map