@convo-lang/convo-lang
Version:
The language of AI
37 lines • 1.53 kB
JavaScript
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