Skip to content

This example repository illustrates the usage of LLMs with Quarkus by using the quarkus-langchain4j extension to build integrations with ChatGPT or Hugging Face. The code dives into simple conversations, retrieval augmented generation (RAG) and building agents.

License

arconsis/quarkus-langchain-examples

Repository files navigation

Examples for the Quarkus LangChain Extension

This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

In this tutorial series, we take a close look into the Quarkus LangChain extension (Docs, GitHub). This is the example code to the video tutorials linked below

Video Tutorials

The following videos demonstrate and explain this code.

Standard Quarkus README

Prerequisites

This project example uses JDK 21. So please make sure you have a JDK 21 selected when building this project.

To get started

  • create a .env file by copying the .env.template file
  • enter either your OpenAI API key or your HuggingFace API key

Running the application in dev mode

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

./gradlew quarkusDev

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

Packaging and running the application

The application can be packaged using:

./gradlew build

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

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

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

./gradlew build -Dquarkus.package.type=uber-jar

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

Creating a native executable

You can create a native executable using:

./gradlew build -Dquarkus.package.type=native

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

./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true

You can then execute your native executable with: ./build/quarkus-llms-java-1.0.0-SNAPSHOT-runner

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

Related Guides

  • RESTEasy Reactive (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
  • SmallRye Health (guide): Monitor service health

Provided Code

RESTEasy Reactive

Easily start your Reactive RESTful Web Services

Related guide section...

SmallRye Health

Monitor your application's health using SmallRye Health

Related guide section...

About

This example repository illustrates the usage of LLMs with Quarkus by using the quarkus-langchain4j extension to build integrations with ChatGPT or Hugging Face. The code dives into simple conversations, retrieval augmented generation (RAG) and building agents.

Topics

Resources

License

Stars

Watchers

Forks