29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import {Command} from "../base/command";
|
|
import {Requirements} from "../base/requirements";
|
|
import {Requirement} from "../base/requirement";
|
|
import {Message} from "typescript-telegram-bot-api";
|
|
import {escapeHtml, logError, replyToMessage} from "../util/utils";
|
|
import {AiProvider} from "../model/ai-provider";
|
|
import {listProviderModels} from "../ai/provider-model-runtime";
|
|
import {Environment} from "../common/environment";
|
|
|
|
export class OpenAIListModels extends Command {
|
|
title = Environment.commandTitles.openAiListModels;
|
|
description = Environment.commandDescriptions.openAiListModels;
|
|
|
|
requirements = Requirements.Build(Requirement.BOT_CREATOR);
|
|
|
|
async execute(msg: Message): Promise<void> {
|
|
try {
|
|
const models = (await listProviderModels(AiProvider.OPENAI)).sort((a, b) => a.localeCompare(b));
|
|
const modelsString = escapeHtml(models.join("\n").substring(0, 4000));
|
|
const text = Environment.modelListHeaderText + "<blockquote expandable>" + modelsString + "</blockquote>";
|
|
|
|
await replyToMessage({message: msg, text, parse_mode: "HTML"});
|
|
} catch (e) {
|
|
logError(e);
|
|
await replyToMessage({message: msg, text: Environment.modelListLoadFailedText}).catch(logError);
|
|
}
|
|
}
|
|
}
|