What if 45% of your IT projects were automatically generated thanks to Artificial Intelligence? AIDA represents the first squad of intelligent agents to support developers in their daily work.
Aida developer assistant leverages state-of-the art advances in the NLP field to assist companies in their development process by speeding up the process and optimizing the project overflow overall. The reliability of our developer is made possible by a tenacious modelling work. Novelis considers developer assistants as an essential addition to the development tools thanks to the efficiency they can provide. In fact, Novelis highly believes that developper assistants will be a factor for driving big changes in how organizations design, structure and carry out projects in the near future.
AIDA is one of the main projects in our Smart Programming program to design and implement artificial developers. The goal is to simplify computer development, overcome technological limitations and constraints, and eliminate repetitive work. AIDA is capable to exchange in natural language with developers to generate code and thus create applications.
In a few words:
- Project around Smart Programming in the No / Low code philosophy
- Complex architectures using NLP and AI image processing
- Rethinking the way a developer interacts to generate applications
Modelling, a pillar for the Understanding aspect
Modelling is the action of turning a problem into a structured, usable representation. In a way, it is a manner of reformulating the problem into a standard output in order to take actions and decisions downstream.
In AIDA, Modelling takes place in its EntityIdentifier Module, it aims to encode the natural language input into Unified Modeling Language (UML) diagrams using Knowledge-Extraction techniques.
Data Knowledge-Extraction
Knowledge-Extraction is a very innovative subfield of Natural Language Processing. It is the process of distilling structured and concise information from natural text. Given an article, a news’ paper, an email or even a product description, one can draw out a mapping of organizations, people, places and entities using knowledge-extraction techniques. In order to accomplish knowledge-extraction various methods such as rule pipelines-based methods, Transformers and reinforcement learning approaches have been explored by research, which makes the technology even more sophisticated.
In our work, Knowledge-extraction is responsible for collecting key elements for object oriented aspects of a project. For instance, in an online webstore project, describing on-sale products in natural language will trigger a Knowledge-extraction module to retrieve information about these products from the description and understand how they are linked in order to generate class representations in a standardized UML format.
Unified Modeling Language
Modeling languages are used for the purpose of establishing a standardized and consistent information stream, in the AIDA modelling process, Unified Modeling Language (UML) is the language used to guarantee this consistency.
The choice of UML as a modeling language owes to its consistent representation of the modeled system. UML covers both the structure aspect and the behavior aspect of a system. Structure is represented through “Structural UML Diagrams”; a set of diagrams(Class diagram, Component diagram…) responsible for describing entities of the system on various detail levels. On the other hand, behavior is described through “Behavioral UML Diagrams” (Activity Diagram, Communication Diagram…), they encapsulate interactions between entities, their states and that can occur.
Modelling in Novelis AIDA assistant
Modelling is a critical instrument in our work, without it, the model will not be able to get a good grasp of a prompt making it difficult for the generators to output a reliable response. UML paired with state-of-the art Knowledge-Extraction techniques make a thorough representation of the problem, which addresses this issue.
In addition, Novelis uses a set of rule based techniques to limit error propagation and increase accuracy all across its solution. A parsing layer is used for building a dependency graph from the input’s syntaxe to get a better grasp of the user’s demand. A Roberta-based coreference resolver is used for double-checking for any remaining coreferences in the text. Last but not least, a module for quantificational modifiers detection verifies cardinality of the extracted entities before encoding information into a UML Class diagram.
It is certain that the future of computing will involve the development of applications where the effort of “coding” will be less and less important, at least for a part of them. This is evidenced by the interest of industry giants such as Microsoft or the news from industry professionals.
AIDA holds an LLM model to generate the required code
LLMs, or large language models, have been successfully used to generate computer code for an application. Because of their ability to understand natural language and generate text in a fluent manner, LLMs can be used to create code that follows instructions given in natural language. By using this approach, the application development process can be accelerated, as programmers do not need to spend as much time manually coding each line of code. This also reduces coding errors and improves the overall quality of the application. In summary, using LLM for computer code generation can be an effective approach for developers looking to improve the efficiency and quality of their work.
Who can benefit from a project like AIDA?
- For developers
- For business analysts
- For citizen users
- For students
In reality, AIDA is primarily aimed at computer scientists, but this is of course a first step, as the evolution of this type of Man-Machine interface is intended to facilitate access to the greatest number of people.
This is why AIDA is also fully involved in the “citizen developers” movement which is emerging but which has yet to prove itself.