
Rex VanHorn, Franklin College of Arts and Sciences, Artificial Intelligence, 2nd year PhD
LLMs today have the ability to do amazing things, including the generation of code. Our project seeks to further automate the software development process, using LLMs to propose user-requirements, help refine those requirements, and ultimately generate better code. Our app takes a user’s idea and turns it into a working application.
Process:
- User describes their idea in terms of an application, including the purpose, the function, the type of data it’s expected to handle, and the user experience.
- The Appetizer transforms the idea details into user-requirements (e.g., the system shall quiz the user by prompting the user with a word in German, and four options in English (one correct, and three incorrect)…
- The Appetizer evaluates the user requirements and seeks clarification, or suggests improvements as a question. The user can answer the question, upon which the Appetizer will reevaluate the requirements, and update them with the new information. This process continues as long as the user wants, or the Appetizer runs out of questions and recommendations.
The Appetizer is designed to evaluate the user-requirements from the following perspectives: 1) Expert in the application area, 2) Expert in software development, and 3) Expert in user experience. By using the diverse perspectives of these different expert areas, the user requirements lead to better application operation, user experience and requirement fulfillment. - The Appetizer then writes the Python-based computer code based on the user requirements. After new code is generated, the system uses existing libraries to check the code’s syntax. If it detects syntax errors, the Appetizer will resubmit the user requirements, generated code, and detected syntax error for code generation. This process continues until the code passes all syntax checks.
- The user is prompted with the code, which they can then execute and release to various application-hosting websites.
Execution and Release
The Appetizer is designed to create Streamlit applications because Streamlit is a well-known framework for creating web-based applications which are easily deployable to the web. While it is possible to automatically release the code directly to the web, changes are usually required. By first encouraging the user to review the code, making changes where necessary, and then pushing the code to a source code repository (e.g., GitHub) and ultimately to the hosting company (e.g., Streamlit.app) users have complete control of the code and how it’s released. The Idea Appetizer gives students, faculty and staff the opportunity to create (almost) any application specifically tailored to their needs, without having much, or any, coding knowledge!