Versiones Actualizadas

Backend: 1.2.12 → 1.2.13
Frontend: 1.3.8 → 1.3.9
💡 Beneficios
Mejor UX: El mecánico no ve un chat vacío, sino orientación inmediata
Contextualizado: El asistente menciona lo que ya conoce de la inspección
Guía clara: Indica qué puede hacer el asistente según las instrucciones configuradas
Eficiente: Solo se genera una vez por sesión de chat
This commit is contained in:
2025-12-08 16:26:59 -03:00
parent b3c0030a52
commit 27763bf155
5 changed files with 171 additions and 8 deletions

View File

@@ -278,7 +278,7 @@ def extract_pdf_text_smart(pdf_content: bytes, max_chars: int = None) -> dict:
}
BACKEND_VERSION = "1.2.12"
BACKEND_VERSION = "1.2.13"
app = FastAPI(title="Checklist Inteligente API", version=BACKEND_VERSION)
# S3/MinIO configuration
@@ -3453,6 +3453,11 @@ async def chat_with_ai_assistant(
print(f"📝 Context answers: {len(context_answers_list)} respuestas previas")
print(f"💭 Chat history: {len(chat_history_list)} mensajes previos")
# Detectar si es el mensaje inicial de bienvenida
is_initial_greeting = (user_message == "__INITIAL_GREETING__")
if is_initial_greeting:
print("🎉 MENSAJE INICIAL DE BIENVENIDA")
# Procesar archivos adjuntos
attached_files_data = []
if files:
@@ -3564,6 +3569,36 @@ INFORMACIÓN DEL VEHÍCULO:
if observations:
answers_context += f" Observaciones: {observations}\n"
# Si es mensaje inicial, generar saludo contextualizado
if is_initial_greeting:
greeting_parts = ["¡Hola! Soy tu Asistente Ayutec."]
# Mencionar instrucciones específicas si existen
if assistant_instructions:
greeting_parts.append(f"\n\n{assistant_instructions}")
elif assistant_prompt:
greeting_parts.append(f"\n\nEstoy aquí para ayudarte con: {assistant_prompt}")
# Mencionar contexto disponible
context_info = []
if context_answers_list:
context_info.append(f"{len(context_answers_list)} respuestas anteriores")
if context_photos_list:
context_info.append(f"{len(context_photos_list)} fotografías")
if context_info:
greeting_parts.append(f"\n\nHe analizado {' y '.join(context_info)} de esta inspección del vehículo {vehicle_info_dict.get('brand', '')} {vehicle_info_dict.get('model', '')} (Placa: {vehicle_info_dict.get('plate', '')}).")
# Pregunta específica o solicitud de información
if assistant_prompt:
greeting_parts.append("\n\n¿Qué información necesitas o deseas que analice?")
else:
greeting_parts.append("\n\n¿En qué puedo ayudarte con esta inspección?")
# Reemplazar el mensaje especial con el saludo generado
user_message = "".join(greeting_parts)
print(f"✅ Mensaje de bienvenida generado: {user_message[:100]}...")
# Definir la longitud de respuesta
max_tokens_map = {
'short': 200,