Saltar al contenido
Jeremy Ayza
Todos los casos

Trabajo en CasaMarket

Búsqueda por voz con embeddings en el navegador

Búsqueda de productos por voz para el flujo de venta de un POS. La búsqueda vectorial corre en el navegador, sobre el catálogo que el POS ya guarda ahí.

Problema

El POS necesitaba búsqueda de productos por voz para el flujo de venta, usada con el hardware de tienda de la empresa. En plena venta, la búsqueda tiene que responder rápido.

Decisión

El flujo tiene cuatro pasos: audio, transcripción (gpt-4o-mini-transcribe), búsqueda vectorial de candidatos y elección del producto con gpt-4o-mini.

Decidí que la búsqueda vectorial corriera en el navegador, por tres razones:

  • Rapidez. No hay un viaje de red por cada búsqueda.
  • Costo. No hay un servicio de embeddings ni una base vectorial que pagar o mantener.
  • El catálogo ya estaba ahí. El POS lo guarda en el navegador para vender sin internet.
Los cuatro pasos. Solo la búsqueda vectorial corre en el navegador. Flujo de cuatro pasos: audio, transcripción con gpt-4o-mini-transcribe, búsqueda vectorial de candidatos y elección del producto con gpt-4o-mini. La búsqueda vectorial corre en el navegador, en un Web Worker, con Transformers.js y un índice Orama. La transcripción y la elección del producto necesitan conexión. Audio comando de voz Transcripción gpt-4o-mini-transcribe necesita conexión Búsqueda vectorial all-MiniLM-L6 · Transformers.js Web Worker · índice Orama Elección del producto gpt-4o-mini necesita conexión en el navegador candidatos
Los cuatro pasos. Solo la búsqueda vectorial corre en el navegador.

Los embeddings (all-MiniLM-L6) se calculan con Transformers.js en un Web Worker. El índice es de Orama y se guarda en el navegador.

Resultado

Admite varios productos por comando, mide su uso con GA4 y se carga solo para las empresas que lo tienen activado. Está desplegada en producción, detrás de una activación por empresa.

El buscador de este portafolio usa la misma idea: ábrelo desde el encabezado.

Límite

La transcripción y la elección del producto necesitan conexión. Solo la búsqueda vectorial es local.

Buscar en el portafolio

Los embeddings se calculan en tu navegador. Nada se envía a un servidor.