Agrega transcripción de audio (Whisper) en Telegram y corrige adjuntos en tareas
- Nueva config "whisper" reutilizando /app/ai-config (credenciales/endpoint
validables) y servicio de transcripción compatible con OpenAI/Groq.
- El webhook de Telegram ahora detecta notas de voz/audio, las transcribe
y procesa el texto resultante como si el usuario lo hubiera escrito.
- Fix: subir un archivo adjunto en un comentario de tarea sin escribir
texto era rechazado por el backend ("contenido requerido") aunque el
frontend sí lo permitía.
This commit is contained in:
@@ -174,3 +174,23 @@ func GetAiConfigForService(service string) (*AiConfig, error) {
|
||||
log.Printf("[AI_CONFIG] No se encontró config para servicio '%s', usando cualquier activa", service)
|
||||
return &items[0], nil
|
||||
}
|
||||
|
||||
// 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ó
|
||||
// una explícitamente para whisper, es mejor avisar con claridad que intentar
|
||||
// transcribir contra un proveedor que no soporta ese endpoint (ej. Anthropic).
|
||||
func GetWhisperConfig() (*AiConfig, error) {
|
||||
var items []AiConfig
|
||||
if err := app.Http.Database.DB.Where("is_active = ?", true).Find(&items).Error; err != nil {
|
||||
return nil, fmt.Errorf("error leyendo ai_configs: %w", err)
|
||||
}
|
||||
for i := range items {
|
||||
for _, m := range SplitModulos(items[i].Modulo) {
|
||||
if m == "whisper" {
|
||||
return &items[i], nil
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("no hay ninguna configuración activa con el módulo 'whisper' en /app/ai-config")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user