The paper is published! Here's the offical link
Please refer to the About Data section for information regarding the datasets used for evaluation
- Clone this repository.
- Setup the documents necessary for the RAG model to run. Gather your related project & company documentations as PDF files, and put them under
/app/data/folder. For this example, I've generated a set imaginary company documents under/app/data/. You can use those, or replace them with yours. - Install Docker on your machine: Install Docker Engine.
- Ensure that you can use Docker by running:
docker run -d -p 8080:80 docker/welcome-to-dockerand visit http://localhost:8080 in your browser. - In the root directory of the cloned repo, run
docker build -t mas-app .. This command will build the application into a container. - To run this app, you need an OpenAI's API key. Get yours at OpenAI's project page. The API key should come in the format of
sk-.... - After building, the Docker container can be run with
docker run -it -e OPENAI_API_KEY="<your API key>" mas-app, for exampledocker run -it -e OPENAI_API_KEY="sk-proj-ABCD" mas-app. This will run the application in interaction mode, and you can interact with the command shell. After this, just follow the prompt to use the application. I've also created some draft user stories to use as inputs for the system, under the/sample_us/folder. Just pick a user story in there and copy to the system's prompt. - In any case that you want access to your artefacts e.g., the output user story files of this app, you can use the command
docker run -it --rm -e OPENAI_API_KEY="<your API key>" mas-app /bin/bashto run thebashshell of the Docker container. Here, you can usecdandcatto navigate the file system, and get the content of the output files. They should be at/src/app/output/, named asimproved_user_stories.jsonandgrouped_user_stories.json. - Every time you update the project documents under
/app/data/, remember to build the app again withdocker build -t mas-app .. This will update the ChromaDB's artefacts and the RAG model will able to use your new documentations. - In the
/app/output/improved.py, you can include the improved user stories for later runs. Right now, it's possible that the tool runs into a recursion limit after 4-5 user stories, so it might not be possible to run through a large patch of user stories in 1 run. You can copy the improved user stories from the/src/app/output/improved_user_stories.json(using the method mentioned above) into the/app/output/improved.pyfolder. Then, the tool can use those stories in the grouping and linking tasks. If you want to start from scratch everytime, and ignore the stories in/app/output/improved.py, go to the/app/main.py, and uncomment the line of code on line 54.
- After running the app in interactive mode with
docker run -it -e OPENAI_API_KEY="<your API key>" mas-app, follow the prompt on screen to use the app. The first prompt will be to input an original user story for improvement, or typingGROUPto start user story grouping & linking, orEXITto stop the process. For improvement workflow, just copy your original user story as raw text, and hit enter to start the process. - The agent will start working, and the results from their responses will be printed on screen in different colors for ease of tracking. At the end, you will be prompted with an immediate user story, and the agents will ask for your feedback and approval of the improvement.
- You can provide your feedback for their results. Please be as direct as possible, e.g., acceptance criteria #3 is not needed, review other ACs too, since the agents can't understand abstract feedback very well. If you have feedback and feel like the quality is not good enough yet, provide your feedback through the CLI and give
falseas your approval, e.g.,> Human: do the results pass your final approval (true/false)? false - The process is repeated, and you will be presented with another user story, modified based on your feedback. Again, provide your feedback, and if it looks good, give
trueas your approval this time, e.g.,> Human: do the results pass your final approval (true/false)? true - The story will be saved in the
/src/app/output/improved_user_stories.jsonfile, and the tool will ask you to provide another user story, or to continue to the grouping stage. Rinse and repeat as many time as we want, then useGROUPto continue to the next stage - The grouping stage is similar to the improving stage. The agents will do their work, and ask for your feedback at the end. Again, provide your feedback, give your approval (
trueorfalse), similar to the improving stage. The results will be saved in the/src/app/output/grouped_user_stories.jsonand/src/app/output/jira_linked_stories.json
- All the data provided for the RAG should be provided in PDF format, and put into the
/app/data/directory. I've put some samples in there from our university project - The system's output is in the
/app/output/folder - The datasets are included in the Excel files of each corresponding branch,
TimeCrafter Dataset.xlsxandALFRED Dataset.xlsx. These files include the same sheets, which contain the original user stories, the issue tickets, the improved user stories grouping and linking, experts semantic ratings (with mean and standard deviation for criteria), and K-alpha calculation results. - The improved user stories are included as PDF files in each branch, namely
TimeCrafter Improved User Stories.pdfandAFRED Improved User Stories.pdf. - The Python script,
calculate_k_alpha.pyincludes the calculation for K-alpha of the 3 datasets, along with parse data.