Tabla de Contenidos
Usar Mindee y Algolia juntos pueden hacer que cualquier gran colección de documentos físicos sea fácil de buscar y consumir. Hay muchos contextos en los que esto puede ser útil en el trabajo –considera indexar tus contratos, facturas o tus trabajos de investigación– pero por ahora, hablemos de las cartas Pokémon.
Supongamos que coleccionas cartas Pokémon: las compras, vendes y compites activamente en torneos con ellas. Construir un mazo para la competición requiere una combinación de estrategia y conocimiento sobre qué cartas tienes disponibles. Si tienes una gran colección, digamos 10.000 cartas, es imposible conocer tu inventario de memoria; quizás quieras poder buscar respuestas a preguntas como: "¿cuántos de mis Pokémon conocen el ataque Fire Spin?", o, "Si tengo que vender una de mis cartas, ¿cuál de ellas tiene el índice de rareza más alto?"
Responder a este tipo de preguntas requiere una comprensión del juego y una forma de extraer e indexar la correcta información de las cartas. Aquí es donde Mindee brilla.
1. Crea y entrena tu modelo con la API Document Builder de Mindee
Supongamos que, como coleccionista cuidadoso de cartas Pokémon, has tomado fotografías de todas las cartas de tu colección. Con ellas en mano, ¡estás listo para empezar!
En tu cuenta de Mindee, haz clic en “Crear nueva API” y dale un nombre, por ejemplo, “Clasificador Pokémon”.
A continuación, deberás identificar y nombrar los campos que quieres que Mindee escanee al leer tu carta. Mindee puede reconocer tipos de datos específicos, como correos electrónicos, números de teléfono y URL, así como campos de texto genéricos, números y fechas. Para nuestros propósitos, quizás queramos saber lo siguiente sobre nuestros Pokémon:
- Nombre – campo de texto
- Puntos de vida – número
- Nombre de ataque – campo de texto
- Efecto de ataque – número
- Índice de rareza – número

Usando la interfaz de usuario del constructor de API de Mindee, puedes definir los datos que buscas:
A continuación, haremos clic en el botón para empezar a entrenar el modelo con cartas Pokémon reales. Necesitarás usar al menos 20 imágenes para empezar a entrenar la API para que reconozca los campos de las cartas.
La interfaz de usuario te pedirá que hagas clic en los campos que son posibles coincidencias. Aquí vemos que, al buscar el campo de "efecto de ataque", Mindee ha encontrado algunos candidatos: 40 (nuestros PS), 20 (nuestro efecto de ataque) y otros números enteros en la carta como la fecha de copyright. Puedes guiar el modelo en la dirección correcta con unos pocos clics. Después de haber anotado 20, el entrenamiento entrará en vigor y podrás empezar a usar el endpoint /predict para tu API.
2. Usa tu API para extraer el texto relevante de tus imágenes
Cada API personalizada que construyas e implementes con Mindee tiene un único endpoint: /predict. Tu endpoint podría verse así:
https://api.mindee.net/v1/products/username/pokemon_cards/v1/predict
Este endpoint acepta datos de formulario como un objeto de archivo, URL o imagen codificada en base64. La respuesta de la API cuando le pasas una carta Pokémon incluirá algo como esto:
{ ... "document": { "annotations": { "labels": [] }, "id": "cdbe3064-4d9e-4857-ab0f-bfd21db78632", "inference": { "finished_at": "2021-07-28T02:31:54+00:00", "pages": [ { "id": 0, "prediction": { "attack_effect": { "confidence": 0.99, "values": [ { "confidence": 0.99, "content": 75, "polygon": [ ... ] } ] }, ... ...}
Mindee te envía aquí información valiosa sobre cómo funciona tu modelo, dónde en la carta predice que está el contenido y su nivel de confianza. Pero necesitamos simplificarla para que sea útil para la ingesta de Algolia.
A medida que nuestro modelo mejora cada vez más, podemos eliminar con más confianza la información sobre cómo Mindee hizo su predicción y extraer solo el conjunto simple de pares clave-valor de esta respuesta – por ejemplo, “attack_effect”: 75 – y construir un archivo JSON simple como salida.
3. Envía tus datos a Algolia
Hay muchas formas de enviar datos a Algolia: manualmente usando su cargador GUI, programáticamente usando uno de sus clientes API, o usando su rastreador. Dado que la colección de cartas no está en línea en ningún lugar donde Algolia pueda recuperarla (somos muy discretos sobre las cartas que tenemos), usaremos una de las dos primeras opciones.
Una vez te hayas registrado para una cuenta de Algolia y hayas creado una aplicación, podrás usar tu panel de control para configurar un índice:
Si has guardado tu salida de Mindee como un archivo JSON o un conjunto de archivos JSON, puedes subirlos aquí; alternativamente puedes usar el método saveObjects en una de sus bibliotecas cliente para crear un registro en tu índice. Cada carta debe subirse como un registro.
Después de haber procesado un lote inicial de cartas, las adiciones son sencillas:
- Envía una imagen de una nueva carta a tu endpoint /predict de Mindee
- Ajusta la respuesta JSON para que coincida con tus índices de Algolia
- Pasa esa respuesta a Algolia usando el método saveObjects
Las nuevas incorporaciones aparecerán en la búsqueda a medida que las añadas.
4. Beneficio
Ahora, para que esto sea realmente útil, queremos poder navegar por los resultados de búsqueda. Algolia ofrece widgets prediseñados que puedes añadir a aplicaciones web y móviles usando sus bibliotecas cliente. Ahora, nuestro coleccionista de cartas Pokémon puede buscar fácilmente cartas para vender, intercambiar o usar en mazos según lo que necesite.
Hemos hablado de las cartas Pokémon porque son divertidas, pero puedes convertir cualquier tipo de documento en datos estructurados usando Mindee y pasar los resultados a Algolia para la búsqueda; este método funciona igual de bien para permitir que tu equipo de finanzas busque recibos de informes de gastos, o [otro caso de uso aquí].
Foto de Thimo Pedersen en Unsplash
Acerca de



.webp)
.webp)
.webp)