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".
|
ser "por_validar".
|
||||||
- En quienLoDijo usa el ROL ("el socio", "quien atiende el WhatsApp"), no el nombre
|
- En quienLoDijo usa el ROL ("el socio", "quien atiende el WhatsApp"), no el nombre
|
||||||
propio, salvo que sea el interlocutor comercial.
|
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
|
- 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
|
entender el alcance, que no este presente quien decide, que no haya ninguna cifra del
|
||||||
problema, o un "hagan todo y luego vemos".`;
|
problema, o un "hagan todo y luego vemos".`;
|
||||||
|
|||||||
@@ -47,14 +47,14 @@ export const hechosSchema = z
|
|||||||
)
|
)
|
||||||
.max(40),
|
.max(40),
|
||||||
materialesPendientes: z
|
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),
|
.max(15),
|
||||||
decisionesPendientes: z
|
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),
|
.max(15),
|
||||||
mencionesFueraDeAlcance: z.array(z.string().min(5)).max(15),
|
mencionesFueraDeAlcance: z.array(z.string().min(3)).max(15),
|
||||||
redFlags: z
|
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),
|
.max(10),
|
||||||
})
|
})
|
||||||
.strict();
|
.strict();
|
||||||
@@ -172,7 +172,8 @@ export const redaccionSchema = z
|
|||||||
beneficios: z
|
beneficios: z
|
||||||
.array(
|
.array(
|
||||||
z.object({
|
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),
|
texto: z.string().min(20),
|
||||||
hallazgoId: z
|
hallazgoId: z
|
||||||
.string()
|
.string()
|
||||||
|
|||||||
Reference in New Issue
Block a user