Postagens

Engenharia de Agentes de IA com LangChain4j, Spring Boot e Gemini

Imagem
1. O Surgimento do Agente de Contexto      O projeto kendo-assistant vai além do paradigma de um chatbot convencional baseado em regras.  Ele opera como um Agente de IA , um sistema que utiliza um LLM ( Large Language Model ) como motor de raciocínio para interagir com o mundo real.      Ao integrar RAG ( Retrieval-Augmented Generation ) e Function Calling , o sistema resolve o problema das "alucinações" dos modelos, ancorando as respostas em dados factuais extraídos de fontes relacionais e documentos técnicos (informação não estruturada). Com base nesses requisitos, foi desenvolvido um Chat Assistente capaz de responder a dúvidas técnicas referentes ao Kendo e, também, levantar dados sobre treinos e alunos de um Dojo — ou seja, um Sensei Virtual .  2. Arquitetura e Orquestração de Agentes      A solução utiliza o padrão de Orquestração de Agentes , no qual o LangChain4j fornece a infraestrutura necessária para que a coorde...

Micro Profile JavaEE com Wildfly Swarm

Imagem
Podemos criar aplicações Java EE separadas, vários arquivos war, jar ou ear. Podemos ter um único container. Porém pensando em micro serviços estaríamos assim gerando um único ponto de falha. Uma alternativa seria cada serviço possuir seu próprio container. Com essa abordagem podemos fazer um sub uso deste. Uma vez que um container possui vários serviços embarcados, os quais podem não estar sendo usados por nossa aplicação. É aí que uma ferramenta como o WildFly Swarm pode facilitar. Ele é uma completa desmontagem do Wildfly, em componentes reutilizáveis chamado frações. Assim podemos dizer quais módulos da API JEE queremos utilizar. O Swarm utiliza o conceito de UberJar , para gerar o arquivo final. Ou seja, um arquivo jar que contém o artefato da aplicação e todos as dependências para que o servidor consiga rodar. Logo teremos um jar um pouco maior, porém poderemos rodar a aplicação com um único java -jar no console. No Wildfly Swarm temos o conceito de fração, ...

Mapeando Enuns com JPA.

O JPA (Java Persistence API)  fornece duas formas  para mapeamento de enumerações em entidades @Enumerated e @MapKeyEnumerated . Os valores das enumerações podem ser persistidos no banco respeitando uma das duas estratégias definidas em javax.persistence.EnumType : ·          ORDINAL -  persistido de acordo com a posição da constante na classe enum ; ·          STRING -  persistido de acordo com o nome da constante na classe enum . Exemplo: ORDINAL @Entity public class Pessoa { @Id private Long id; @Enumerated private TipoPessoa tipo; public Pessoa() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public TipoPessoa getTipo() { return tipo; } public void setTipo(TipoPessoa tipo)...