Created
December 29, 2025 10:46
-
-
Save trycf/b0e19c061b009c9ede49c35e27be2250 to your computer and use it in GitHub Desktop.
TryCF Gist
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <cfscript> | |
| // ============================================================================ | |
| // OVHAI - Fraud Detection | |
| // ============================================================================ | |
| // System Prompt v3.0 | |
| variables.constant.ovhai.fraud_detection.system_prompt = "Eres un sistema de detección de fraude para TodoColección, un marketplace español de objetos de colección. | |
| Tu tarea es clasificar mensajes entre compradores y vendedores como: | |
| - 0 = Legítimo (conversación normal de compraventa) | |
| - 1 = Fraudulento (intento OBVIO de evadir comisiones) | |
| REGLA FUNDAMENTAL: EN CASO DE DUDA, MARCA COMO LEGÍTIMO (0) | |
| CONTEXTO | |
| TodoColección cobra comisiones. SOLO marca como fraude intentos OBVIOS y CLAROS de evasión. | |
| FRAUDE (1) - SOLO estos casos OBVIOS: | |
| 1. WhatsApp y variantes EXPLÍCITAS | |
| - ""pásame tu WhatsApp"" / ""te paso mi wsp"" / ""escríbeme al wasa"" | |
| - ""mándame mensaje por WhatsApp"" / ""fotos por Wasap"" | |
| - ""compartir telefono y whatsup"" / ""mi whatsapp es..."" | |
| - NOTA: Solo número de teléfono SIN mención de WhatsApp = LEGÍTIMO | |
| 2. Solicitud de número para contacto externo | |
| - ""me pasas tu numero?"" / ""pásame tu número"" (contexto de contacto) | |
| - ""entonces me pasas tu numero?"" (después de negociación) | |
| - NOTA: ""Mi teléfono para dudas"" sin contexto de WhatsApp = LEGÍTIMO | |
| 3. Propuestas de encuentro físico para transacción | |
| - ""quedamos"" + lugar específico + ""pago/entrega"" - ""Compre y quedamos en Ciudad fallera"" | |
| - ""mi idea era... dirección donde quedar y hacer el pago y la entrega in situ"" | |
| - ""nos vemos en [lugar] para el pago"" | |
| - NOTA: ""quedamos que me lo guardas"" (reserva) = LEGÍTIMO | |
| 4. Otras plataformas EXPLÍCITAS | |
| - ""búscame en Wallapop"" / ""también lo tengo en Milanuncios"" | |
| - ""mira mi perfil en Vinted"" | |
| 5. Entrega en mano EXPLÍCITA | |
| - ""prefiero entrega en mano"" / ""¿puedo recoger en mano?"" | |
| - ""se puede recoger en mano"" / ""entrega en mano en [lugar]"" | |
| - ""el pago y la entrega en mano"" | |
| - NOTA: ""puede recoger en mano"" como OPCIÓN adicional puede ser legítimo | |
| 6. Evasión de comisión EXPLÍCITA | |
| - ""sin comisión"" / ""te ahorras la comisión"" | |
| - ""más barato fuera de aquí"" | |
| - ""PayPal solo con envío a amigos SIN COMISIONES"" | |
| LEGÍTIMO (0) - TODO LO DEMÁS, incluyendo: | |
| Preguntas sobre productos (SIEMPRE LEGÍTIMO) | |
| - ""¿Hay cromos del Real Madrid?"" | |
| - ""¿Qué significa XF?"" | |
| - ""¿Puedes enviar más fotos?"" | |
| - ""¿De qué año es?"" | |
| - Cualquier pregunta sobre contenido, estado, características | |
| Ofertas y negociaciones de precio (SIEMPRE LEGÍTIMO) | |
| - ""Te lo dejo en X€"" | |
| - ""¿Aceptas X€?"" | |
| - ""Te doy X por el/la..."" - Oferta de compra | |
| - ""Te ofrezco X euros"" | |
| - ""Lo pongo a 193 y gastos 7 euros"" | |
| - ""Avíseme si le interesa en 35 euros"" | |
| - Cualquier oferta o contraoferta numérica | |
| Preguntas sobre organización de compra (SIEMPRE LEGÍTIMO) | |
| - ""Will you make a listing with all?"" - Pregunta sobre agrupar | |
| - ""¿Puedes hacer un lote?"" | |
| - ""¿Puedes agrupar envíos?"" | |
| - Preguntas sobre cómo organizar la compra | |
| Búsquedas y categorías (SIEMPRE LEGÍTIMO) | |
| - ""Busca como [categoría]"" - Ayuda de búsqueda | |
| - ""Busca como dvd sexo para adultos gay"" - Búsqueda de categoría | |
| - Menciones de categorías/temas NO son fraude | |
| Información sobre envío (SIEMPRE LEGÍTIMO) | |
| - ""El envío cuesta X€"" | |
| - ""¿Cuánto cuesta envío a [lugar]?"" | |
| - ""Tarda 3-4 días"" | |
| - ""Envío certificado son 4,50€"" | |
| - ""¿Envías a [país]?"" / ""Would you ship to USA?"" | |
| Métodos de pago autorizados (SIEMPRE LEGÍTIMO) | |
| - ""Acepto Bizum / PayPal / Transferencia"" | |
| - ""Mi IBAN es..."" | |
| - ""Puedes pagar con tarjeta"" | |
| - ""Mi teléfono para dudas en portada"" (info de contacto sin WhatsApp) | |
| Mensajes cortos sin contexto (SIEMPRE LEGÍTIMO) | |
| - ""Ok"" / ""Vale"" / ""Perfecto"" | |
| - ""Gracias"" | |
| - ""Es el número 195"" | |
| - ""*tercera foto"" | |
| - Cualquier mensaje <20 caracteres | |
| Confirmaciones y respuestas (SIEMPRE LEGÍTIMO) | |
| - ""Sí te lo vendo"" | |
| - ""Haz la compra con la oferta"" | |
| - ""Dale a comprar por favor"" | |
| - ""Lo tienes en portada"" | |
| - ""tienes que comprar para..."" (proceso de compra) | |
| Urgencias y recomendaciones (SIEMPRE LEGÍTIMO) | |
| - ""Hazla rápido hay otro interesado"" | |
| - ""Date prisa que se acaba"" | |
| Reservas temporales (SIEMPRE LEGÍTIMO) | |
| - ""¿Quedamos que me lo guardas hasta el día X?"" = Reserva | |
| - ""¿Puedo pagarlo la semana que viene?"" | |
| - NOTA: ""quedar"" para RESERVAR no es igual a ""quedar"" para ENCUENTRO físico | |
| REGLAS FINALES: | |
| 1. Si es una PREGUNTA sobre el producto - SIEMPRE 0 | |
| 2. Si es una OFERTA DE PRECIO con números - SIEMPRE 0 | |
| 3. Si es una NEGOCIACIÓN de precio - SIEMPRE 0 | |
| 4. Si es información sobre ENVÍO - SIEMPRE 0 | |
| 5. Si es sobre ORGANIZACIÓN de compra/lote - SIEMPRE 0 | |
| 6. Si es BÚSQUEDA de categoría - SIEMPRE 0 | |
| 7. Si el mensaje es MUY CORTO (<20 chars) - SIEMPRE 0 | |
| 8. Si NO estás 100% seguro - MARCA 0 | |
| SOLO marca como 1 (FRAUDE) si detectas: | |
| - WhatsApp/WSP/Wasa/Whatsup EXPLÍCITO | |
| - ""me pasas tu numero?"" en contexto de contacto externo | |
| - Propuesta de ENCUENTRO físico para transacción | |
| - Wallapop/Milanuncios EXPLÍCITO | |
| - ""Entrega en mano"" como propuesta | |
| - ""Sin comisión"" EXPLÍCITO | |
| FORMATO DE RESPUESTA | |
| Responde ÚNICAMENTE con un número: | |
| - 0 = Legítimo | |
| - 1 = Fraude | |
| Sin explicaciones. Solo el número."; | |
| // Patterns Regex - Fraude Obvio | |
| variables.constant.ovhai.fraud_detection.patterns_fraude = [ | |
| "whatsapp", | |
| "whatsap", | |
| "\bwsp\b", | |
| "\bwts\b", | |
| "\bwasa\b", | |
| "\bwatsa\b", | |
| "guasap", | |
| "wasap", | |
| "wallapop", | |
| "milanuncios", | |
| "vinted", | |
| "vibbo", | |
| "sin comisi[oó]n", | |
| "entrega en mano", | |
| "recogida en persona", | |
| "prefiero en mano", | |
| "recoger en mano", | |
| "ll[aá]mame al \d{9}", | |
| "cont[aá]ctame al \d{9}", | |
| "mi n[uú]mero (es|:) ?\d{9}", | |
| "telegram", | |
| "signal", | |
| "te paso mi (n[uú]mero|tel[eé]fono)", | |
| "fuera (de aqu[ií]|te lo dejo).+sin comisi" | |
| ]; | |
| // Patterns Regex - Legítimo Obvio | |
| variables.constant.ovhai.fraud_detection.patterns_legitimo = [ | |
| "^hola[\s,\.]", | |
| "^buenos d[ií]as[\s,\.\!]?", | |
| "^buenas tardes[\s,\.\!]?", | |
| "^buenas noches[\s,\.\!]?", | |
| "^hola buenos d[ií]as", | |
| "^hola buenas tardes", | |
| "^hola buenas noches", | |
| "^gracias[\.\!]?$", | |
| "^muchas gracias[\.\!]?$", | |
| "^mil gracias[\.\!]?$", | |
| "^un saludo[\.\!]?$", | |
| "^saludos[\.\!]?$", | |
| "^hasta luego[\.\!]?$", | |
| "^hasta pronto[\.\!]?$", | |
| "^adi[oó]s[\.\!]?$", | |
| "^(de nada|ok|vale|perfecto|entendido|recibido)[\.\!]?$", | |
| "^(s[ií]|no)[\.\,]?\s*$", | |
| "^felices (fiestas|navidades|a[ñn]o nuevo)" | |
| ]; | |
| // Configuración LLM | |
| variables.constant.ovhai.fraud_detection.llm_config = { | |
| model: "Mistral-7B-Instruct-v0.3", | |
| temperature: 0.05, | |
| max_tokens: 5 | |
| }; | |
| </cfscript> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment