Propuesta IA: aflojar las restricciones que peleaban con una respuesta honesta
Medicion de 3 vueltas mas contra datos reales. El aplanado del commit anterior NO redujo los reintentos: subieron de 3 a 10. Se mantiene porque quitar ese nivel es correcto de todos modos, pero no cumplio su proposito. Lo que si salio de esa medicion son dos restricciones mias que provocaban el rechazo: - min(5) en los textos de materiales, decisiones, menciones y red flags. Con una transcripcion pobre no hay nada que listar, asi que el modelo mete "N/A" o un guion para rellenar y falla. Ocurrio 4 veces SEGUIDAS en una vuelta. Baja a min(3), y el prompt ahora dice explicitamente que devolver el array vacio es la respuesta correcta y que no rellene. - beneficios.etiqueta.max(40) se pasaba en 2 de 3 vueltas. Sube a 70. Es el mismo patron que el tope de 40 partidas: el schema peleandose con la realidad, no el modelo fallando. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
0c127b44c4
commit
3a1eaf6e5b
@@ -158,6 +158,8 @@ Reglas de este paso:
|
||||
ser "por_validar".
|
||||
- En quienLoDijo usa el ROL ("el socio", "quien atiende el WhatsApp"), no el nombre
|
||||
propio, salvo que sea el interlocutor comercial.
|
||||
- Si de alguna de estas listas no hay NADA que decir, devuelvela VACIA. Un array vacio
|
||||
es la respuesta correcta; no metas "N/A", "ninguno" ni un guion para rellenar.
|
||||
- En redFlags anota lo que deberia preocuparle al asesor: que pidan descuento antes de
|
||||
entender el alcance, que no este presente quien decide, que no haya ninguna cifra del
|
||||
problema, o un "hagan todo y luego vemos".`;
|
||||
|
||||
@@ -47,14 +47,14 @@ export const hechosSchema = z
|
||||
)
|
||||
.max(40),
|
||||
materialesPendientes: z
|
||||
.array(z.object({ texto: z.string().min(5), bloqueaEntrega: z.boolean() }))
|
||||
.array(z.object({ texto: z.string().min(3), bloqueaEntrega: z.boolean() }))
|
||||
.max(15),
|
||||
decisionesPendientes: z
|
||||
.array(z.object({ texto: z.string().min(5), quienDecide: z.string() }))
|
||||
.array(z.object({ texto: z.string().min(3), quienDecide: z.string() }))
|
||||
.max(15),
|
||||
mencionesFueraDeAlcance: z.array(z.string().min(5)).max(15),
|
||||
mencionesFueraDeAlcance: z.array(z.string().min(3)).max(15),
|
||||
redFlags: z
|
||||
.array(z.object({ senal: z.string().min(5), severidad: z.enum(["baja", "media", "alta"]) }))
|
||||
.array(z.object({ senal: z.string().min(3), severidad: z.enum(["baja", "media", "alta"]) }))
|
||||
.max(10),
|
||||
})
|
||||
.strict();
|
||||
@@ -172,7 +172,8 @@ export const redaccionSchema = z
|
||||
beneficios: z
|
||||
.array(
|
||||
z.object({
|
||||
etiqueta: z.string().min(3).max(40),
|
||||
// 70 y no 40: se pasaba en 2 de 3 vueltas contra datos reales.
|
||||
etiqueta: z.string().min(3).max(70),
|
||||
texto: z.string().min(20),
|
||||
hallazgoId: z
|
||||
.string()
|
||||
|
||||
Reference in New Issue
Block a user