A conversational bot for querying software repository data through natural language, as described in the paper "Software Engineering Bot: A Modular Pipeline for Natural Language Repository Mining".
This bot allows users to interact with software repository data through natural language queries. It leverages OpenAI's API and a MongoDB database to answer questions about software projects, issues, developers, and more.
- Query software repositories using natural language
- Get issue statistics with filtering by status, priority, and more
- Receive developer recommendations for issue assignments based on expertise
- Analyze issue details including comments, events, and linked commits
- Multi-turn conversations with context maintenance
- Clone this repository
- Install dependencies:
pip install -r requirements.txt
- Create a
.env
file with your MongoDB connection string and OpenAI API key (see.env.example
) - Run the bot:
python main.py
- Python 3.8+
- MongoDB database with software repository data
- OpenAI API key with access to GPT-4o
main.py
: Main application with conversation loopmongodb_connector.py
: MongoDB connection and data access functionsfunction_registry.py
: Function definitions for the botevent_handler.py
: Event handler for OpenAI Assistant API
- User enters a natural language query
- LLM processes the query to determine intent and extract entities
- The appropriate functions are called to retrieve data from MongoDB
- Results are processed and returned to the user in natural language