Artificial Intelligence in Web Applications
Language models in project management (BSc thesis)
A Django web application that supports project administration by generating documentation and specifications with small, freely available language models on minimal hardware.
- unit tests
- 248
- Cypress end-to-end tests
- 258
- language models compared
- 5
- permission levels
- 4
- Goal
- Support project administration, especially writing documentation and specifications, with free, small-parameter language models that run on minimal hardware while the generated text stays useful.
- Solution
- A Django application with an intuitive interface and role-based access. Several small models are driven by different prompting techniques and tool configurations; each technique was tested alone and in combination, and one shared configuration was found that performs adequately across all models.
- Result
- A working system that exports generated documents as Markdown, compatible with GitHub. Specific prompting techniques gave a significant quality improvement; handling complex relationships remains limited and would need further fine-tuning.
- One shared prompting and parameter configuration that performs adequately on all five models
- Generated documents export as GitHub-compatible Markdown
- Containerized with Docker, image published on Docker Hub
- Cypress tests organized per permission level: guest, user, staff, superuser
Research question
How can freely available language models be used effectively on minimal hardware while the generated text stays good enough? The hardest part was judging text quality: specifications are difficult to measure objectively, so the main criterion was how well the output meets user expectations and supports their work.
What the experiments showed
There is no universal configuration. A parameter set that works well for one model can degrade another. After long experimentation I found a configuration that gave adequate results for all five models on the chosen task.
Architecture and stack
Django (Python) backend with SQLite, an HTML, CSS and JavaScript frontend with Bootstrap, MVC structure and Docker containerization. Models run through Hugging Face Transformers. Work was organized with GitHub Projects and Issues.
Testing
Unit tests with Django's unittest framework per app (models, views, URLs, forms, admin and the language-model service layer), and Cypress end-to-end tests organized by permission level. The 248 unit tests ran in about 4.5 minutes, the 258 end-to-end tests in about 2.5 minutes.
Future work
Document-type-specific fine-tuning, task-specific prompt and parameter optimization, more document types, automatic evaluation with a medium-sized model, vector-database-based context (RAG), and performance optimization.