Mejora de un clasificador de anuncios
Revisé el prompt para corregir errores recurrentes y lo probé con 200 anuncios sintéticos, incluidos 40 casos que no usé durante la edición.
Qué debe entender bien el clasificador
El clasificador debe identificar el producto y conservar los detalles que cambian su valor: generación, capacidad, operador, condición, accesorios, financiamiento y si el precio publicado se puede usar.
iPhone 15 Plus 256GB T-Mobile Balance Owed
Funciona, pero aún tiene pagos pendientes y puede ser bloqueado. Solo T-Mobile. Precio: $280.
- Identidad
- iPhone 15 Plus · 256GB
- Restricción
- T-Mobile · financiado
- Precio
- $280 es el precio del artículo completo
Omitir la deuda podría compararlo con teléfonos libres y sin restricciones.
MacBook Air 13 M2 A2681 LCD Screen Assembly
Solo el conjunto de pantalla usado. No incluye portátil ni placa lógica. Precio: $210.
- Identidad
- MacBook Air M2 · A2681
- Paquete
- Solo conjunto de pantalla
- Precio
- $210 corresponde al repuesto
Una pantalla no se puede valorar con ventas de MacBook completos.
Nintendo Switch OLED Tablet Console Only HEG-001
Solo la tableta. No incluye Joy-Con, base, cargador ni juegos. Precio: $135.
- Identidad
- Switch OLED · HEG-001
- Paquete
- Solo tableta
- Falta
- Mandos · base · cargador
El contenido del paquete cambia qué ventas anteriores son comparables.
Leica Q3 43 Camera Reservation Deposit
Depósito no reembolsable para entrar en la lista de espera; el saldo se paga al recogerla. Precio mostrado: $500.
- Identidad
- Leica Q3 43
- Tipo
- Depósito de reserva
- Precio
- $500 no es un precio de venta utilizable
Confundir el depósito con el precio de la cámara crearía una oferta falsa.
Remote iPhone Samsung Carrier Unlock Service
Servicio digital mediante IMEI. No se vende ningún teléfono físico. Precio mostrado: $35.
- Inventario
- No hay producto físico
- Mercado
- Servicio no compatible
- Precio
- $35 no es el precio de un producto
El clasificador debe detenerse antes de buscar productos o calcular precios.
Cómo lo medí
El conjunto contiene 200 anuncios sintéticos escritos y etiquetados a mano en 22 categorías. Un caso estricto exige que pasen los seis controles. La puntuación semántica promedia esas seis dimensiones por caso.
- Casos y etiquetas
- El texto y el resultado esperado están juntos en el repositorio. No hay una segunda revisión independiente registrada.
- Seis controles
- Categoría, identidad, búsqueda, atributos de valor, soporte de mercado y uso del precio. Identidad, búsqueda y atributos reciben crédito parcial en la puntuación semántica.
- Desarrollo y holdout
- El conjunto combina 100 casos de regresión congelados con 100 casos más difíciles: 60 para desarrollo y 40 reservados.
- Seguridad de precio
- El conjunto tiene 19 precios inutilizables y 8 anuncios fuera del mercado compatible. El resumen de v3 registra un error combinado, pero ya no conserva el resultado por caso para separar ambas señales.
- Casos incluidos
- El conjunto concentra paquetes incompletos, daños, financiamiento, bloqueos de operador, precios engañosos, accesorios e identidad ambigua.
- Solo texto
- Producción también puede recibir fotos, pero cada medición de este informe aísla la extracción de texto. No valida la comprensión de imágenes.
Cómo probé los cambios del prompt
Cambié el modelo, el nivel de razonamiento o el prompt uno a la vez, manteniendo los mismos casos y reglas de puntuación.
Mantener la configuración
Al comparar modelos, mantuve el mismo prompt, formato del anuncio, esquema JSON, nivel de razonamiento, herramientas y puntuador.
Agrupar los errores
Agrupé los errores por contenido del paquete, identidad, restricciones, atributos, soporte de mercado y uso del precio, y redacté instrucciones para corregirlos.
Probar con un conjunto pequeño
Probé los candidatos con 10 a 20 casos dirigidos y controles que ya pasaban, y después con el conjunto fijo de desarrollo. Cada prueba registró el hash del prompt, los tokens, el costo estimado y la latencia.
Probar los casos reservados
Evalué el mejor candidato con casos que no usé durante la edición y después probé el prompt elegido con los 200 casos.
Descarté los prompts con más errores de soporte de mercado o de precio. Después comparé los casos estrictos, la gravedad de los errores restantes, el holdout, el costo y la latencia P95.
Fragmentos del prompt
La base pedía una extracción conservadora. V3 añadió reglas explícitas para paquetes incompletos, búsquedas comparables y cantidades que no representan el precio completo.
requiredTerms must be the smallest stable identity terms that every valid comparable should contain.
valuationAttributes must contain only explicitly evidenced, value-changing facts.
For a bundle, identify and search the principal value-bearing product; describe accessories in variant and bundle-contents but do not require an identical accessory bundle in sold comparables unless it materially changes value.Formaba parte de la instrucción compartida antes del añadido v3.
Whenever the text says only, not included, missing, removed, replacement, part, accessory, box, case, stand, mount, bracket, shell, code, lot, pack, kit, or bundle, explicitly record package.
Search queries must name the actual item being sold, not merely the product it fits.
Set askingPriceUsable false for deposits, installments, per-item or per-unit amounts applied to a larger lot or bundle, financing amounts, and any displayed amount that is not the full purchase price of the identified item or bundle.Instrucciones adicionales elegidas tras las pruebas de desarrollo y holdout.
Qué cambió con el prompt v3
El prompt v3 aprobó 18 anuncios más en el conjunto completo y redujo los fallos de atributos de 70 a 50. El holdout bloqueado mejoró de 14/40 a 21/40.
| Prompt | Casos estrictos | Puntuación semántica | Desarrollo | Holdout bloqueado | Desajustes de protección | Promedio | P95 | Observado / 1K | Sin caché / 1K |
|---|---|---|---|---|---|---|---|---|---|
| Baseline2ca71c9c3894 | 117/200 | 94.82% | 22/60 | 14/40 | 2 desajustes | 2.89s | 4.80s | $0.45 | $0.51 |
| Production v374c46c57d079 | 135/200 | 96.79% | 35/60 | 21/40 | 1 desajuste | 2.99s | 5.11s | $0.38 | $0.65 |
Luna y Gemini con el prompt v3
Repetí Luna y Gemini 3.7 Flash con los mismos 200 casos, prompt v3, razonamiento bajo, sin herramientas y el mismo puntuador. Gemini aprobó 47 casos menos, tuvo 5.98 veces el costo estimado y un P95 4.38 veces mayor. La prueba tuvo ocho errores de capacidad; las diferencias de concurrencia y reinicios se detallan más abajo.
| Modelo | Casos estrictos | Puntuación semántica | Costo observado / 1K | Promedio | P95 | Desajustes de protección | Disponibilidad |
|---|---|---|---|---|---|---|---|
| Lunagpt-5.6-luna · low reasoning | 136/200 | 96.84% | $0.3774 | 3.99s | 7.52s | 1 desajuste | Sin interrupciones |
| Gemini 3.7 Flashgemini-3.7-flash · low thinking | 89/200 | 93.70% | $2.2562 | 7.47s | 32.92s | 5 desajustes | 8 errores de capacidad |
Contabilidad de la ejecución
| Modelo | Tokens de entrada | Entrada en caché | Tokens de salida | Tokens de razonamiento | Gasto de la prueba | Base del costo |
|---|---|---|---|---|---|---|
| Lunagpt-5.6-luna · low reasoning | 322,484 | 303,420 | 54,666 | 6,504 | $0.075480 | Estimación con tarifa publicada |
| Gemini 3.7 Flashgemini-3.7-flash · low thinking | 283,848 | 0 | 63,559 | 2,867 | $0.451232 | Estimación con tarifa publicada |
La decisión para producción
Mantuve Luna con el prompt v3 para clasificar texto. Una nueva ejecución aprobó 136 casos sin errores de precio. Los otros 64 casos incluyeron 51 fallos de atributos, 22 de búsqueda comparable, 2 de identidad, 1 de categoría y 1 desajuste conservador de soporte. Algunos casos fallaron en más de un control; cualquier desajuste rechaza un caso estricto aunque el resto del resultado sea correcto.
Resultado medido: 136/200 casos estrictos · 96.84% de puntuación semántica · $0.65 sin caché por 1,000 clasificaciones · 19/19 precios engañosos gestionados de forma segura.
Método y límites
Esta configuración corresponde a las pruebas actuales de Luna y Gemini. La comparación anterior de prompts se registró por separado.
- Hashes del prompt
- Las pruebas usan hashes SHA-256 del prompt. Producción v3 es 74c46c57d079; la base es 2ca71c9c3894.
- Hashes de evaluación
- La comparación de Luna y Gemini es bfa83589a1d3; la comparación anterior de prompts es c63ad64bf1c9. Ambos hashes incluyen prompt, puntuador, resolución de categorías, esquema y casos.
- Interpretación
- El resultado 135/200 mide este conjunto, no la precisión en producción. La mejora del holdout es compatible con avances fuera de los 60 casos de desarrollo, pero sus resultados ya se conocen. No puede considerarse un holdout intacto en futuros estudios.
- Razonamiento
- La prueba actual de Luna usó razonamiento bajo y Gemini usó thinking bajo.
- Muestreo
- No fijamos temperature ni top-p; se usaron los valores predeterminados.
- Salida
- Todos devolvieron el mismo esquema JSON estructurado.
- Ejecución
- Luna usó cinco casos concurrentes y terminó sin interrupción. Gemini usó dos, produjo ocho errores 503 y necesitó un reinicio manual tras un intento detenido. Los casos completos se guardaron por anuncio.
- Latencia
- El promedio y P95 son medidas operativas de una ejecución, no una afirmación de rendimiento máximo.
- Alcance
- Desactivamos fotos, búsqueda web, grounding y herramientas externas. Los resultados corresponden a 200 casos de texto en 22 categorías.
- Costo
- Los costos estimados usan tarifas publicadas, que pueden cambiar.