✅ 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:
@@ -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)
|
||||
|
||||
# S3/MinIO configuration
|
||||
@@ -3541,36 +3541,31 @@ INFORMACIÓN DEL VEHÍCULO:
|
||||
attached_context += f"\n{idx}. Imagen: {file_info['filename']}\n"
|
||||
|
||||
# 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):
|
||||
Estas reglas SIEMPRE tienen prioridad sobre cualquier otra instrucción:
|
||||
|
||||
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}
|
||||
# Agregar instrucciones anti-alucinación y contexto al prompt del usuario
|
||||
system_prompt = f"""{base_prompt}
|
||||
|
||||
CONTEXTO DEL VEHÍCULO Y PREGUNTA:
|
||||
{vehicle_context}
|
||||
|
||||
{photos_context}
|
||||
|
||||
{attached_context}
|
||||
|
||||
INSTRUCCIONES ADICIONALES:
|
||||
{assistant_instructions if assistant_instructions else "Sé técnico, claro y directo en tus respuestas."}
|
||||
INSTRUCCIONES TÉCNICAS DEL SISTEMA:
|
||||
- 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:
|
||||
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
|
||||
{assistant_instructions if assistant_instructions else ""}
|
||||
|
||||
Longitud: {response_length}
|
||||
Longitud de respuesta: {response_length}
|
||||
"""
|
||||
|
||||
# Construir el historial de mensajes para la IA
|
||||
|
||||
Reference in New Issue
Block a user