En el equipo de Inteligencia Artificial en NotCo creamos algoritmos que aumentan la experiencia de chefs y desarrolladores de alimentos para buscar el mejor reemplazo del animal, en el mundo de las plantas.
Pero quienes son expertos en la ciencia de los alimentos, no necesariamente son expertos en comprender y poder retroalimentar efectivamente a un algoritmo de generación de fórmulas. 
Biagio nace por la necesidad de entregar una interfaz amigable con usuarios inexpertos en programación o ciencia de datos.
A la fecha la plataforma es capaz de:
1. Seleccionar un producto animal como inspiración para la generación
2. Explorar cientos de fórmulas entregadas por el algoritmo
3. Seleccionar una o más fórmulas para llevarlas a la cocina
4. Documentar la receta y realizar una evaluación sensorial​​​​​​​

Buscador de targets en la base de datos de productos de la USDA

El siguiente artículo se enfoca solo en una de las funcionalidades de Biagio: la mejora del proceso de solicitud de fórmulas. Esta parte se desarrolló durante el primer semestre del año 2021 en conjunto con Philip Korsunsky, Daniel Leal y Francisca Balbontín.
1. Levantamiento del problema
Aunque la generación de fórmulas estaba entregando sugerencias valiosas para el desarrollo de alimentos, la velocidad y exigencia de la empresa por agregar nuevos productos al catálogo, ha aumentado exponencialmente.
El primer paso para estudiar el problema, fue realizar entrevistas y observar a los usuarios ocupando la plataforma. Se detectaron los siguientes problemas y oportunidades:
- El algoritmo no sabe qué valores nutricionales son más importantes que otros.
- Se necesita incluir información adicional como el perfil de sabor.
- La experticia culinaria no está siendo tomada en cuenta al decidir qué ingredientes servirán y cuáles no.
- Se requiere compensar en los factores nutricionales para ajustarse a los procesos industriales.
2. Objetivos
Luego de analizar los requerimientos con el ingeniero de ciencia de datos, se propusieron los siguientes objetivos a desarrollar:
a. Entregar la posibilidad de requerir y restringir ciertos ingredientes de la formulación. Por ej.: "Ya probé una receta de pollo con extracto de tomate y este le da mucha acidez a mi fórmula, preferiría que el algoritmo dejara fuera ese ingrediente".
b. Cumplir con los requerimientos del nuevo desarrollo como por ejemplo dejar fuera ingredientes alérgenos como la soya. 
c. Agregar un controlador de perfil de los cinco sabores básicos (dulce, ácido, salado, amargo y umami). Por ej.: "Necesito aumentar la acidez de un yogurt sin que suba el sabor salado".
d. Permitir al usuario modificar los valores nutricionales. Por ej.: "Quiero desarrollar una mayonesa igual a la animal pero baja en grasas".
3. Prueba de concepto
En esta etapa el equipo de ciencia de datos desarrollaron los controles en el algoritmo, implementando una interfaz básica para poder testea†rla con usuarios. Los resultados fueron favorables en relación a las fórmulas sugeridas por el algoritmo, pero la facilidad de uso y entendimiento de los controles no tuvieron una buena evaluación. Se decidió simplificar la funcionalidad dejando de lado algunos controles más avanzados como la "importancia", o peso del control, para una futura iteración.
4. Segunda iteración y prototipo
Para poder otorgar al usuario los controles implementados, se agregó una sección a la página de búsqueda de targets donde separados por tabs, los chefs podrán intervenir la generación de fórmulas de manera opcional. Además, se agregó una caja informativa en la parte superior para ir registrando cada control que se registra.
a y b. Restricción de ingredientes y grupos de alérgenos
Para la restricción de ingredientes (a) se agregaron dos buscadores independientes. Uno para poder seleccionar todos aquellos ingredientes que el usuario no quiere que aparezcan en las sugerencias. El otro, para poder obligar al algoritmo a sugerir algún ingrediente.
Además, para el segundo objetivo (b), se crearon grupos de ingredientes que contienen algún alérgeno como el gluten, los frutos secos y la soya.
c. Editor del perfil de sabor
En el caso del perfil de sabor, se decidió entregar 5 sliders para cada sabor básico y editarlo en una escala de 1 a 5, de la misma forma como los usuarios hacen las evaluaciones sensoriales a las recetas. En el testeo inicial, detectamos que controlar los 5 sabores al mismo tiempo era muy difícil para percibir cambios en los resultados. Por esto, se permite el control de solo 2 sabores a la vez.
d. Modificación de valores nutricionales
En el caso de los valores nutricionales se debe considerar que la información del producto de target puede tener o no disponible esa información. Independiente de eso, el usuario puede requerir una cierta cantidad por cada 100 gramos de fórmula que necesitan para cada macronutriente (proteínas, carbohidratos, fibras y grasas). 
Adicionalmente, el algoritmo es capaz de generar fórmulas que consideran el porcentaje de agua dentro de la fórmula o no. Históricamente se habían probado ambas opciones y la experiencia nos dictó que la decisión depende de la categoría del producto. Para esto, se agregó un switch para que el usuario pudiera decidir. 
5. Implementación y seguimiento
Todos los controles diseñados fueron implementados y testeados por usuarios. El feedback recibido hasta ahora es:
- La restricción de ingredientes funciona bien pero se necesita agrupar los ingredientes por tipo. Si un usuario necesita seleccionar todos los ingredientes que incluyen, por ejemplo, "tomate" se encuentra con muchas opciones. El proceso se vuelve tedioso, largo y propenso al error.
- Es complejo comprender de qué manera el perfil de sabor afecta la generación. Esto también puede deberse a la vista de fórmulas y la cantidad de ellas que se generan por target. Será evaluado a futuro.
- Los requerimientos nutricionales es lo que mejor funciona, sobretodo la habilidad de considerar o no el agua. Para la siguiente etapa se espera incluir micronutrientes como minerales y vitaminas. 

Grabación de pantalla del proyecto implementado