Skip to content

Engage with CipherQuest, a sophisticated AI chatbot designed with a comprehensive knowledge base and a closely guarded secret. The bot won't reveal its secret until you ask the right questions. Can you outsmart our AI and extract the hidden truth? Test your skills and uncover the secret in CipherQuest!

License

Notifications You must be signed in to change notification settings

matteocodogno/CipherQuest

Repository files navigation

CipherQuest

Description

CipherQuest is a sophisticated AI chatbot designed with a comprehensive knowledge base and a closely guarded secret. The bot won't reveal its secret until you ask the right questions. Can you outsmart our AI and extract the hidden truth? Test your skills and uncover the secret in CipherQuest!

Table of Contents

Pre-requisites

  • Java 21, you can use SDKMAN to install it.
  • Maven, you can use SDKMAN to install it.
  • Docker
  • Node.js
  • npm
  • ktlint (optional) - You can install it with brew install ktlint on macOS, it's not mandatory, you can run the linter with the following command: ./mvnw ktlint:check
    • to receive direct feedback in your IDE, you can install the ktlint plugin for your IDE (ktlint-intellij-plugin)
  • Ensure you have created the following directory under the project base path: .mnt/postgres/data
  • Configure the following environment variables:
    • OPENAI_API_KEY with the OpenAI API key, alternatively you can define it in your run configuration of your IDE.

Initialization

In order to install all the dependencies, you need to:

  • Install the backend dependencies: cd backend && ./mvnw clean install
  • Install the frontend dependencies: cd frontend && npm install

Usage

Now you can run the application. As you can guess, you need to run the backend and the frontend separately. Here's how you can do it:

  • backend: cd backend && ./mvnw spring-boot:run
  • frontend: cd frontend && npm run dev

At this point, you should have two services up and running. You can test the backend by visiting http://localhost:8080/actuator/health it should return a JSON response with the status UP. Navigating to http://localhost:5173 you should see the frontend application. First time you land on the page, you will be asked to provide a name, it is mandatory and it will be stored in the local storage of your browser.

⚠️ Important: Until the logout feature is implemented, you have to clear the local storage of your browser to log out to start a new session.

IDE Configuration

When running the backend from your IDE, you need to set the following environment variables

  • OPENAI_API_KEY with the OpenAI API key
  • Working directory: ${PWD}/backend IDE Configuration

Features

  • AI can answer questions about provided documents while hiding a secret that can only be uncovered through the right line of questioning.
  • Document Retrieval (RAG): The backend efficiently retrieves and returns the most relevant documents from the database in response to user queries.
  • Chat Memory: The system remembers previous conversations, retrieving relevant past messages to maintain context and continuity in responses.

How to Contribute

CONTRIBUTING

Tests

No tests have been written yet.

Credits

License

License

About

Engage with CipherQuest, a sophisticated AI chatbot designed with a comprehensive knowledge base and a closely guarded secret. The bot won't reveal its secret until you ask the right questions. Can you outsmart our AI and extract the hidden truth? Test your skills and uncover the secret in CipherQuest!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published