Create a detailed description of a Software task, and let the AI prepare the solution.
This application is designed to assist with software projects. It creates embeddings of your entire
project and provides you with useful information and possible solutions for your Tasks. This reduces the time
spent on searching for solutions and increases the productivity of your team.
Currently, it supports 3 AI Models: OpenAI
, Azure OpenAI
and Gemini
.
- python 3.11
- llama_index
- tkinter
- Supported AI Models:
OpenAI
,Azure OpenAI
andGemini
Download executable from the latest release and run it. Keep the file in one place, because it will create additional files and directories needed for indexing and storing settings.
The application is not signed, so you will probably get a warning from your OS. If you prefer you can build it on your own. The following instructions require you to use venv.
First you need to install requirements:
pip install -r requirements.txt
. Then go tovenv/Lib/site-packages/llama_index/__init.py__
and replace reading from VERSION file (lines 3 and 4) with a simple assigning of the version number. For example:__version__ = "0.9.16post1"
. Lastly run the commandpyinstaller --onefile main.spec
in the root directory of the project. This will create an executable.
pip install -r requirements.txt
python3 main.py
- SETTINGS: When you are first time using the application, you will need to set all the required settings. Go to Tab Settings
and fill in all the required fields. Settings will be saved to
app_settings.json
file when the application exits and will be loaded when you start the application for the second time.
- PROJECTS: Go to tab Projects and click on the button
Select Directory
. Fill in the Project name and optionally the select which files should be ignored. Proceed and click on the buttonCreate Index
. This will create an index of your entire project. Once it will finish, you will see text 'Done' under the button, and you will be able to select the project in the list of projects.
- TASKS: Go to tab Tasks and enter your task Description. Then click on the button
Run Generation
. This will generate possible solutions for your task.
If you want to contribute see the Contribution Guide for more details (you can also find my contact there). Feedback is also greatly appreciated. If you have some good idea for improvement, don't hesitate to contact me. ❤️
There are a few good to have features that needs to be done:
- integrating with 3rd party project managements tools like: Jira, Asana ...
- [DONE ✅]
taking advantage of Version Control (git) to create reindexing of a project - only necessary files are reindex - update of GUI - make it more user-friendly and prettier
- [DONE ✅]
creating a Chat-like interface on Task tab: when you get a response you also have an option to create a reply (to provide additional info ...) - force LLM to return structured response? For example some sort of JSON structure or maybe even something similar as git diff command.
If we could achieve this, then we could create actions which would automatically modify the files. This would probably require some prompt engineering or fine-tuning of models (currently Models have trouble to determine line numbers)
If you like this project, you can buy me a coffee :)