Artigo

Como criei uma despensa com IA usando Firebase AI Logic e Gemini

Como o TinyRecipe usa Firebase AI Logic e Gemini para gerar receitas estruturadas rapidamente com ingredientes que você já tem em casa.

Como criei uma despensa com IA usando Firebase AI Logic e Gemini

Como desenvolvedor indie que mantém vários apps móveis local-first, meus princípios sempre foram velocidade, utilidade e eficiência de custos. No TinyRecipe, o objetivo era simples: ajudar a reduzir o desperdício de alimentos gerando receitas práticas, passo a passo, com base somente nos ingredientes que já estão na geladeira ou na despensa.

Adicionar IA generativa a um app móvel pode rapidamente resultar em respostas lentas, dados JSON imprevisíveis e custos crescentes de API quando a arquitetura não é bem planejada. Veja como integrei o Firebase AI Logic, com Gemini no Vertex AI, para gerar receitas estruturadas rapidamente e manter os custos operacionais baixos.

O desafio central: limitar o LLM

Se você der liberdade total a um LLM para criar receitas, três problemas surgem de imediato:

  1. Alucinações e combinações estranhas: ele pode sugerir uma sopa feita com azeite, molho de soja e limão.
  2. Esquema inconsistente: converter texto livre ou Markdown sem estrutura em componentes nativos da interface gera falhas frágeis no cliente.
  3. Alto consumo de tokens: respostas sem limites consomem rapidamente o orçamento de tokens em instruções com várias etapas.

Para resolver isso, usei a integração de backend do Firebase com Vertex AI para impor instruções de sistema rigorosas e interpretar saídas estruturadas.

1. Restrições no prompt de sistema e validação de esquema JSON

Em vez de pedir uma boa receita ao modelo, o prompt de sistema o obriga a seguir um contrato rígido de esquema JSON:

{
  "title": "String",
  "prep_time_minutes": "Number",
  "difficulty": "Easy | Medium | Hard",
  "matched_pantry_items": ["Array of Strings"],
  "missing_staples_required": ["Array of Strings"],
  "instructions": [
    {
      "step_number": 1,
      "text": "String"
    }
  ]
}

Duas restrições tornaram o recurso muito mais útil na prática:

  • Isenção de itens básicos: os usuários não deveriam precisar marcar sal, pimenta, água da torneira ou óleo de cozinha na despensa. O prompt permite explicitamente esses itens básicos, simplificando a seleção.
  • Isolamento rigoroso dos ingredientes: o modelo prioriza os ingredientes marcados como disponíveis na despensa digital antes de sugerir itens adicionais.

2. Otimizações no cliente: uma experiência sem atrito

Ninguém quer digitar “250 g de peito de frango em cubos” no teclado do celular enquanto está na cozinha.

[Usuário toca nas tags da despensa] -> [Cliente monta um array] -> [Solicitação ao Firebase AI] -> [Renderização da interface nativa]
  • Tags de seleção rápida por categoria: a interface oferece tags categorizadas para selecionar rapidamente ingredientes comuns da geladeira e da despensa.
  • Cache local: antes de enviar uma solicitação ao Firebase AI Logic, o app calcula o hash do array de ingredientes selecionados. Se o usuário pedir uma receita com os mesmos ingredientes principais em pouco tempo, o TinyRecipe exibe o resultado em cache imediatamente, sem outra chamada à API.

3. Lições aprendidas e próximos passos

O Firebase AI Logic tornou surpreendentemente simples escalar um recurso de IA generativa sendo um desenvolvedor solo. Com esquemas JSON rigorosos na fronteira do modelo e estado local, o TinyRecipe oferece:

  • geração em menos de dois segundos
  • renderização previsível no cliente, sem falhas de análise
  • desperdício mínimo de tokens de API

O recurso de despensa com IA já está disponível para iOS e Android.