Open Source Compass is an AI-powered platform that helps developers discover and contribute to open source projects that match their skills and interests. It leverages semantic search, vector databases, and Google Gemini LLM via Vertex AI to provide actionable contribution guidelines for selected issues.
- Ingests top issues and docs from open source repos into MongoDB
- Creates vector embeddings for semantic search
- Matches user queries/skills to relevant issues
- Streams AI-generated contribution guidelines using Gemini LLM
- Interactive Streamlit web app for search and exploration
The architecture diagram below illustrates the workflow of Open Source Compass. It starts with fetching issues and documentation from GitLab, which are processed by an ingestion script to generate vector embeddings stored in MongoDB. The Streamlit web app enables users to search for relevant issues using semantic search, and selected issues are sent to Google Gemini LLM via Vertex AI to generate actionable contribution guidelines.
graph TD
A[GitLab API] -->|Issues & Docs| B[Ingestion Script<br>copyrepotomongo.py]
B -->|Embeddings| C[MongoDB<br>Vector Store]
C -->|Vector Search| D[Streamlit Web App<br>app.py]
D -->|User Query/Skills| C
D -->|Selected Issue + Docs| E[Gemini LLM<br>Vertex AI]
E -->|Contribution Guidelines| D
-
Ingestion:
copyrepotomongo.py
fetches issues and docs from GitLab, generates embeddings, and stores them in MongoDB with vector indexes.
-
Semantic Search:
- Users search by text or skills in the Streamlit app.
- The app queries MongoDB using vector search to find relevant issues.
-
Guideline Generation:
- When a user selects an issue, the app fetches the issue and related docs.
- Sends them to Gemini LLM (Vertex AI) to generate actionable contribution guidelines, streamed back to the UI.
-
Clone the repo & install dependencies
git clone <repo-url> cd google-ai-in-action-hackathon python -m venv .venv source .venv/bin/activate # or .venv\Scripts\activate on Windows pip install -r requirements.txt
-
Configure environment
- Fill out
.env
with your MongoDB URI, GitLab token, and Google Cloud project info. - Authenticate with Google Cloud:
gcloud auth application-default login
- Fill out
-
Ingest data
python Open\ Source\ Compass/copyrepotomongo.py
-
Run the app
streamlit run Open\ Source\ Compass/app.py
- Search for issues by text or skills.
- Review matching issues and select one.
- Click "Generate Contribution Guidelines" to get AI-powered steps for contributing.
(If you want to use the Mermaid diagram above, you can render it with Mermaid Live Editor.)
- Python, Streamlit, MongoDB, SentenceTransformers
- Google Vertex AI (Gemini LLM)
- GitLab API
- LearnSol
MIT License