commands: switch AI commands to unified runtime

This commit is contained in:
2026-05-10 22:53:22 +03:00
parent 1b94760b21
commit 3d14e3c0d5
24 changed files with 465 additions and 3580 deletions
+12 -21
View File
@@ -2,36 +2,27 @@ import {Command} from "../base/command";
import {Requirements} from "../base/requirements";
import {Requirement} from "../base/requirement";
import {Message} from "typescript-telegram-bot-api";
import {openAi} from "../index";
import {logError, replyToMessage} from "../util/utils";
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 = "/openAIListModels";
description = "List all OpenAI models";
title = Environment.commandTitles.openAiListModels;
description = Environment.commandDescriptions.openAiListModels;
requirements = Requirements.Build(Requirement.BOT_CREATOR);
async execute(msg: Message): Promise<void> {
try {
const listResponse = await openAi.models.list();
console.log(listResponse);
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>";
const modelsString = listResponse.data
.map(e => `${e.id}`)
.sort((a, b) => a.localeCompare(b))
.join("\n")
.substring(0, 4000);
const text = "Доступные модели:\n\n" + "<blockquote expandable>" + modelsString + "</blockquote>";
await replyToMessage({
message: msg,
text: text,
parse_mode: "HTML"
});
await replyToMessage({message: msg, text, parse_mode: "HTML"});
} catch (e) {
logError(e);
await replyToMessage({message: msg, text: "Не получилось загрузить список моделей"}).catch(logError);
await replyToMessage({message: msg, text: Environment.modelListLoadFailedText}).catch(logError);
}
}
}
}