Olá, leitores!
Vamos falar um pouco mais sobre o uso de IA diretamente no IDE do Delphi. Desta vez, abordaremos o recurso nativo chamado Smart CodeInsight, introduzido no Delphi 12 Atenas.
O Smart CodeInsight é uma arquitetura aberta que permite o uso dos seus mecanismos de IA favoritos. Além disso, o RAD Studio oferece uma interface do usuário personalizável para essa integração.
Ele oferece suporte aos seguintes LLMs:
Online: ChatGPT (OpenAI), Gemini (Google) e Claude (Anthropic)
Offline: Ollama
Configurações
Para utilizá-lo, é necessário habilitá-lo. Para isso, basta acessar o menu: Tools > Options > IDE > Smart CodeInsight. E habilitar a opção “Enable AI Engine”, como visto na imagem abaixo.

Nesta janela, você pode configurar a integração de IA nos seguintes campos:
- Checkbox Enable AI Engine ativa todo o recurso.
- Combobox Default AI for Editor (IA padrão para editor)
- Combobox Default AI for Chat Window (IA padrão para janela de bate-papo)
Além disso, na seção Plugins, é possível configurar cada mecanismo de IA em sua guia correspondente, com um conjunto específico de parâmetros. Abaixo estão as opções iniciais sugeridas para cada IA:
- ChatGPT
- BaseURL: https://api.openai.com/v1
- APIKey: API Key from OpenAI
- Model: gpt-4
- Max Token: 2048
- Temperature: 0.1
- Gemini
- BaseURL: https://generativelanguage.googleapis.com/v1beta
- APIKey: API Key from Google AI Studio
- Model: gemini-1.5-pro
- Max Token: 2048
- Temperature: 0.9
- TopK: 1
- TopP: 1
- Claude
- BaseURL: https://api.anthropic.com/v1
- APIKey: API Key from Anthropic
- Model: claude-3-5-sonnet-20240620
- Max Token: 1024
- Anthropic Version: 2023-06-01
- Olhama
- Você pode usar uma imagem do Docker para instalá-lo. Para obter mais informações, consulte a página Configuração do Ollama para Smart CodeInsight na docwiki da Embarcadero
Chat para interação com IA
O chat para interação com a IA é um formulário encaixável da IDE, que funciona como qualquer janela de bate-papo de um LLM. Você pode digitar uma solicitação, escolher um mecanismo (a menos que queira usar o padrão) e aguardar a resposta. Aqui está um exemplo rápido:

Comandos do menu do editor
O menu do editor (botão direito no editor de código) oferece algumas operações predefinidas para o código selecionado no próprio editor. O objetivo é analisar e otimizar uma parte do código-fonte do seu aplicativo.
Como resultado, o mecanismo LLM retorna o resultado na janela do editor, inserindo-o como um comentário após o código analisado.
Comandos disponíveis
Confira os comandos disponíveis para o Smart CodeInsight (no Delphi 12 Atenas):

AI Chat: Abrir a visualização do chat.
Find Bugs: Tente encontrar possíveis bugs no código selecionado.
Explain Code: Explique o código selecionado.
Add Comment: Adicione comentários ao código selecionado.
Complete the code: Complete o código selecionado.
Optimize code: Otimize o código selecionado.
Add unit test: Adicione um teste unitário para o código selecionado.
Convert to Assembly: Converta o código selecionado para Assembly.
Convert to Delphi: Converta o código selecionado para Delphi (de C++ ou Assembly).
Convert to C++ Builder: Converta o código selecionado para C++ Builder.
Fico por aqui, leitores. Espero que testem e gostem de utilizar o Smart CodeInsight. Ele oferece vários recursos para nos auxiliar no desenvolvimento. Até mais!