Projeto de AI em um Repo Git de SQL (+ Custos)
Oi pessoal! Há alguns meses, eu iniciei um projeto de compartilhar 10 anos de Scripts DBA neste repositório git: https://github.com/rrg92/sqlserver-lib
Nesses 10 anos, uma dor que sempre tive, foi encontrar o que eu precisava em meio a tantos scripts. Foram muitos de anos find, regex, abre vários arquivos, vai pelo nome do arquivo, etc. Isso dá um trabalinho... E as vezes, eu fazia o mesmo script 2x, pq nao achava um prévio...
Mas, se tem uma coisa que IA é boa, de verdade, é processar texto. E script é um bocado de texto... E SQL então... Como eu estou revisando e comentando cada script que estou subindo, sem querer, estou construindo uma base rica que pode ser pesquisável, usando embeddings!
E eu fiz uma v1 disso: https://huggingface.co/spaces/rrg92/sqlserver-lib-assistant
Aqui está uma pequena demonstração: https://www.youtube.com/watch?v=y75-0TSMet8
Compartilhando aqui pq o projeto é 100% open source e pode dar ideias ai pra mais pessoas fazerem.
Tecnologias usadas:
- Novo tipo de dado vector do AZure SQL Database (que vai vir no sql 2025)
- Sentence Tranformers para embeddings e rerank
- Gemini Flash 2.0 para formular as respostas
- Gradio Para interface e API
- Hugging Face ZeroGPU (NVIDI A100) para rodar os modelos de embeddings e rerank bem rápido!
- GitHub Actions para disparar o código que indexa no banco
- powershai para indexar os arquivos qnd fizer o push no git
Custo total do projeto:
- Conta PRO do hugging face (aprox. 50 reais, sem conta pro não consigo subir um ZeroGPU, mas um dia de uma A100 ligada já seria maior que essa conta ai)
- Azure SQL DB 5 Dtus (R$ 30, base pequena ainda, 100 linhas só, pouco acesso, bem tranquilo, não preciso de muito ainda)
- Custos por token do Gemini Flash 2.0 (um dos LLMs mais barato que tem).
Custo mínimo até aqui: 80 reais + custo variável por tokens.
Obviamente, que há muitas coisas que eu poderia melhorar aí (baixar o custo com outras APIs, usar algumas dessa no-code, melhor chunk, etc.)... Mas, primeiro voce começa...