Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

langchain-poc

This project uses Quarkus, the Supersonic Subatomic Java Framework, with LangChain4j for AI integration using local Ollama, and Vaadin for the web UI.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/.

Java AI Service

This application includes an AI service powered by LangChain4j and Ollama that tells you random cool facts about Java. It features a beautiful Vaadin web interface to interact with the service.

Prerequisites

Make sure you have Ollama running locally. Download it from https://ollama.ai and start it:

ollama serve

Then pull a model (the default is qwen2.5-coder):

ollama pull qwen2.5-coder

Configuration

Edit src/main/resources/application.properties if you need to customize the Ollama connection:

ollama.base-url=http://localhost:11434
ollama.model.name=qwen2.5-coder

Web Interface

The application features a beautiful Vaadin web interface:

  1. Open your browser and navigate to: http://localhost:8080
  2. Click the "Get Random Java Fact" button to fetch a new fact
  3. The fact will be displayed in a centered, styled div

API Endpoints (Direct Access)

Get a Random Cool Java Fact (JSON)

curl http://localhost:8080/java-ai/cool-fact

Each call returns a different random fact about Java!

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./mvnw quarkus:dev

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

Observability & Debugging

The application includes comprehensive observability tools to debug what's being sent to the AI model:

Metrics (Prometheus)

View real-time metrics at:

http://localhost:8080/q/metrics

Health Checks

Check application health at:

http://localhost:8080/q/health

Debug Logging

When running in dev mode, detailed logs show:

  • Model initialization: Ollama connection details
  • Prompts sent: Full prompts being sent to the model
  • Responses received: Complete model responses
  • Errors: Detailed error traces with context

Check console output for debug logs like:

=== PROMPT SENT TO MODEL ===
Prompt: Tell me one random cool fact about Java
============================
=== RESPONSE FROM MODEL ===
Response: [AI response here]
===========================

Logging Configuration

To adjust logging levels, edit src/main/resources/application.properties:

quarkus.log.category."org.acme".level=DEBUG
quarkus.log.category."dev.langchain4j".level=DEBUG

Packaging and running the application

The application can be packaged using:

./mvnw package

It produces the quarkus-run.jar file in the target/quarkus-app/ directory. Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/ directory.

The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./mvnw package -Dquarkus.package.jar.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar.

Creating a native executable

You can create a native executable using:

./mvnw package -Dnative

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./mvnw package -Dnative -Dquarkus.native.container-build=true

You can then execute your native executable with: ./target/langchain-poc-1.0.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.

Provided Code

REST

Easily start your REST Web Services

Related guide section...

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages