From dcffab4311031275238fb1c8119d4faa1be23f30 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 17 Aug 2026 21:08:17 -0500 Subject: [PATCH] =?UTF-8?q?feat(plantillas):=20poder=20elegir=20qu=C3=A9?= =?UTF-8?q?=20modelo=20usa=20"Leer=20con=20IA"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convertir un documento entero en plantilla pide un modelo más capaz que el resto de las tareas, pero salía por el módulo "IA / vCard", compartido con la integración de vCard: subir el modelo ahí es subírselo a todo. Ahora hay un módulo "Plantillas de documento" en /app/ai-config. Si alguna config activa lo declara, la importación usa esa; si no, sigue saliendo por "ia" exactamente como hasta ahora. Nadie tiene que configurar nada para que siga funcionando. La pantalla de plantillas aclara además que esto no usa un agente de uMind y adónde ir a cambiar el modelo, que era la duda. Co-Authored-By: Claude Opus 5 --- pkg/models/ai_config.go | 19 +++++++++++++++++++ pkg/services/plantilla_import_service.go | 13 ++++++++++++- resources/views/ai_config.html | 1 + .../automatizacion/plantillas_documento.html | 5 +++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/pkg/models/ai_config.go b/pkg/models/ai_config.go index 82e25ff..83ce715 100644 --- a/pkg/models/ai_config.go +++ b/pkg/models/ai_config.go @@ -235,6 +235,25 @@ func GetAiConfigForService(service string) (*AiConfig, error) { return &items[0], nil } +// HayAiConfigParaModulo dice si alguna config activa declara ese módulo. +// Sirve para elegir un módulo propio solo cuando el admin lo configuró, y si no +// caer al que se venía usando — GetAiConfigForService no lo distingue porque +// tiene fallback a la global y a cualquier activa. +func HayAiConfigParaModulo(modulo string) bool { + var items []AiConfig + if err := app.Http.Database.DB.Where("is_active = ?", true).Find(&items).Error; err != nil { + return false + } + for i := range items { + for _, m := range SplitModulos(items[i].Modulo) { + if m == modulo { + return true + } + } + } + return false +} + // GetWhisperConfig retorna la config de IA activa etiquetada específicamente con // el módulo "whisper" (transcripción de audio). A diferencia de // GetAiConfigForService, NO cae a una config global: si el admin no configuró diff --git a/pkg/services/plantilla_import_service.go b/pkg/services/plantilla_import_service.go index 149cc56..a1e56b6 100644 --- a/pkg/services/plantilla_import_service.go +++ b/pkg/services/plantilla_import_service.go @@ -3,6 +3,8 @@ package services import ( "fmt" "strings" + + "github.com/sujit-baniya/fiber-boilerplate/pkg/models" ) // variablesPorTipo documenta, para la IA, qué campos recibe cada plantilla al @@ -59,7 +61,16 @@ Documento de referencia: %s ---`, tipo, variablesComunes, vars, textoDocumento) - salida, err := CompletarTextoIA("ia", sistema, usuario) + // Si el admin asignó una config al módulo "plantillas" se usa esa; si no, + // sigue saliendo por "ia" como hasta ahora. Convertir un documento entero + // pide un modelo más capaz que el resto de las tareas, y esto deja + // elegirlo sin tocar lo que ya usa la vCard. + modulo := "ia" + if models.HayAiConfigParaModulo("plantillas") { + modulo = "plantillas" + } + + salida, err := CompletarTextoIA(modulo, sistema, usuario) if err != nil { return "", err } diff --git a/resources/views/ai_config.html b/resources/views/ai_config.html index e59488b..a2f9972 100644 --- a/resources/views/ai_config.html +++ b/resources/views/ai_config.html @@ -294,6 +294,7 @@ function aiConfigApp() { { value: 'landing', label: 'Landing Generator' }, { value: 'query_runner', label: 'Query Runner SQL' }, { value: 'ia', label: 'IA / vCard' }, + { value: 'plantillas', label: 'Plantillas de documento (importar con IA)' }, { value: 'whisper', label: 'Transcripción de audio (Whisper)' }, { value: 'umind_embeddings', label: 'uMind — embeddings (RAG del widget)' }, ], diff --git a/resources/views/automatizacion/plantillas_documento.html b/resources/views/automatizacion/plantillas_documento.html index bfddd33..8b8410d 100644 --- a/resources/views/automatizacion/plantillas_documento.html +++ b/resources/views/automatizacion/plantillas_documento.html @@ -96,6 +96,11 @@ Subí el archivo (PDF, Word .docx, .html, .txt o una foto/captura del documento) y la IA lo devuelve armado como plantilla, con las variables puestas. Después lo editás acá abajo antes de guardar.

+

+ No usa un agente: esto no conversa ni consulta una base de conocimiento, convierte el documento y listo. + El modelo sale de Configuración de IA — asignale el módulo + Plantillas de documento a la config que quieras usar acá, o dejalo sin asignar y usa la de IA / vCard. +