π Welcome to WhatsAgenda Chatbot for Calendar Configuration! This chatbot is designed to assist WhatsAgenda customers in setting up their schedules. The tool streamlines scheduling, appointment management, and customization of service hours, ensuring an efficient and user-friendly experience. By combining the latest retrieval-augmented generation (RAG) technologies, we offer a robust and innovative solution for your scheduling needs.
- Project Description
- Project Objectives
- Main Features
- Technologies Used
- Project Structure
- Running the Project
- Next Steps (Future Features)
- License
- How to Contribute
- Author and Contact
The main objective of this chatbot is to simplify and optimize the scheduling configuration process for WhatsAgenda users, ensuring a personalized and efficient experience. It aims to:
- Assist WhatsAgenda customers in setting up their schedules.
- Simplify the scheduling and appointment management process.
- Offer an easy-to-use interface for customizing service hours.
- Schedule Configuration: The chatbot guides the user through the steps of setting up the schedule.
- Dynamic Data Retrieval: Uses RAG to provide precise and contextual responses based on company data.
- User-Friendly Interface: Developed with Streamlit for a smooth and accessible user experience.
- Python: Main programming language.
- LangChain: For conversation logic and natural language processing.
- Hugging Face Embeddings and FAISS: For efficient information storage and retrieval.
- Streamlit: For creating the user interface.
- Groq API and Llama3-70b-8192: For high-performance processing and large-scale language modeling.
- LangSmith (Optional): For tracking and evaluating conversation quality.
The project is organized as follows:
.streamlit/
: Contains Streamlit configuration files.config/
: Contains configuration files, such as environment variables.data/
: Data and storage files.docs/
: Relevant documentation and user guides.notebooks/
: Jupyter Notebook files for analyses and experiments.prints/
: Application screenshots.scripts/
: Auxiliary scripts for specific tasks.src/
: Application source code.venv/
: Python virtual environment..gitignore
: Git configuration file.LICENSE
: Project license.README_ptbr.md
: README in Portuguese.README.md
: README in English.requirements.txt
: Project dependencies list.setup.bat
: Script to install dependencies and run the chatbot on Windows.setup.sh
: Script to install dependencies and run the chatbot on Linux.
whatsagenda-chatbot-for-calendar-configuration/
βββ .streamlit/
βββ config/
β βββ .env
β βββ .env.example
βββ data/
β βββ vectorstore/
β βββ whatsagenda-data.pdf
βββ docs/
β βββ commits_pattern_ptbr.md
β βββ commits_pattern.md
βββ notebooks/
β βββ dependecies_list.ipynb
βββ prints/
β βββ chatbot_1.png
β βββ chatbot_2.png
βββ scripts/
β βββ vectorstore_create.py
βββ src/
β βββ assets/
β βββ assets/
β β βββ favicon.ico
β β βββ vertical_logo.png
β βββ static/
β β βββ ai_profile_photo.png
β β βββ human_profile_photo.png
β βββ app.py
β βββ functions.py
β βββ html_templates.py
β βββ models.py
βββ venv/
βββ .gitignore
βββ LICENSE
βββ README_ptbr.md
βββ README.md
βββ requirements.txt
βββ setup.bat
βββ setup.sh
To run the chatbot locally, follow these steps:
- Clone the repository:
git clone https://github.com/brunotanabe/whatsagenda-chatbot-for-calendar-configuration.git
- Navigate to the project directory:
cd whatsagenda-chatbot-for-calendar-configuration
- Install
pip
andvenv
if not already installed:sudo apt-get update && sudo apt-get install python3-pip python3-venv
- Create a virtual environment:
python3 -m venv venv
- Activate the virtual environment:
source venv/bin/activate
- Install the dependencies:
pip install -r requirements.txt
- Run Streamlit:
python3 -m streamlit run src/app.py
NOTE: Run the above commands in the project's root directory.
Run the setup.sh
script to install dependencies and run the chatbot:
- Clone the repository:
git clone https://github.com/brunotanabe/whatsagenda-chatbot-for-calendar-configuration.git
- Navigate to the project directory:
cd whatsagenda-chatbot-for-calendar-configuration
- Grant execute permission to the script:
chmod +x setup.sh
- Run the script:
./setup.sh
NOTE: Run the above commands in the project's root directory.
To run the chatbot locally, follow these steps:
- Clone the repository:
git clone https://github.com/brunotanabe/whatsagenda-chatbot-for-calendar-configuration.git
- Navigate to the project directory:
cd whatsagenda-chatbot-for-calendar-configuration
- Install
pip
andvenv
if not already installed:python -m ensurepip --upgrade
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
venv\Scripts\activate
- Install the dependencies:
pip install -r requirements.txt
- Run Streamlit:
python -m streamlit run src/app.py
NOTE: Run the above commands in the project's root directory.
Run the setup.bat
script to install dependencies and run the chatbot:
- Clone the repository:
git clone https://github.com/brunotanabe/whatsagenda-chatbot-for-calendar-configuration.git
- Navigate to the project directory:
cd whatsagenda-chatbot-for-calendar-configuration
- Run the script:
setup.bat
NOTE: Run the above commands in the project's root directory.
- Currently, the variable receiving the response from the llm receives chunks of the message, but it only displays the response when it is complete. To improve the user experience, it would be interesting to display the response chunk by chunk.
- Currently, the user can send a new message while the model is still responding to the previous request, which usually breaks the application. It would be useful to implement a mechanism that prevents the user from sending a new message while the model is still responding to the previous request.
- If you wish to use your own database, simply create it using the
scripts/vectorstore_create.py
file and modify thesrc/functions.py
file to use your database. - The app runs on
localhost:8501
, but you can change the port in the.streamlit/config.toml
file.
Distributed under the MIT License. See LICENSE
for more information.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the project
- Create your Feature Branch (
git checkout -b feature/NewFeature
) - Commit your changes (
git commit -m 'Add some NewFeature'
) - Push to the Branch (
git push origin feature/NewFeature
) - Open a Pull Request
I hope you enjoy using WhatsAgenda Chatbot for Calendar Configuration! For any questions or suggestions, feel free to get in touch. π