API em Golang para a extração de texto e imagens de documentos do Google Docs
Introdução
Salve salve caros leitores crônicos do Tabnews, espero que esteja tudo certo com vocês!
Andei um tempo sumido aqui do blog por conta de não ter tirado mais tempo para escrever posts e reagir a outras postagens.
Contexto
Recentemente a empresa onde trabalho surfou na onda das IA's e quase que a empresa inteira (somos em torno de 120 pessoas atualmente) desenvolveu algo que tivesse aplicabilidade dentro da empresa, seja como produto para comercialização ou um produto back-office que auxiliaria no dia a dia de diversos setores.
A equipe que eu estava (e ainda estou) desenvolveu um chatbot no Google Chat utilizando N8N (abençoado seja o time que fez essa ferramenta) e Claude, especificamente o modelo Haiku 3.5. O problema que encontramos foi a leitura das informações dentro dos arquivos do Google Docs pela IA para responder perguntas, a IA somente era capaz de interpretar textos e demorava demaaaaais pra fazer todo esse processo. Como as informações que utilizamos para alimentar a IA (aka RAGs) são dinamicamente alteradas dentre planilhas do Sheets e Docs, não consideramos fazer algum banco vetorizado para guardar as informações pois não havíamos muito tempo e recursos para implementar isso.
Agora, como a empresa viu como esse produto pode ser escalável e útil para o uso interno, podemos continuar trabalhando nele para torná-lo rápido e completo. Com isso, resolvi tentar achar uma maneira de extrair texto e imagem de um documento do Google de uma forma mais rápida e concisa.
Aplicação
Com todo esse contexto em mente, optei por desenvolver algo em Golang, além de ser rápido, ele atende exatamente o que eu estou precisando.
Basicamente, o programa cria três rotas diferentes para: extrair todas as imagens do documento (em base64), para extrair texto e imagem e extrair o documento pro completo.
Para usar a ferramenta, basta criar um cliente OAuth no Google Cloud Console e baixar o client id e o client secret como JSON e adicionar na pasta raiz do projeto.
Vou deixar o link para o repositório, la esta melhor documentado sobre todo projeto e suas capacidades.
Considerações
Nesse projeto simples eu aprendi que:
- Golang, assim como todas as outras linguagens de programação, são para resolver problemas e não para medir egos.
- O melhor caminho existe, basta você escolher trilhar-lho.
- A inteligencia artificial ajuda pra caramba em coisas simples que te levariam alguns minutos pesquisando e quebrando a cabeça desnecessariamente.
That's it folks!
Obrigado se você leu ate aqui, vou tentar responder a todos na medida do possível :)