30 lines
1.2 KiB
TypeScript
30 lines
1.2 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 {logError, replyToMessage} from "../util/utils";
|
|
import {AiProvider} from "../model/ai-provider";
|
|
import {getRuntimeModel, setRuntimeModel, formatRuntimeModelInfo} from "../ai/provider-model-runtime";
|
|
import {Environment} from "../common/environment";
|
|
|
|
export class GeminiSetModel extends Command {
|
|
argsMode = "required" as const;
|
|
|
|
title = Environment.commandTitles.geminiSetModel;
|
|
description = Environment.commandDescriptions.geminiSetModel;
|
|
|
|
requirements = Requirements.Build(Requirement.BOT_CREATOR);
|
|
|
|
async execute(msg: Message, match?: RegExpExecArray | null): Promise<void> {
|
|
const newModel = match?.[3]?.trim();
|
|
if (newModel) setRuntimeModel(AiProvider.GEMINI, newModel);
|
|
|
|
const model = getRuntimeModel(AiProvider.GEMINI);
|
|
const text = newModel
|
|
? Environment.getSelectedModelWithInfoText(model, await formatRuntimeModelInfo(AiProvider.GEMINI))
|
|
: Environment.getModelIsNotSetCurrentText(model);
|
|
|
|
await replyToMessage({message: msg, text}).catch(logError);
|
|
}
|
|
}
|