Os primeiros emitters do AI Parlance
Depois de definir a arquitetura do projeto, comecei a desenvolver os primeiros emitters do AI Parlance.
Para quem ainda não conhece a proposta, o AI Parlance é um projeto open source que busca criar uma linguagem intermediária padronizada para IA. A ideia é simples: o modelo gera apenas uma representação universal da lógica da aplicação, enquanto emitters especializados convertem essa representação para qualquer linguagem de programação.
Hoje, a lógica da aplicação e a sintaxe da linguagem de programação são geradas juntas. Como a mesma lógica precisa ser expressa de formas diferentes para cada linguagem, os LLMs acabam gastando muitos tokens produzindo sintaxe específica de cada linguagem, em vez de gerar uma representação compacta e independente de linguagem.
No AI Parlance, a responsabilidade é dividida:
- A IA pensa utilizando uma linguagem única.
- Os emitters ficam responsáveis por traduzir essa representação para JavaScript, TypeScript, Python, Go, PHP, Java, C#, Rust ou qualquer outra linguagem.
Os primeiros emitters já conseguem gerar código básico a partir da representação intermediária. Ainda há muito trabalho pela frente, principalmente em recursos mais avançados, mas a arquitetura já demonstra que a separação entre lógica e sintaxe é viável.
Essa abordagem traz algumas vantagens interessantes:
- redução do consumo de tokens;
- maior consistência entre diferentes linguagens;
- facilidade para adicionar suporte a novas linguagens;
- emitters independentes que podem evoluir separadamente;
- possibilidade de otimizações específicas para cada linguagem sem alterar a forma como a IA "pensa".
Um dos objetivos futuros é permitir que a comunidade desenvolva seus próprios emitters, tornando o ecossistema extensível e desacoplado. Se surgir uma nova linguagem, basta implementar um novo emitter — não é necessário ensinar essa linguagem novamente ao modelo.
Ainda é um projeto em evolução, mas acredito que esse tipo de arquitetura pode ajudar a tornar a geração de código por IA mais eficiente, previsível e independente de linguagem.
Criei um Playground onde dá pra fazer uns testes legais de exemplo:
https://aiparlance.org/pt/#playground
Gostaria de ouvir a opinião da comunidade.
Faz sentido tratar linguagens de programação apenas como destinos de compilação, deixando que a IA trabalhe sempre sobre uma representação intermediária única?
Fonte: https://aiparlance.org/pt/