Automação com Ruby on Rails: Do Diretório ao Facebook com LLAVA

Automação com Ruby on Rails: Do Diretório ao Facebook com LLAVA

Recentemente, concluí um projeto de automação utilizando Ruby on Rails. Este projeto inovador envolve a coleta de fotos de um diretório específico, a análise dessas imagens através de uma inteligência artificial chamada LLAVA, e a publicação das imagens no Facebook com a localização previamente definida. Neste artigo, vamos explorar em detalhes como essa automação foi criada, desde a configuração inicial até as técnicas de AI empregadas e a implementação final na rede social.

1. Preparando o Ambiente

Para começar, é essencial configurar o ambiente de desenvolvimento. Com Ruby on Rails, a configuração do projeto pode ser realizada rapidamente com os comandos corretos. Após a criação do projeto, certifique-se de configurar as gemas necessárias para manipulação de arquivos e chamadas de APIs.

rails new automacao_imagens
cd automacao_imagens
bundle add mini_magick
bundle add rest-client

A partir daqui, vamos configurar nossos diretórios. Um diretório específico será usado para armazenar as imagens que serão analisadas e publicadas.

2. Coleta de Fotos

Nossa primeira tarefa é criar um método para coletar todas as fotos armazenadas no diretório. Utilizamos o MiniMagick para manipular imagens e garantir que as fotos estejam em um formato compatível com a análise posterior.

def coletar_fotos(diretorio)
  fotos = Dir.glob("#{diretorio}/*.jpg")
  fotos.each do |foto|
    imagem = MiniMagick::Image.open(foto)
    yield imagem if block_given?
  end
end

3. Análise de Imagens com LLAVA

O passo seguinte é a análise das imagens. Utilizamos a LLAVA, uma poderosa AI, para criar descrições detalhadas das fotos. A integração com a LLAVA é feita através de chamadas de API, onde enviamos a imagem e recebemos a descrição gerada pela inteligência artificial.

require 'rest-client'

LLAVA_API = 'https://api.llava.ai/analyze'

def analisar_imagem(imagem)
  resposta = RestClient.post(LLAVA_API, { image: File.new(imagem.path, 'rb') })
  descricao = JSON.parse(resposta.body)['description']
  descricao
end

4. Publicação no Facebook

Com as descrições em mãos, a próxima etapa é a publicação das imagens no Facebook. Para isso, utilizamos a API do Facebook, que nos permite publicar a foto juntamente com sua descrição e localização.

FACEBOOK_API = 'https://graph.facebook.com/v10.0/me/photos'
ACCESS_TOKEN = 'SEU_ACCESS_TOKEN_AQUI'
LOCALIZACAO = 'Sua localização personalizada'

def publicar_no_facebook(imagem, descricao)
  RestClient.post(FACEBOOK_API,
    { access_token: ACCESS_TOKEN, source: File.new(imagem.path, 'rb'), caption: descricao, place: LOCALIZACAO })
end

5. Juntando Tudo

Por fim, precisamos juntar todos os componentes para criar o fluxo completo. O código abaixo mostra a execução da coleta, análise e publicação das imagens em sequência.

diretorio = '/caminho/para/seu/diretorio'

coletar_fotos(diretorio) do |imagem|
  descricao = analisar_imagem(imagem)
  publicar_no_facebook(imagem, descricao)
end

Conclusão

Ao seguir essas etapas, conseguimos automatizar com sucesso o processo de coleta de fotos, análise com IA e publicação no Facebook. Utilizando as ferramentas e linguagens certas, como Ruby on Rails e LLAVA, é possível criar poderosas automações que economizam tempo e aumentam a eficiência. Esperamos que este artigo sirva de guia para outros desenvolvedores interessados em projetos de automação semelhantes.

Voltar para o blog

Deixe um comentário