Curso
Escrever código pode ser meio chato quando você fica preso em detalhes de sintaxe ou em coisas repetitivas. Esse atrito só aumenta quando você está experimentando novos modelos de IA e só quer se concentrar na construção. O Tabnine ajuda a acabar com essa lentidão com autocompletar de código por IA dentro do seu editor.
Neste artigo, vou explicar passo a passo como usar o Tabnine no Visual Studio Code (VS Code) para criar um editor de imagens com IA usando o mais recente modelo de geração de imagens do Google, o Nano Banana. No final deste artigo, teremos um aplicativo Python funcional que permite aos usuários gerar e editar imagens usando prompts.
O que é o Tabnine?
O Tabnine é um assistente de codificação com inteligência artificial parecido com o GitHub Copilot e Cursor. Funciona nos editores mais populares, como VS Code, PyCharm, Jupyter e outros.
Algumas das principais funcionalidades do Tabnine incluem:
- Integração com o Jira: O Tabnine pode se conectar ao Jira, uma plataforma popular para gerenciar projetos de engenharia de software. Isso facilita o gerenciamento do trabalho e permite que a Tabnine programe as tarefas em andamento.
- Comandos personalizados: O Tabnine vem com vários comandos, como “Explique o código” ou “Corrija o código”. Também permite que os usuários definam comandos personalizados baseados em prompts.
- Comportamento personalizado: O Tabnine te deixa configurar um prompt que orienta a forma como os modelos de IA respondem. Por exemplo, se você tiver diretrizes de codificação bem definidas, pode fornecê-las para garantir que o código seja gerado de acordo com essas diretrizes.
- Autocompletar inteligente: Ele sugere linhas completas ou blocos de código, não só nomes de variáveis.
- Sensível ao contexto: O Tabnine se adapta à estrutura do seu projeto e ao seu estilo de codificação.
- Suporte para vários modelos de IA: O Tabnine dá suporte aos modelos de IA mais populares, facilitando a escolha de qual usar.
- Aprendizagem em equipe: Nos planos empresariais, ele pode aprender com a base de código privada da sua equipe para fazer sugestões personalizadas de acordo com os padrões da sua empresa.
Configuração do Tabnine
Pra começar, a gente precisa criar uma conta no Tabnine e assinar a um dos planos deles. Eles oferecem um período de teste de 14 dias, para que você possa experimentar gratuitamente. Depois do período de teste, o Tabnine custa US$ 9 por mês.
Depois de criar sua conta Tabnine, abra o VS Code. Se você não tem o VS Code, instale-o a partir de aqui. Abra a aba de extensões e digite “tabnine” para encontrar a extensão oficial.
Depois que a extensão estiver instalada, vamos ser solicitados a fazer login. Então, dá pra acessar o Tabnine na barra de menu à esquerda (a última opção nesta captura de tela).
Explorando a interface do usuário do Tabnine
Antes de criar nosso editor de imagens com IA, vamos dar uma olhada rápida nos principais elementos do Tabnine.
Quando abrimos o Tabnine, aparece uma interface de chat com IA:
No topo, temos um seletor de modelo. Aqui, a gente pode escolher qual modelo usar. Vou ficar com a configuração padrão neste tutorial, o Gemini 2.5 Pro.
Na parte inferior, podemos definir o contexto. Isso define o que a gente quer que o modelo de IA veja ao responder.
Por padrão, o contexto inclui o arquivo atual e o espaço de trabalho (o projeto). A gente pode adicionar outras coisas, tipo o Terminal, que é super útil pra avisar o modelo sobre erros quando a gente encontra algum. Também podemos fornecer um trecho de código específico usando o caractere “@” e digitando o nome da função que queremos adicionar ao contexto.
No menu hambúrguer, dá pra configurar o Tabnine:
Duas configurações que valem a pena conferir são o comportamento personalizado e os comandos personalizados. Na seção de comportamento personalizado, dá pra definir um prompt que orienta o modelo na hora de gerar código. É útil quando a gente quer que o código siga umas diretrizes específicas.
A seção de comandos permite definir comandos personalizados que podem ser executados usando um /
na interface de chat. Um comando é basicamente uma solicitação para fazer algo específico. Essa é uma boa maneira de economizar tempo e evitar ter que repetir a mesma solicitação várias vezes.
Codificação Vibe de um editor de imagens com IA usando o Tabnine
Nesta seção, vou te mostrar como criar um aplicativo Python que usa o Nano Banana, o mais recente modelo de geração de imagens do Google, para editar imagens. O usuário pode usar um prompt para criar uma imagem ou juntar e editar imagens que já existem com o prompt.
Meu objetivo era ver se dava pra fazer esse aplicativo com o vibe-code, ou seja, montar tudo do zero usando prompts.
Todo o código gerado neste tutorial pode ser encontrado neste repositório GitHub. este repositório GitHub.
Criando a interface do usuário básica
Pra começar, eu queria criar a interface básica onde os usuários pudessem escolher imagens do computador e digitar um comando. Criei uma nova pasta e abri o VS Code nessa pasta. Eu não criei nenhum arquivo. Essa foi a minha primeira sugestão:
Só depois é que percebi que esqueci de falar que estava criando um aplicativo Python. De alguma forma, tive sorte, e foi isso que o modelo de IA achou que eu queria. Ele respondeu ao meu comando explicando os comandos que executaria e o código que escreveria.
Para fazer as alterações, precisamos aplicá-las uma a uma ou clicar no botão “Aplicar tudo” na parte inferior da tela. Observe que algumas das alterações envolvem a execução de comandos. Nesses casos, os comandos instalam os pacotes Python necessários e criam os arquivos e pastas para guardar o código.
Essa era a aparência da interface quando eu executei o script que ele criou:
Na parte superior, tem uma lista com todas as imagens selecionadas e um botão pra abrir um seletor de arquivos. O usuário pode escolher um ou mais arquivos, e os arquivos escolhidos são listados. Mas, quando novos arquivos são selecionados, a lista antiga é substituída, então pedi para acrescentar os novos arquivos à lista em vez de remover os antigos.
Depois, eu quis melhorar a interface do usuário pra mostrar as miniaturas das imagens em vez dos caminhos delas:
Este é o resultado:
Outra coisa importante é poder tirar imagens facilmente:
Com essa sugestão, ele mudou o código para que, quando clicássemos com o botão direito do mouse em uma miniatura, aparecesse um menu pop-up, permitindo que apagássemos a imagem. Eu queria que funcionasse assim, então peço essa mudança:
Quando eu tentei usar o aplicativo depois dessa mudança, a exclusão de imagens não estava mais funcionando. Achei que fosse porque estou usando um Mac, mas não falei nada. Queria ver se ele conseguia descobrir sozinho.
Funcionou super bem, e consegui clicar com o botão direito do mouse em uma imagem para apagá-la:
A última etapa na interface básica foi adicionar uma caixa de texto para o prompt.
Com isso, a interface do usuário básica ficou pronta. A gente pode escolher imagens e digitar um prompt. Mas ainda não dá pra criar uma imagem. É isso que vamos implementar na próxima seção.
Integrando a Nano Banana
Pra manter o código organizado, pedi pra criar um novo script Python com uma função que usa a API de IA generativa do Google com o modelo de imagem mais recente deles pra gerar imagens.
Ele criou o novo script e o arquivo .env
. Esse arquivo é usado pra guardar a chave API necessária pra se conectar à API do Google. Se você está acompanhando, vai precisar criar uma chave API aqui e colocá-la no arquivo .env
.
Então, pedi pra adicionar um novo botão na interface pra chamar a função de geração de imagens. Ele adicionou o botão, mas quando cliquei nele, apareceu um erro. Então, eu me certifiquei de adicionar o terminal ao contexto antes de pedir para corrigir o erro.
Fiz algumas atualizações nos arquivos, mas o erro continuou. Tentei consertar, mas não deu certo. Começou a dizer que o modelo de IA não existia e queria mudar o código de uma forma que eu sabia que não estava certa.
Pra resolver isso, tive que corrigir o código manualmente. Fui ao site oficial da Gemini e copiei e adaptei o código de exemplo de lá.
Essa é uma das razões pelas quais acho importante ter algum conhecimento básico sobre programação, mesmo quando programação vibe. Muitas vezes a gente se depara com algo que o modelo de IA não consegue resolver, e saber programar é importante pra gente entender que o que o modelo tá dizendo não tá certo e poder corrigir isso. Esse tipo de ferramenta deve ser usado sempre para acelerar o processo, não para substituí-lo completamente.
Mas, mesmo tendo que escrever esse código manualmente, o Tabnine foi útil por causa dos recursos de preenchimento automático. Por exemplo, quando eu quis converter os caminhos das imagens selecionadas em imagens para fornecer ao modelo, bastava começar a digitar o que eu queria e obtinha o código correto:
Também vemos acima do nome da função que o Tabnine oferece ferramentas para editar, testar, corrigir, explicar e documentar a função. Por exemplo, usei a função documentar para documentar o código, e ela me mostrou uma comparação com as alterações que planejava fazer, que eu poderia aceitar ou rejeitar:
Resultado final
O aplicativo agora estava funcionando e pronto para ser usado. Vamos tentar criar uma figura de ação para uma determinada pessoa com acessórios tirados de outras imagens:
E aí está o resultado:
Testando com o Tabnine
É super importante escrever testes automatizados quando estiver trabalhando em um projeto. Uma das funções do Tabnine é nos ajudar a escrever esses testes.
Esse recurso tá disponível na aba “Testar” ou clicando na opção “Testar” acima da definição de uma função. Quando fizermos isso, o Tabnine vai criar um plano de teste para essa função.
Um plano de teste é composto por cenários com o comportamento esperado da função. Aqui estão alguns dos cenários que a Tabnine identificou para a nossa função:
Para criar um teste para um cenário específico, basta clicar nele. Isso vai gerar a função de teste para esse cenário específico, que a gente pode integrar ao nosso conjunto de testes.
Quando apliquei essas alterações, o arquivo de teste continha a função de teste e nada mais. Faltavam as importações e a classe de teste ao redor. Tive que voltar para a aba “Chat” para pedir que terminasse de fazer o teste. Depois disso, tive um erro porque o nome do arquivo que ele criou estava errado. Como antes, eu disse que tinha ocorrido um erro e ele corrigiu. Agora o teste funciona direitinho.
Quando adicionei outros testes depois disso, tudo funcionou bem.
Conclusão
O Tabnine mostra seu potencial como uma ferramenta poderosa para desenvolvimento rápido, integrando-se facilmente com editores de código populares. Seus recursos de codificação assistida por IA aceleram o processo, permitindo que os desenvolvedores se concentrem na inovação, em vez de tarefas rotineiras.
Mas, minha tentativa de criar um aplicativo só com vibe-coding mostrou como é importante ter uma base sólida dos princípios de programação. Confiar cegamente no código gerado pela IA sem verificar se ele é adequado pode trazer complicações, deixando os desenvolvedores vulneráveis a erros que talvez não entendam completamente.
O Tabnine funcionou bem na maior parte do tempo, mas muitas vezes parecia que o modelo de IA por trás era o verdadeiro motor, tipo outras ferramentas como o GitHub Copilot. Embora o Tabnine seja realmente uma ferramenta útil, essa experiência mostra o valor insubstituível do conhecimento tradicional de programação para garantir o desenvolvimento eficaz e sustentável de aplicativos de software complexos.