No meu post anterior, demonstrei como utilizar o AI Builder adaptando o seu modelo de extração de dados de documentos sob a forma de imagem ou sob a forma de documentos PDF. A estruturação de dados oferece muitas vantagens, como referido, sendo uma delas a possibilidade de os utilizar na criação de modelos preditivos. É o que veremos neste artigo: utilizando os dados extraídos de faturas, vamos treinar um modelo de classificação contabilística que seja capaz de prever que lançamentos contabilísticos devem ser efetuados em cada documento. Esta será a base de um sistema de automação inteligente da contabilidade.
Treinar o modelo AI Builder
O primeiro passo para se treinar o modelo de classificação contabilística consiste em identificar que tipo de modelo nos interessa. Neste caso, tratando-se de um modelo preditivo, baseado em dados estruturados, teremos de escolher o modelo de classificação. O resultado do modelo será sempre a previsão da classe mais provável.
Para treinar o modelo, os dados de treino terão se ser alojados numa tabela do Dataverse, este é um requisito do AI Builder. Julgo que não será muito difícil encontrar dados de treino para este tipo de problema, alguns extratos contabilísticos das contas com mais movimento servirão perfeitamente.
Para a nossa demonstração, optámos por definir apenas três classes:
- Rendas e alugueres
- Trabalhos especializados
- Comunicação
Este tipo de classes costuma ter muito movimento pois tipicamente são despesas associadas a fornecimentos e serviços externos, o que as torna ideal para o treino de um modelo preditivo. Por um lado, há uma grande abundância de dados que podem ser utilizados no treino e, por outro, o modelo será mais útil enquanto solução de automação.
Na nossa tabela Dataverse, criámos uma coluna do tipo Choices que permite a escolha de uma das classes:
Esta coluna representa a variável de output, ou a label, que o modelo vai tentar prever. As variáveis de input (ou features) são as seguintes:
- Data da fatura
- Descrição de cada item da fatura
- NIF do fornecedor
- Valor total da fatura
Existem outras variáveis que potencialmente interessariam, como é o caso da taxa e do valor do IVA. No entanto, para evitar a correlação entre algumas destas variáveis e para simplificar o treino do modelo, tornando-o mais eficaz, selecionamos apenas estas.
Todo este processo é conduzido de forma amigável através de uma interface no-code do AI Builder. Apesar da interface ser amigável, é importante saber escolher o modelo, as suas features e interpretar os resultados da sua eficácia. É importante analisar os resultados nos dados de treino e nos dados de teste para evitar o overfitting do modelo.
Operacionalizar o modelo preditivo
Tal como vimos no artigo anterior, a operacionalização do modelo, na Plataforma Power, é muito fácil. Não sei se é possível, de todo, consumir um modelo AI Builder fora da plataforma (algo que também seria interessante).
Dentro da plataforma, podemos chamar o modelo através do Power Automate e integrá-lo num processo empresarial. Isto dá-nos imensa flexibilidade e inúmeras oportunidades para automação inteligente.
Também é possível sincronizar os dados da tabela Dataverse com o modelo, de modo a que, quando entram novos dados, se façam as previsões. Penso que esta solução é fantástica do ponto de vista da integração de dados e praticamente não requer manutenção.
Uma alternativa, que utilizámos na nossa demonstração, é criar uma app com o Power Apps e deixar o utilizador correr o modelo ao vivo e analisar os resultados. Esta arquitetura não teria a mesma capacidade para lidar com grandes volumes de dados mas permite uma interação mais rápida com o modelo. É possível também que o utilizador corrija rapidamente falhas no processo de classificação.
Para o efeito, optámos por chamar o modelo a partir do Power Automate, sendo o trigger a ação do utilizador da app:
Como vemos nesta imagem, o Power Automate recebe os parâmetros que o utilizador envia a partir da aplicação. É interessante verificar que este processo corre no final do processo anterior (a estruturação dos dados).
Assim, na interface da aplicação, pensámos numa solução que permitisse ao utilizador verificar e visualizar cada documento e clicar no botão que executa o flow:
Selecionando o documento a classificar, vê-se do lado direito do screen a imagem PDF da fatura em causa. O botão azul recolhe os parâmetros da fatura e envia-os para o Power Automate que responde à aplicação com o resultado:
Aqui, se a classificação está correta, as regras de lançamento a débito e a crédito são facilmente aplicadas. O utilizador pode simplesmente validar que o lançamento a efetuar está correto (e corrigi-lo, se necessário) e clicar no botão “Efetuar lançamento”.
Cá está mais uma solução fácil de implementar e com grande impacto. Aguardo os vossos comentários.