jPilot is yet another Java GenAI chatbot. Based on Minipilot (developed in Python with Flask, OpenAI and LangChain), jPilot is a demo written in Java with OpenAI, LangChain4J, ThymeLeaf and JQuery.
From the browser UI you will be able to:
- Load CSV data, split, embed, store and index in Redis
- Customize the system and user prompt based on the type of chatbot running (based on the ingested and indexed data)
- Use semantic caching, with a UI panel to review, edit and remove entries
- Load and ingest multiple CSV files and create the corresponding indexes. However, only one index at time is used using the Redis aliasing mechanism
- Application logs are appended to a Redis stream, to review the latest logs directly from the UI
export OPENAI_API_KEY=...
export JPILOT_ASSETS=./assets
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/"
git clone https://github.com/mortensi/jpilot
cd jpilot
mvn clean install
mvn exec:java -Dexec.mainClass=com.redis.jpilot.JpilotApplication
- Now point your browser to http://localhost:9090/data.
- Import a CSV with your data. As an example, download the IMDB movies dataset
- Click on "create" to start reading the CSV file and create the index
- When done (it will take up to thirty minutes to import 10,000+ movies in the dataset), click on "Make current" to select the new index
- Start asking and review how the cache starts collecting questions.
For a feature complete demo, try Minipilot.