Backend v1.2.3

Cambio implementado:

Ahora el prompt del asistente configurado en la pregunta es el system prompt completo. El sistema solo agrega:

Contexto automático: Vehículo, OR, pregunta actual
Instrucciones técnicas básicas: No inventar datos, pedir valores técnicos cuando falten
Longitud de respuesta: Según configuración
Beneficios:

 Tu prompt de "Omar" funciona exactamente como lo escribiste
 Mantienes control total del comportamiento del asistente
 El sistema solo complementa con contexto, no reemplaza tu prompt
 Más flexible para diferentes tipos de asistentes (diagnóstico, checklist, inspección, etc.)
This commit is contained in:
2025-12-04 14:05:32 -03:00
parent 14d5027170
commit a1ab955556

View File

@@ -276,7 +276,7 @@ def extract_pdf_text_smart(pdf_content: bytes, max_chars: int = None) -> dict:
} }
BACKEND_VERSION = "1.2.2" BACKEND_VERSION = "1.2.3"
app = FastAPI(title="Checklist Inteligente API", version=BACKEND_VERSION) app = FastAPI(title="Checklist Inteligente API", version=BACKEND_VERSION)
# S3/MinIO configuration # S3/MinIO configuration
@@ -3541,36 +3541,31 @@ INFORMACIÓN DEL VEHÍCULO:
attached_context += f"\n{idx}. Imagen: {file_info['filename']}\n" attached_context += f"\n{idx}. Imagen: {file_info['filename']}\n"
# Construir el system prompt # Construir el system prompt
base_prompt = assistant_prompt or "Eres un experto mecánico automotriz que ayuda a diagnosticar problemas." # Si hay assistant_prompt en la pregunta, úsalo como base principal
if assistant_prompt:
base_prompt = assistant_prompt
else:
base_prompt = "Eres un experto mecánico automotriz que ayuda a diagnosticar problemas."
system_prompt = f"""INSTRUCCIONES CRÍTICAS ANTI-ALUCINACIÓN (MÁXIMA PRIORIDAD): # Agregar instrucciones anti-alucinación y contexto al prompt del usuario
Estas reglas SIEMPRE tienen prioridad sobre cualquier otra instrucción: system_prompt = f"""{base_prompt}
1. PRIMERO mira la imagen/documento y DESCRIBE LITERALMENTE lo que ves
2. VERIFICA si hay texto/logos/marcas visibles (ej: "TEXA", "Bosch", "ESI[tronic]")
3. Si la imagen muestra un analizador de gases (con mediciones CO, CO₂, HC, NOₓ, O₂, Lambda), NO ES un informe de códigos DTC
4. Si la imagen muestra una pantalla con códigos tipo "P0XXX" o "1XXXX", SÍ ES un informe de diagnóstico DTC
5. NUNCA inventes información que no esté visible en la imagen
6. Si lo que ves NO coincide con lo que el usuario pregunta, DÍSELO INMEDIATAMENTE
{base_prompt}
CONTEXTO DEL VEHÍCULO Y PREGUNTA:
{vehicle_context} {vehicle_context}
{photos_context} {photos_context}
{attached_context} {attached_context}
INSTRUCCIONES ADICIONALES: INSTRUCCIONES TÉCNICAS DEL SISTEMA:
{assistant_instructions if assistant_instructions else "Sé técnico, claro y directo en tus respuestas."} - Basa tus respuestas SOLO en la información visible en documentos/imágenes enviadas
- Si necesitas datos técnicos (valores nominales, rangos de fabricante), pídelos explícitamente
- No inventes códigos DTC, voltajes, presiones ni valores que no estén visibles
- Si hay discrepancia entre lo que ves y lo que te preguntan, señálalo
FORMATO DE RESPUESTA OBLIGATORIO: {assistant_instructions if assistant_instructions else ""}
1. [IDENTIFICACIÓN] Qué tipo de documento/imagen es esto (describe lo que VES, no lo que asumes)
2. [VERIFICACIÓN] ¿Coincide con lo que el usuario pregunta? Si NO, indícalo
3. [ANÁLISIS] Basado ÚNICAMENTE en información visible
4. [RECOMENDACIÓN] Pasos siguientes o información que necesitas
Longitud: {response_length} Longitud de respuesta: {response_length}
""" """
# Construir el historial de mensajes para la IA # Construir el historial de mensajes para la IA