Un "Ayudante de comida" de IA generativa que adapta la comida a tu estado de ánimo

MAY 16, 2023
Avneet Singh Product Manager Google Partner Innovation

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.

generativeAIRecipe1

Descripción general

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?

generativeAIRecipe2

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!

Implementación

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.

generativeAIRecipe3

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.

generativeAIRecipe4

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.

Indicaciones

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.

  • El contexto es el contexto de la conversación. Se utiliza para que el LLM comprenda mejor la conversación.
  • Los mensajes son una serie de mensajes de chat del pasado al presente que alternan entre el usuario (author=0) y el LLM (author=1). El primer mensaje es siempre del usuario.
  • La temperatura es un número de punto flotante entre el 0 y el 1. Cuanto mayor sea la temperatura, más creativa será la respuesta. Cuanto más baja sea la temperatura, más probable será que la respuesta sea la correcta.
  • El 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.

  • Las reacciones son la respuesta humorística directa al mensaje del usuario de forma educada, pero entretenida.
  • Nombre: Nombre de la receta. Le decimos a la API de PaLM que genere el nombre de la receta con juegos de palabras educados, que no ofendan a nadie.
  • Ingredientes: una lista de ingredientes con medidas.
  • Descripción: la descripción de la comida generada por la API de PaLM.

generativeAIRecipe5

Integración de terceros

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.

generativeAIRecipe6

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.

Asociaciones

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.

"Estamos entusiasmados con el potencial de la IA generativa para transformar la forma en que interactuamos con nuestros clientes y comerciantes en nuestra plataforma. MoodFood tiene el potencial de ayudarnos a profundizar en los productos y servicios que ofrecemos, de manera divertida y atractiva"- Madhusudhan Rao, director de Tecnología, CTO, Swiggy

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.

Agradecimientos

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.