O nosso trabalho: o que construímos
A Mesterséges Intelligencia Központ Kft. é uma empresa de desenvolvimento de software de Budapeste. Construímos um ERP com faturação e CRM, um pseudonimizador de documentos jurídicos, um sincronizador de dados, um gestor de frotas de portáteis escolares e um jogo 3D com comentador de IA ao vivo.
Todos os sistemas aqui descritos existem e funcionam; quando ainda estamos a colocar um em funcionamento, indicamo-lo. Não divulgamos os nomes dos nossos clientes nem dos produtos. Se precisar de um sistema que não consta desta página, no fim enumeramos também o que mais construímos.
Sistema ERP com faturação e CRM
Desafio. O trabalho diário de uma PME húngara está tipicamente disperso por várias ferramentas: folhas de cálculo, e-mail, um programa de faturação à parte e a interface do banco. O objetivo era um sistema único, assente nos processos da própria empresa, que várias organizações pudessem utilizar sem verem os dados umas das outras.
Solução. Estamos a desenvolver um sistema de planeamento de recursos empresariais (ERP) modular, que serve várias organizações clientes:
- calendário, tarefas e aprovações, e processos executados em segundo plano;
- circulares e uma caixa de correio integrada para as contas de e-mail existentes;
- vendas e CRM, compras, organização de formações, e recursos humanos com análise de currículos assistida por inteligência artificial;
- finanças: faturas emitidas e recebidas, banco, lotes de transferências, processamento salarial e razão geral;
- relatórios e gráficos a partir de qualquer tabela, e um assistente de IA num painel lateral, que também pode ser controlado por voz.
A faturação emite, através do programa de faturação, as faturas comunicadas à NAV, a autoridade tributária húngara, com pré-visualização em PDF e anulação. A conciliação bancária associa cada pagamento à respetiva fatura com base no descritivo da transferência, no número da fatura ou no número de conta do pagador, e regista o pagamento na fatura; as faturas recebidas da NAV entram num lote de transferências após aprovação.
No módulo CRM, os parceiros podem ser organizados em cadeias, as pessoas de contacto têm papéis de decisão, os processos de venda avançam em quadros kanban, as mudanças de fase podem ser rastreadas, as tarefas têm lembretes, a inteligência artificial resume a cronologia do parceiro, e o e-mail e o calendário são sincronizados com a ficha do parceiro.
Com um único início de sessão, todos os módulos ficam acessíveis: a autenticação central funciona com palavra-passe ou com uma conta Google, Microsoft, Apple ou GitHub, com autenticação de dois fatores, organizações, convites e permissões.
Resultado. O sistema está em produção em duas organizações; a faturação está em produção e o módulo CRM está a ser implementado. Aproveitamos esta experiência no desenvolvimento de software empresarial.
Anonimizador de documentos jurídicos
Desafio. Um contrato, uma peça processual ou uma sentença precisam muitas vezes de ser partilhados ou tratados com inteligência artificial, mas nenhum dado pessoal pode sair. Ocultar os dados à mão é lento e é fácil errar: um nome aparece também flexionado, como iniciais ou como assinatura.
Solução. Uma aplicação Windows que corre inteiramente no próprio computador e pseudonimiza documentos jurídicos húngaros (PDF e Word):
- encontra todas as formas do nome dos titulares dos dados: as formas flexionadas, o nome de solteira e o de casada, as iniciais, a assinatura em maiúsculas e o nome que consta num endereço de e-mail;
- os restantes nomes, organizações e moradas são encontrados por um modelo húngaro de reconhecimento de nomes executado localmente, que, na nossa medição, foi 10–13 pontos mais preciso do que os modelos generativos;
- oferece quatro tipos de substituição, entre os quais etiquetas de papel processual e marcadores numerados, e mostra uma folha de verificação antes de guardar;
- reescreve o ficheiro mantendo o formato, incluindo o cabeçalho, as notas de rodapé, os comentários e os metadados.
Resultado. Uma segunda biblioteca de software volta a verificar o ficheiro final e, se restar um único nome original que seja, o programa não guarda. A aplicação pode ser instalada, e os dados não saem do computador.
Jogo 3D de navegador com comentador de IA ao vivo
Desafio. O site de uma empresa costuma dizer que a empresa percebe de inteligência artificial; nós quisemos mostrá-lo. O jogo tinha de funcionar tanto num stand de feira como no site, para visitantes profissionais que não são jogadores: sem nada para aprender, sem registo e sem botão de início. E, durante o jogo, a IA tinha de reagir verdadeiramente ao jogador, em vez de sortear frases escritas de antemão.
Solução. Construímos um jogo de corrida infinita em que o jogador é o próprio T-rex. A cena é desenhada em tempo real pelo WebGL, com three.js, no navegador; o controlo é um único botão. O jogo envia os momentos importantes (perda de uma vida, recorde, subida de nível, nova paisagem, abismo transposto) num relatório resumido ao nosso assistente de IA, um comentador baseado num grande modelo de linguagem, que, a partir dele, fala ao vivo com o jogador. O comentador só fala: não interfere no estado do jogo.
Resultado.
- Nos grandes momentos, o comentário surge em cerca de 1–2 segundos.
- O nosso assistente de IA fala 14 línguas, sempre a língua do jogador, e usa em todas elas o tratamento formal.
- Responde sempre à pergunta que o jogador escreve e, no fim da corrida, resume a partida com pelo menos dois números.
- No computador e no telemóvel corre o mesmo jogo.
- O jogo está em pleno funcionamento: qualquer pessoa o pode experimentar na nossa página inicial.
Levamos o mesmo saber aos nossos trabalhos de desenvolvimento de jogos e de desenvolvimento de chatbots e agentes de IA.
Linha de produção gráfica baseada em IA para o mundo do jogo
Desafio. Um jogo precisa de muitos elementos gráficos num estilo uniforme: árvores, arbustos, rochas, paisagens, obstáculos. Cada um tem de ser feito à escala real, com fundo transparente e contorno exato, porque a deteção de colisões do jogo também assenta nisso. À mão, isto é lento, e uma simples geração de imagens não garante um estilo e um tamanho uniformes.
Solução. Construímos no nosso painel de administração uma linha de produção em seis passos:
- Encomenda: uma breve descrição do tema.
- Plano: um modelo de linguagem escreve o plano do mundo (ambiente, paleta de cores, estado do tempo, os tipos de objetos e as instruções de desenho).
- Folhas de estilo: imagens de exemplo selecionadas fixam o estilo e a escala; o modelo que desenha recebe-as como referência.
- Desenho: um modelo generativo de imagem desenha os objetos, uma folha por tipo, várias folhas em paralelo; a máquina recorta cada folha objeto a objeto, verifica a transparência e o contorno completo, redimensiona para a altura prevista, ajusta as cores à paleta e cria um mapa de normais para a iluminação do jogo.
- Seleção: a aceitação é decidida por uma pessoa.
- Publicação: só a imagem publicada entra no jogo.
Um agendador produz sozinho uma encomenda guardada, dentro da janela de tempo definida e de um limite de chamadas à IA fixado previamente; mesmo assim, a seleção e a publicação continuam a ser manuais.
Resultado. As paisagens e os obstáculos do jogo foram feitos nesta linha de produção. O desenho, o ícone e a forma de colisão de um obstáculo provêm dos mesmos dados de produção: a colisão segue o contorno da imagem ao píxel. Nada entra no jogo sem aprovação humana.
Medição do tamanho em pontos de função com inteligência artificial
Desafio. Uma proposta de software vale tanto quanto a precisão da estimativa que a sustenta. A estimativa em horas depende de quem estima e da equipa, por isso duas propostas são difíceis de comparar, e o cliente não consegue ver o que, em concreto, o fornecedor está a cobrar.
Solução. Medimos o tamanho funcional do desenvolvimento em pontos de função COSMIC (ISO/IEC 19761). O método conta os movimentos de dados: entrada (Entry), saída (Exit), leitura (Read) e escrita (Write). Cada um vale um ponto de função, pelo que o tamanho é independente da tecnologia e de quem desenvolve. Para a medição, construímos um fluxo de trabalho próprio, assistido por IA:
- dividimos o desenvolvimento em grupos de funções e descrevemos cada um com o mesmo modelo: objetivo, intervenientes, dados, funções, funções de IA e o que não faz parte;
- cada grupo de funções é contado várias vezes por vários modelos de linguagem; as execuções constroem um dicionário comum com os nomes dos intervenientes e dos dados, e a sua dispersão mostra a incerteza;
- uma ronda de conciliação garante que cada processo funcional conta exatamente uma vez no projeto, mesmo que apareça em várias descrições;
- o sistema existente é descrito à parte, pelo que só a parte nova conta para o tamanho;
- a medição assinala também aquilo que o tamanho funcional não exprime: interface personalizada, gráficos, funcionamento em tempo real, algoritmo complexo, migração de dados, requisitos não funcionais;
- as fusões automáticas podem ser corrigidas à mão, e a medição concluída pode ser fixada como uma versão inalterável, que se torna a base do contrato.
Resultado. A proposta e o calendário são elaborados a partir do tamanho medido, e duas propostas podem ser comparadas com a mesma medida. O tamanho não é uma estimativa feita a olho, mas uma lista detalhada e rastreável: que processo, com que movimentos de dados, quantos pontos de função vale. Sobre o método de definição de preços, falamos na página Preços.
Sincronizador de dados de MS SQL para PostgreSQL na nuvem
Desafio. Os dados de uma base de dados MS SQL, a correr no servidor próprio de uma empresa, tinham de chegar a um sistema na nuvem, para uma nova aplicação e para relatórios, sem sobrecarregar o sistema de origem e sem escrever nada nele.
Solução. Um programa que corre como serviço do Windows e trabalha apenas com permissões de leitura:
- escolhe, para cada tabela, a forma mais económica de detetar alterações, e encontra as eliminações comparando as chaves;
- reage a uma alteração em 1–3 segundos, cria ele próprio a estrutura da base de dados de destino e acompanha as suas alterações;
- as colunas sensíveis podem ser excluídas e a largura de banda pode ser limitada; à noite, faz uma conciliação e comunica o número de linhas;
- entra em funcionamento com um único instalador e guarda as credenciais de acesso cifradas.
Resultado. O seu funcionamento é verificado por testes automáticos e por um ambiente de teste real com MS SQL e PostgreSQL. Quando é preciso ligar vários sistemas, a automatização de processos é também um trabalho deste tipo.
Gestor de frotas de portáteis para escolas
Desafio. Cerca de uma centena de portáteis escolares com Windows em vários locais, sem domínio nem sistema de gestão de dispositivos: a instalação de software, a atualização e a manutenção das contas faziam-se máquina a máquina, à mão.
Solução. Construímos um sistema próprio de gestão de frotas:
- o agente que corre nos portáteis só estabelece ligações de saída; o servidor central é gerido a partir de uma interface web e mantém um inventário de cada máquina;
- os comandos chegam às máquinas por fases, com paragem de emergência e registo;
- instala e remove software a partir de um catálogo e indica que máquina se desviou do estado exigido;
- gere contas locais uniformes e palavras-passe de administrador guardadas, e atualiza-se também a si próprio por fases, com reversão automática em caso de falha.
Resultado. A frota funciona com este sistema. Também a mudança para o Windows 11 foi decidida com base em medições: segundo os resultados de testes de desempenho executados nas máquinas.
Testadores de IA para aplicações web
Desafio. Uma aplicação web tem de voltar a ser testada após cada alteração, e os testes manuais são lentos e repetitivos.
Solução. Agentes de IA percorrem as aplicações web indicadas num navegador real, complementados por verificações automáticas e de acessibilidade. Cada erro encontrado é aprovado por uma pessoa, e só então se torna um ticket; os agentes aprendem com as decisões de aprovação. As execuções podem ser agendadas e só voltam a analisar as partes que mudaram; as páginas são verificadas também na vista de telemóvel.
Resultado. Funciona como ferramenta interna, para testar os nossos próprios desenvolvimentos.
Teste de recrutamento para colaboradores que trabalham com IA
Para o nosso próprio recrutamento, construímos um teste online de meia hora que mede a forma como o candidato trabalha com a inteligência artificial. Tem quatro partes cronometradas: procura de erros numa aplicação de demonstração com falhas propositadas, uma conversa com um cliente interpretado por uma inteligência artificial, tarefas de raciocínio e uma experiência com um sistema de funcionamento desconhecido. A IA faz uma pré-avaliação das respostas e a decisão é tomada por uma pessoa; os dados dos candidatos são tratados nos termos do RGPD, com prazo de conservação, exportação e apagamento.
Desenvolvimentos próprios mais pequenos
- Programa de ditado: no Windows e no macOS, escreve em qualquer aplicação a partir da voz; o reconhecimento de voz corre localmente, na placa gráfica do computador.
- Verificação de campanhas de cartazes: a fotografia e os dados de localização do colaborador comprovam cada cartaz afixado, com uma visão geral num mapa.
- Gestor de cartas colecionáveis: a câmara do telemóvel reconhece a carta por correspondência de imagens e reconhecimento de texto, e a coleção e os baralhos são geridos num só lugar.
- O nosso site anterior: um agente de IA reorganizava ao vivo o aspeto da página para cada visitante, e outro conversava com ele, também por entrada de voz.
- Este site, para motores de pesquisa e assistentes de IA: em 14 línguas, com uma versão Markdown de cada página, dados da empresa legíveis por máquina e um mapa do site que assinala as versões linguísticas.
O que mais construímos
Os exemplos seguintes não são trabalhos concluídos, mas sistemas que teríamos todo o gosto em construir:
- extração de dados de documentos (faturas, contratos, guias de remessa) com inteligência artificial: Integração de IA;
- um chatbot ou agente de IA de apoio ao cliente que responde a partir dos próprios documentos da empresa: Chatbots e agentes de IA;
- uma loja online com preços personalizados e ligada ao ERP: Desenvolvimento de lojas online;
- uma aplicação iOS e Android com backend e painel de administração: Aplicações móveis;
- um jogo de marca e uma experiência interativa para uma feira ou um site: Desenvolvimento de jogos.