feat: add commands to list and set image models in AI service

This commit is contained in:
2025-10-04 04:07:12 -05:00
parent 2d938c92ab
commit 7bbba7afb2
3 changed files with 318 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import { CommandMessage } from "../../../core/types/commands";
import { aiService } from "../../../core/services/AIService";
import logger from "../../../core/lib/logger";
export const command: CommandMessage = {
name: 'aimodels',
type: 'message',
aliases: ['listmodels'],
cooldown: 10,
description: 'Lista modelos de imagen disponibles y muestra el actual.',
category: 'IA',
usage: 'aimodels',
run: async (message, args) => {
try {
const models = await aiService.listImageModels();
const current = (aiService as any).imageModelName || 'No detectado';
if (models.length === 0) {
await message.reply({
content: `**Modelos de imagen disponibles:** Ninguno detectado
**Modelo actual:** ${current}
Para usar un modelo específico:
\`GENAI_IMAGE_MODEL=imagen-3.0-fast\``
});
return;
}
const modelList = models.map(m => `${m}`).join('\n');
await message.reply({
content: `**Modelos de imagen disponibles:**
${modelList}
**Modelo actual:** ${current}
Para cambiar: \`GENAI_IMAGE_MODEL=nombre_del_modelo\``
});
} catch (error: any) {
logger.error(error, 'Error listando modelos');
await message.reply({ content: `❌ Error: ${error?.message || 'Error desconocido'}` });
}
}
};

View File

@@ -0,0 +1,33 @@
import { CommandMessage } from "../../../core/types/commands";
import { aiService } from "../../../core/services/AIService";
import logger from "../../../core/lib/logger";
export const command: CommandMessage = {
name: 'setimagemodel',
type: 'message',
aliases: ['setmodel'],
cooldown: 5,
description: 'Establece el modelo de imágenes manualmente.',
category: 'IA',
usage: 'setimagemodel <modelo>',
run: async (message, args) => {
try {
if (!args || args.length === 0) {
await message.reply({
content: 'Uso: setimagemodel <modelo>\nEjemplo: setimagemodel imagen-3.0-fast'
});
return;
}
const model = args.join(' ').trim();
(aiService as any).setImageModel(model);
await message.reply({
content: `✅ Modelo de imágenes establecido: \`${model}\`\nPrueba con: \`aiimg un gato astronauta\``
});
} catch (error: any) {
logger.error(error, 'Error estableciendo modelo');
await message.reply({ content: `❌ Error: ${error?.message || 'Error desconocido'}` });
}
}
};