This app is an AI-powered customer support application that:
- Has access to terms and conditions (retrieval augmented generation, RAG)
- Can access tools (Java methods) to perform actions
- Uses an LLM to interact with the user
The application includes implementations for:
- LangChain4j in the
mainbranch - Quarkus in the
quarkusbranch (thanks to @edeandrea!) - Spring AI in the
spring-aibranch (thanks to @tzolov!) - Semantic Kernel in the
semantic-kernelbranch (thanks to @sohamda!)
The UI is built using Vaadin Hilla and the backend is built using Spring Boot.
- Java 17+
- OpenAI API key in
OPENAI_API_KEYenvironment variable
Run the app by running Application.java in your IDE or mvn in the command line.
This demo was inspired by the LangChain4jCustomer Support Agent example.
I want to thank the LangChain4j, Quarkus, Spring AI, and Microsoft teams for their support in building this demo. Especially, I want to thank @edeandrea from the Quarkus team for his help in building the Quarkus implementation, @tzolov from The Spring AI team for his help in building the Spring AI implementation and @sohamda from Microsoft for the Semantic Kernel implementation.
