El equipo de Partner Innovation de Google está desarrollando una serie de plantillas de IA generativa que muestran las posibilidades de combinar modelos de lenguaje grandes con las API y tecnologías existentes de Google para resolver casos de uso específicos del sector.
Todos usamos Internet para buscar recetas y encontrar consejos a medida que la vida nos presenta nuevos desafíos. Pero, ¿qué pasaría si, gracias a la IA generativa, pudiéramos combinar estos superpoderes y crear un peculiar chef personal que escuche cómo fue tu día, cómo te sientes y qué estás pensando, y luego creara platos nuevos e ingeniosos con ingredientes únicos en función de tu estado de ánimo?
MoodFood es una versión lúdica del buscador de recetas tradicional, actúa como un "terapeuta alimentario" que pregunta a los usuarios cómo se sienten o cómo quieren sentirse y genera recetas que van desde versiones humorísticas de clásicos como la "sopa para los corazones rotos" o la "lasaña de los tristes lunes" hasta "recetas" con consejos de vida genuinos para impresionar a tu futura suegra.
En el ejemplo anterior, el usuario indica que está estresado y que necesita impresionar a la madre de su novio, por lo que nuestra experiencia recomienda la "sopa de pollo para mi futura suegra", una receta novedosa y un nombre para el plato que se generó solo a partir de la entrada del usuario. A continuación, genera una "tarjeta" gráfica de recetas y una lista formateada de ingredientes o recetas que podrían usarse para entregar a un sitio asociado para su cumplimiento.
Los casos de uso potencial se basan en una visión novedosa del descubrimiento de productos. Preguntarle a un usuario su estado de ánimo podría mostrar recomendaciones de canciones en una app de música, destinos de viaje para un socio de turismo o recetas reales para pedir en las apps de envío de comida a domicilio. La plantilla también se puede utilizar como un mecanismo de descubrimiento para casos de uso de comercio electrónico y venta minorista. Los modelos de lenguaje grande (LLM) están abriendo un nuevo mundo de exploración y posibilidades. ¡Nos encantaría que nuestros usuarios vieran el poder de los LLM para combinar ingredientes conocidos y darles un contexto completamente diferente, como su estado de ánimo, para así inventar platillos nuevos que puedan probar!
Queríamos explorar la forma de usar la API de PaLM de diferentes maneras a lo largo de la experiencia, por lo que usamos la API varias veces para diferentes propósitos. Por ejemplo, generar una respuesta humorística, pensar en recetas, crear formatos estructurados, proteger, etc.
En la demostración actual, usamos el LLM cuatro veces. En el primer mensaje, le pedimos que sea creativo e invente recetas para el usuario en función de sus entradas y contexto. Con el segundo, formateamos las respuestas json. En el tercero, se garantiza que la nomenclatura sea apropiada como protección. Con el mensaje final, convertimos las recetas no estructuradas en una receta en formato JSON.
Uno de los trabajos en los que los LLM pueden ayudar a los desarrolladores es el formateado de datos. Dada cualquier fuente de texto, los desarrolladores pueden usar la API de PaLM para dar forma a los datos de texto en cualquier formato deseado, por ejemplo, JSON, Markdown, etc.
Para generar respuestas humorísticas y mantenerlas en el formato que queríamos, llamamos a la API de PaLM varias veces. Para que la entrada fuera más aleatoria, usamos una "temperatura" más alta para el modelo y la bajamos al formatear las respuestas.
En esta demostración, queremos que la API de PaLM muestre recetas en formato JSON, por lo que adjuntamos el ejemplo de una respuesta formateada a la solicitud. Esta es solo una pequeña guía para que el LLM responda en un formato con precisión. Sin embargo, el formato JSON para las recetas lleva bastante tiempo, lo que podría ser un problema frente a la experiencia del usuario. Para lidiar con esto, tomamos la respuesta humorística para generar solo un mensaje de reacción (que toma menos tiempo), paralelo a la generación de la receta en formato JSON. Primero, renderizamos la respuesta de reacción tras recibirla caracter por caracter, mientras esperamos la respuesta de la receta en formato JSON. Así se reduce la sensación de espera de una respuesta que lleva mucho tiempo.
Si alguna tarea requiere un poco más de creatividad mientras se mantiene la respuesta en un formato predefinido, alentamos a los desarrolladores a separar la tarea principal en dos subtareas. Una para respuestas creativas con un ajuste de temperatura más alto y otra para definir el formato deseado con un ajuste de baja temperatura, que equilibra el resultado.
Las indicaciones son una técnica que se utiliza para instruir a un LLM que realice una tarea específica. Implica proporcionarle un breve texto que describa la tarea, junto con cualquier información relevante que el LLM pueda necesitar para completar la tarea. Con la API de PaLM, la solicitud toma 4 campos como parámetros: contexto, mensajes, temperatura y candidate_count
.
candidate_count
es el número de respuestas que mostrará el LLM.En MoodFood, usamos indicaciones para instruir a la API de PaLM. Le dijimos que actuara como un chef creativo y divertido, y que mostrara recetas inimaginables en función del mensaje del usuario. También le pedimos que formalizara la muestra en 4 partes: reacción, nombre, ingredientes, instrucciones y descripciones.
La API de PaLM ofrece servicios de integración que permiten una integración perfecta de la API de PaLM con los datos del cliente. Para comenzar, simplemente debes configurar una base de datos de incrustación de los datos de los socios utilizando los servicios de incrustación de la API de PaLM.
Una vez integrado, cuando los usuarios buscan información relacionada con comida o recetas, la API de PaLM buscará en el espacio de incorporación para localizar el resultado ideal que coincida con las consultas. Además, al integrarnos con la API de compras proporcionada por nuestros socios, también podemos habilitar a los usuarios a comprar directamente los ingredientes de los sitios web asociados mediante la interfaz de chat.
Desde Swiggy, una plataforma india de pedidos y envíos de comida en línea, expresaron su entusiasmo al considerar que los casos de uso son posibles gracias a experiencias como MoodFood.
MoodFood será de código abierto para que los desarrolladores y las startups puedan aprovechar las experiencias que creamos. El equipo de Partner Innovation de Google también continuará desarrollando funciones y herramientas en colaboración con los mercados locales para expandir la investigación&y el desarrollo que ya se encuentran en marcha. Consulta aquí el proyecto de GitHub.
Queremos agradecer las valiosas contribuciones de las siguientes personas a este proyecto: KC Chung, Edwina Priest, Joe Fry, Bryan Tanaka, Sisi Jin, Agata Dondzik, Sachin Kamaladharan, Boon Panichprecha, Miguel de Andres-Clavera.