NikolaTesla.ai is an advanced chatbot application that provides in-depth knowledge and information about the life and work of Nikola Tesla. Users can engage in a chat conversation with the chatbot and ask any questions about Nikola Tesla, receiving informative and well-structured responses. This readme provides an overview of the NikolaTesla.ai Chatbot, its features, and the technology stack used.
-
AI Chatbot: Engage in a chat conversation with the AI chatbot to ask questions and seek information about Nikola Tesla's life and work.
-
Document Analysis: The chatbot creates chunks, embeddings, and conducts similarity searches to provide detailed and accurate responses.
-
Similarity Search: Utilizes Langchain for similarity searches to find related content about Nikola Tesla.
-
ChromaDB Integration: Store vector searches in ChromaDB for efficient retrieval of relevant information.
-
React: The user interface of NikolaTesla.ai is built using React, providing a modern and responsive design.
-
Tailwind CSS: Tailwind CSS is used for styling and creating a visually appealing user interface.
- Python Flask: The server-side logic of the chatbot is implemented using Flask, a micro web framework for Python.
-
Langchain: Langchain is used for creating embeddings and conducting similarity searches for content about Nikola Tesla.
-
OpenAI: OpenAI's ChatGPT model 3.5 powers the chatbot, offering natural language understanding and generation capabilities.
-
Embeddings: Embeddings are generated for document analysis and content representation.
-
Tiktoken: Tiktoken is used for tokenization and word counting in the text.
-
PyPDF: PyPDF is used for parsing and extracting text from documents.
- ChromaDB: ChromaDB is integrated to store vector searches for efficient retrieval of related content.
![Screenshot 2023-10-21 at 2 46 12 AM](https://private-user-images.githubusercontent.com/115460552/277054418-e86cee95-93ae-4807-8e7d-913f61d6aaf4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODU4MTQsIm5iZiI6MTczOTY4NTUxNCwicGF0aCI6Ii8xMTU0NjA1NTIvMjc3MDU0NDE4LWU4NmNlZTk1LTkzYWUtNDgwNy04ZTdkLTkxM2Y2MWQ2YWFmNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNTU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZmZjNzY4ODZmNmRiNDdjYTJhZTYzN2ExNTk0YmJiYzE0OWRhMzUyNmNmNDliMWFiMWEwNzViNmJlNjA5N2U4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ia-iohmVAghKk1aSE7fD5luou-ykozhSfXFiwL46wgw)
![Screenshot 2023-10-21 at 2 46 22 AM](https://private-user-images.githubusercontent.com/115460552/277054449-2c4dc8a4-33a0-486d-98d1-e8cc8cb68871.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODU4MTQsIm5iZiI6MTczOTY4NTUxNCwicGF0aCI6Ii8xMTU0NjA1NTIvMjc3MDU0NDQ5LTJjNGRjOGE0LTMzYTAtNDg2ZC05OGQxLWU4Y2M4Y2I2ODg3MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNTU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04Mzg5MjFmZmQyOTdkOTBlNWFjMDkzNDQ4NGNiZGQ1Y2JhZGYyYzI0YWIyODQ0MmQxMDM4ODJlNTA3Nzc5Y2RmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.GmxmMDdg8PTT15FSbJDd_2O1hNLFoGLL3ttzh__VcxQ)
![Screenshot 2023-10-21 at 2 46 59 AM](https://private-user-images.githubusercontent.com/115460552/277054502-d0d7feea-7fb3-4f9d-9cde-9e216dfc0342.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODU4MTQsIm5iZiI6MTczOTY4NTUxNCwicGF0aCI6Ii8xMTU0NjA1NTIvMjc3MDU0NTAyLWQwZDdmZWVhLTdmYjMtNGY5ZC05Y2RlLTllMjE2ZGZjMDM0Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNTU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05NzQwODk0ZDhhNjdkYzgwZWU3MGRkZmFiYzI2YTJiZmJiMzQ3YWFlYzgzMDdmMDcyZWJmOTQ2OTg1Njc4MGNmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.zIk4nEw_X6z8xGhraSGcLNcOBWY3BZd8YKmHnQiz4KY)
![Screenshot 2023-10-21 at 2 47 06 AM](https://private-user-images.githubusercontent.com/115460552/277054531-a61868ba-97fd-41df-91b1-414ec99499cd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODU4MTQsIm5iZiI6MTczOTY4NTUxNCwicGF0aCI6Ii8xMTU0NjA1NTIvMjc3MDU0NTMxLWE2MTg2OGJhLTk3ZmQtNDFkZi05MWIxLTQxNGVjOTk0OTljZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNTU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNDA3MTNmYTdlZDkzYmUwYzZlODRmNWJmYTkyYTAwNDZlMjVlMTg5YWVkMTliNzZiZmMyNzQ3YTczYzFkZGYxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Xv_oCCiV0wCM0v4n22XdzcwLjHiUco3BwBUbzegt9Ac)
![Screenshot 2023-10-21 at 2 47 21 AM](https://private-user-images.githubusercontent.com/115460552/277054558-0b5c7a4f-b868-4167-a110-416ffc95408b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2ODU4MTQsIm5iZiI6MTczOTY4NTUxNCwicGF0aCI6Ii8xMTU0NjA1NTIvMjc3MDU0NTU4LTBiNWM3YTRmLWI4NjgtNDE2Ny1hMTEwLTQxNmZmYzk1NDA4Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQwNTU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00NjBjYjVmZWMxM2UwNTk5NTE4ZDFhMjg4MGFiMGY5Yzk0YWMwMjRiZGQ3YTdlOGVkZTI0YWM2ZWEzOTEwYzMxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WfZKOaXRPt5BX8JbVTZlck5T2jkRYVWxcMbc1CHUGQw)
-
Clone the repository from GitHub.
-
Navigate to the project directory and install the required dependencies for both the frontend and backend using
npm install
for React andpip install -r requirements.txt
for Python. -
Set up a database connection to ChromaDB and configure the database settings in the backend.
-
Create environment variables for sensitive information, such as API keys and database connections.
-
Start the frontend and backend servers using
npm start
for React andpython app.py
for Python Flask. -
Access NikolaTesla.ai via a web browser by navigating to the specified URL (usually
http://localhost:3000
).
-
Open NikolaTesla.ai in your web browser.
-
Engage in a chat conversation with the AI chatbot to ask any questions and seek information about Nikola Tesla.
-
The chatbot will provide detailed and informative responses, utilizing document analysis, embeddings, and similarity searches.
-
Store vector searches in ChromaDB for efficient retrieval of related content about Nikola Tesla in the future.
-
Use NikolaTesla.ai to gain insights and knowledge about the life and work of Nikola Tesla.
Contributions to the NikolaTesla.ai Chatbot are welcome. Please follow the guidelines outlined in the CONTRIBUTING.md file.
This project is open-source and available under the MIT License.
- Ansh Kathpal
Special thanks to the React, Flask, and OpenAI communities for providing resources and libraries that made this advanced chatbot application possible.