CASY is a chatbot-based survey tool designed to collect insights from technical professionals like data scientists, software developers, and LLM developers. It focuses on gathering survey responses to identify and analyze technical challenges in software development projects.
- Purpose: To enable dynamic and interactive data collection through a chatbot.
- Target Users: Researchers, Master's and PhD students, and HR professionals.
- Participants: Technical professionals (data scientists, developers, etc.).
- Tech Stack:
- Streamlit (1.39.0)
- Python
- Google Cloud
- Interactive Chatbot: Conversational survey experience for users.
- Dynamic Insights: Collects responses to analyze technical challenges.
- Dynamic Question Flow: Adapts follow-up questions based on user responses to gather comprehensive data.
- Adversarial Resistance: Maintains survey focus with up to 90% success rate.
- Python 3.x
- Required libraries listed in
requirements.txt
Install dependencies and run the app using the following commands:
- Clone the project.
- Install the required libraries:
pip install -r requirements.txt - Create an access token in Hugging Face.
- Add access token into .env file in your local folder (check env.example file)
- Run the app:
streamlit run app.py
Due to the nature of our application, it is not possible to create a testing environment using predefined question-answer pairs to measure the chatbot's accuracy. Therefore, we developed a simulation environment that allows us to evaluate the chatbot's performance by generating survey participant agents using real data from technical debt surveys.
In this environment, you can select a participant profile and specify the number of questions the chatbot should ask, then run the survey simulation. To make the testing environment more realistic, we introduced two parameters: Offtopic Answer Weight and Uninformative Answer Weight. Based on these weights, additional agents may take over the survey, producing off-topic or uninformative answers, enabling us to observe how the chatbot handles such situations.
"Log Data" checkbox can be checked to save the simulation data and parameters in your Weights And Biases account (requires authentication).
Further details about the implementation can be found in tests/survey_test.py.
This project is licensed under the MIT License.
- Owner: Ahmet Bekcan
- Contributors: Sıla Işık, Ceyda Suna
- Email: ahmet.bekcan@metu.edu.tr, isik.sila@metu.edu.tr, ceyda.suna@metu.edu.tr