mono/packages/kbot/src/commands/fetch.ts
2025-02-20 18:22:14 +01:00

35 lines
1.2 KiB
TypeScript

import path from 'path'
import { sync as write } from '@polymech/fs/write'
import { logger, module_root } from '..'
import { fetchOpenAIModels } from '../models/openai'
import { fetchOpenRouterModels } from '../models/openrouter'
import { CONFIG_DEFAULT } from '@polymech/osr-commons'
export const fetch = async () => {
const config = CONFIG_DEFAULT() as any
if (config.openai && config.openai.key) {
const modelsOpenAI = await fetchOpenAIModels(config.openai.key)
if (modelsOpenAI) {
const modelsOpenAIPath = path.resolve(module_root(), 'openai.json')
write(modelsOpenAIPath, modelsOpenAI)
logger.info(`Fetched ${modelsOpenAI.length} OpenAI models, to ${modelsOpenAIPath}`)
} else {
logger.error(`Failed to fetch OpenAI models`)
}
}
const modelsOpenRouter = (await fetchOpenRouterModels()).map((model) => {
return {
id: model.id,
name: model.name,
pricing: model.pricing,
context: model.context,
created: model.created
}
})
const modelsOpenRouterPath = path.resolve(module_root(), 'openrouter.json')
write(modelsOpenRouterPath, modelsOpenRouter)
logger.info(`Fetched ${modelsOpenRouter.length} OpenRouter models, to ${modelsOpenRouterPath}`)
}