Introducing tool to solve development tasks and bug-fix tickets in large projects. This project is using GPT-4o LLM and langchain agents to search the project code base and documentation to support development work and fixing issues.
The tool should search:
- project code
- project documentation
- framework documentation
and based on retrieved information solve project issues
Tool workflow cycle consist of stages:
- Prepare important concepts and semantic search message based on provided ticket details.
- Recognize content from attached image (optional).
- Search documentation and codebase using retrieval augmented generation technic and documents enhancement with code dependencies graph.
- Combine prepared concepts, image interpretation and found code samples. Send everything to LLM and get the solution.
- Repeat points 3-4 until proper solution is found and decide on support actions like searching for more code samples.
- Docker and Docker Compose (Installation Guide)
- Create .env file and put there your OpenAI API key
OPENAI_API_KEY=your-api-key
- Install python packages with
pip install -r requirements.txt
- Start pg_vector db with docker
docker-compose up
- Adjust directories names in initVectorDB.ipynb and run this notebook to import project resources into vector db.
- Set consts with programming language and framework name on index.py:14
- Start streamlit app with
streamlit run index.py
- it will open application in browser where you can provide details of issue that needs to be solved. - (optional) add JIRA credentials in .env for IRA integration, see .env-sample
- Single request to LLM for solution (+ 1 request to get related concepts)
- Multiple requests to LLM by Agent with retriever tools
- Multiple requests to LLM by Multi-agent system with dedicated roles and access to retriever tools
improved graph with additional Research Critic node
To run unit tests use command below:
python -m unittest discover test "*Test.py"
Found a bug or have an improvement in mind? Please:
- Report issues
- Submit pull requests
- Contact: michal@zarnecki.pl
Your contributions make this project better for everyone!