JeebBot is an AI-powered conversational agent designed to simulate dating conversations. It helps users practice and improve their conversational skills, providing an engaging and dynamic experience.
The project aims to gain hands-on experience in developing LLM conversational application and to explore the generative AI prompt engineering techniques.
The following features are being developed for JeebBot. Check them off as they are completed:
-
Basic Conversation Simple and engaging conversational abilities for general communication.
-
Adjustable Characteristic Allows users to specify name and characteristic of the bot.
-
Memory Building Builds and retains knowledge about the "other person" during conversations.
-
Conversation Initiation and Conclusion Initiates conversations at appropriate times and knows when to conclude them.
-
Web Information Retrieval Searches for relevant real-time information from external sources.
-
Streamlit UI Provides an intuitive chat interface with messaging and tone selection capabilities.
JeebBot is built using the following technologies:
- LangChain: For constructing and managing the conversational agent.
- OpenAI API: Language model powering the conversation.
- Streamlit: For creating a user-friendly web-based interface.
- llama.cpp: For hosting local LLM.
Follow these steps to set up and run JeebBot locally:
-
Clone the repository:
git clone https://github.com/witoong623/JeebBot.git cd jeebbot
-
Create virtual environment: Create virtual environment using tool such as virtualenv.
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
streamlit run app.py config.yaml
-
Open your browser and navigate to
http://localhost:8501
to start using JeebBot.
Follow these steps to set up and run JeebBot locally:
-
Clone the repository:
git clone https://github.com/witoong623/JeebBot.git cd jeebbot
-
Build the Docker image:
./scripts/build-prod-image.sh
-
Run the Docker Compose:
docker compose -f docker/docker-compose.yaml up -d
-
Open your browser and navigate to
http://localhost:8501
to start using JeebBot.
Please read LOCAL_MODEL_HOSTING.md for more detail.
JeebBot is currently under active development. Here's the roadmap:
- Complete the basic conversation feature. (DONE)
- Implement bot's characteristic adjustment. (DONE)
- Add memory capabilities to remember key facts. (DONE)
- Make the bot remember key facts automatically.
- Inject context of conversation such as time, day.
- Tune prompt or implement time base to initiate conversation from bot first, and to stop when appropriate.
- Polish the UI for a seamless user experience.
- Implement infrastructure to evaludate chat experience.