"Coach de alimentação" com IA generativa que combina comida e humor

MAI 16, 2023
Avneet Singh Product Manager Google Partner Innovation

A equipe de inovação de parceiros do Google está desenvolvendo uma série de modelos de IA generativa que mostram as possibilidades de combinar modelos de linguagem grandes com APIs e tecnologias existentes do Google para resolver casos de uso específicos do setor.

generativeAIRecipe1

Visão geral

Todos nós já usamos a Internet para procurar receitas e para obter ajuda quando estamos diante de novos desafios. Mas e se, com a IA generativa, pudéssemos combinar esses superpoderes e criar um chef pessoal peculiar que ouvisse como foi o seu dia, como você está se sentindo, no que está pensando... e depois criasse pratos novos e criativos, com ingredientes exclusivos e com base no seu humor?

generativeAIRecipe2

O Mood Food é uma abordagem divertida para o tradicional localizador de receitas que atua como um "terapeuta alimentar", perguntando aos usuários como eles se sentem ou como querem se sentir e gerando receitas que vão desde versões divertidas de clássicos como "Sopa da desilusão" ou "Lasanha da depressão das segundas-feiras" até "receitas" genuínas de conselhos de vida para impressionar sua futura sogra.

No exemplo acima, a pessoa insere que está estressada e precisa impressionar a mãe do namorado, e nossa experiência recomenda: "Mother-in-Law’s Favorite Chicken" (Frango favorito da sogra), uma receita nova e um nome de prato gerados com base apenas na entrada do usuário. Depois, é gerado um "cartão" gráfico da receita e uma lista formatada de ingredientes/da receita que poderia ser enviada como pedido para um site parceiro.

Os possíveis casos de uso baseiam-se em uma abordagem inovadora para a descoberta de produtos. Perguntar qual é o humor de um usuário poderia revelar recomendações de músicas em um app de música, destinos de viagem para um parceiro de turismo ou receitas reais para fazer pedidos em apps de entrega de comida. O modelo também pode ser usado como um mecanismo de descoberta para casos de uso de e-commerce e varejo. Os LLMs estão abrindo um novo mundo de análise detalhada e possibilidades. Adoraríamos que nossos usuários vissem o poder dos LLMs para combinar ingredientes conhecidos, colocá-los em um contexto completamente diferente, como o humor de um usuário, e inventar novos itens que podem ser experimentados!

Implementação

Queríamos explorar as possibilidades de uso da API PaLM de maneiras diferentes ao longo da experiência e, por isso, usamos a API várias vezes para diferentes finalidades. Por exemplo, gerar uma resposta engraçada, gerar receitas, criar formatos estruturados, garantir a segurança e assim por diante.

generativeAIRecipe3

Na demonstração atual, usamos o LLM quatro vezes. Na primeira, são dadas instruções para que o LLM seja criativo e invente receitas com base na entrada e no contexto do usuário. A segunda instrução formata as respostas em JSON. A terceira instrução garante que os nomes sejam apropriados como uma medida de segurança. A instrução final transforma receitas não estruturadas em uma receita JSON formatada.

Um dos trabalhos em que os LLMs podem ajudar os desenvolvedores é a formatação de dados. Diante de qualquer fonte de texto, os desenvolvedores podem usar a API PaLM para moldar os dados de texto em qualquer formato desejado, como JSON, Markdown etc.

Para gerar respostas engraçadas, mantendo as respostas no formato desejado, chamamos a API PaLM várias vezes. Para que a entrada fosse mais aleatória, usamos uma “temperatura” mais alta para o modelo e reduzimos a temperatura para o modelo ao formatar as respostas.

Nessa demonstração, queremos que a API PaLM retorne receitas em formato JSON, por isso, anexamos o exemplo de uma resposta formatada à solicitação. Essa é apenas uma pequena orientação para o LLM de como responder em um formato com precisão. No entanto, a formatação JSON nas receitas é bastante demorada, o que pode ser um problema ao lidar com a experiência do usuário. Para lidar com isso, utilizamos a resposta engraçada apenas para gerar uma mensagem de reação (que leva menos tempo), simultaneamente à geração da receita em JSON. Primeiro, renderizamos a resposta de reação depois de recebê-la, caractere por caractere, enquanto aguardamos a resposta da receita em JSON. Isso é feito para reduzir a sensação de espera por uma resposta que leva mais tempo.

generativeAIRecipe4

Se alguma tarefa exigir um pouco mais de criatividade e que seja mantido um formato predefinido em uma resposta, recomendamos que os desenvolvedores separem essa tarefa principal em duas subtarefas. Uma para respostas criativas com uma configuração de temperatura mais alta e outra que defina o formato desejado com uma configuração de baixa temperatura, equilibrando a saída.

Comandos

As instruções são uma técnica usada para orientar um modelo de linguagem grande (LLM, na sigla em inglês) a executar uma tarefa específica. Isso envolve fornecer ao LLM um pequeno trecho de texto que descreva a tarefa, juntamente com qualquer informação relevante de que o LLM possa precisar para concluir a tarefa. Com a API PaLM, as instruções usam quatro campos como parâmetros: context, messages, temperature e candidate_count.

  • Em context está o contexto da conversa. Ele é usado para fornecer ao LLM melhor compreensão da conversa.
  • Em messages está uma matriz de mensagens de chat do passado ao presente alternando entre o usuário (author=0) e o LLM (author=1). A primeira mensagem é sempre do usuário.
  • Em temperature está um número de ponto flutuante entre 0 e 1. Quanto maior a temperatura, mais criativa será a resposta. Quanto menor a temperatura, maior a probabilidade de a resposta ser correta.
  • Em candidate_count está o número de respostas que o LLM retornará.

No Mood Food, usamos as instruções para orientar a API PaLM. Dissemos para agir como um chef criativo e engraçado e retornar receitas inimagináveis com base na mensagem do usuário. Também solicitamos que formalizasse o retorno em quatro partes: reação, nome, ingredientes, instruções e descrições.

  • Reações: são a resposta engraçada direta para a mensagem do usuário de uma maneira educada, mas divertida.
  • Nome: nome da receita. Dizemos à API PaLM para gerar o nome da receita com trocadilhos educados, sem ofensas.
  • Ingredientes: uma lista de ingredientes com as medidas.
  • Descrição: a descrição do prato gerada pela API PaLM.

generativeAIRecipe5

Integração de terceiros

A API PaLM oferece serviços de incorporação que facilitam a integração perfeita da API PaLM com os dados do cliente. Para começar, você simplesmente precisa configurar um banco de dados de incorporação de dados do parceiro usando os serviços de incorporação da API PaLM.

generativeAIRecipe6

Após a integração, quando os usuários pesquisarem informações relacionadas a alimentos ou receitas, a API PaLM pesquisará no espaço de incorporação para localizar o resultado ideal que corresponda às consultas. Além disso, ao fazer a integração com a API de compras fornecida por nossos parceiros, também podemos possibilitar que os usuários comprem diretamente os ingredientes de sites parceiros por meio da interface de chat.

Parcerias

A Swiggy, uma plataforma indiana de pedidos e entregas de comida on-line, expressou seu entusiasmo ao considerar os casos de uso possibilitados por experiências como o Mood Food.

"Nosso entusiasmo é muito grande quanto ao potencial da IA generativa para transformar a forma como interagimos com clientes e comerciantes em nossa plataforma. O Mood Food tem o potencial de nos ajudar a explorar mais a fundo os produtos e serviços que oferecemos, tudo de maneira divertida e atrativa" - Madhusudhan Rao, CTO, Swiggy

O Mood Food será de código aberto para que desenvolvedores e startups possam aproveitar as experiências que criamos. A equipe de inovação de parceiros do Google também continuará desenvolvendo recursos e ferramentas em parceria com os mercados locais para expandir na pesquisa e no desenvolvimento já em andamento. Confira o projeto no GitHub aqui.

Agradecimentos

Gostaríamos de agradecer as inestimáveis contribuições destas pessoas para esse projeto: KC Chung, Edwina Priest, Joe Fry, Bryan Tanaka, Sisi Jin, Agata Dondzik, Sachin Kamaladharan, Boon Panichprecha, Miguel de Andres-Clavera.