An AI-powered chatbot that provides information about Jupiter's moons using LangChain, OpenAI, and Pinecone.
- Vector-based search using Pinecone
- OpenAI GPT-4 integration
- Comprehensive data about Jupiter's moons
- Interactive chat interface
- Python 3.8+
- OpenAI API key
- Pinecone API key
- Galileo API key (for evaluation)
- Clone the repository:
git clone https://github.com/erinmikailstaples/JupiterAtlas.git
navigate into the correct directory
cd backend
- Create a virtual environment using uv:
uv venv
- Activate the virtual environment:
uv venv/bin/activate
- Install the dependencies:
uv pip install -r requirements.txt
- Copy and rename .env.example to .env and add your OpenAI and Pinecone API keys.
-
Update your .env file with the respective secrets
-
The chatbot uses the following default settings:
- Index Name: "jupitermoons-2"
- Namespace: "moonvector"
- First, initialize the vector store:
python vector_store.py
- Verify vedctors were created successfully by running:
python review_vectors.py
- Run the chatbot:
python chatbot.py
-
Data Processing: The system reads Jupiter moon data from TSV (reference: jupiter_moons.tsv, startLine: 1, endLine: 157)
-
Vector Store Creation: Data is processed and stored in Pinecone (reference: vector_store.py, startLine: 12, endLine: 47)
-
Chatbot Interaction: The chatbot uses:
- OpenAI embeddings for text understanding
- Pinecone for efficient vector search
- GPT-4 for generating responses
-
If vectors aren't appearing, check:
- Pinecone API key validity
- Index name and namespace configuration
- Vector store initialization logs
-
For embedding issues:
- Verify OpenAI API key
- Check embedding model availability
- Review chunking configuration
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NASA for Jupiter moons data
- OpenAI for GPT-4 and embeddings
- Pinecone for vector storage
- LangChain for the chat framework