InitialGPT

Introduction

InitialGPT is a ChatGPT-enhanced tool for automaticlly generating initialization data of prototype to support rapid requirements validation. The benefits of InitialGPT are as follows:

  1. Automatic Generating Initialization Data of Prototype. InitialGPT can automatically refactor the prototype generated by RM2PT to support generating the initial data of prototypes.

  2. Automatic Data Prompts Generation for ChatGPT. We propose a method for automatically generating prompts for large language models from requirement models, which can be used to generate initial data for prototypes.

  3. More effiency for requirement validation. Compared with the original prototype generated from RM2PT and InputGen, the enhanced prototype can automatically generate substantial and reasonable initial data of the prototype, this will boost the validation process. InitialGPT_Overview11

The video cast its feature is listed as follows (Youtube):

InitialGPT Installation

Prerequest

InitialGPT is an advanced feature of RM2PT. We recommend you to use InitialGPT in RM2PT. If you don’t have RM2PT, download here.

Installation

Click here to download InitialGPT. Follow the steps below to install.

2offline

3load

4add

InitialGPT333

6installanyway

InitialGPT Tutorial

Prerequest

In order to generate the prototype initial data, you need a requirement model, the RM2PT project. For creating or importing a RM2PT project,you can see the tutorial here. We recommend importing RM2PT projects from Git, which is avaliable at CaseStudies. The tutorial is here.

Input of InitialGPT — Requirements Model

InitialGPT_Overview_10

rm

The input to InitialGPT is a UML requirements model with OCL constraints. The model includes: a conceptual class diagram, a use case diagram, system sequence diagrams, contracts of and system operations.

Input of InitialGPT — Prompt Template

A good prompt template approach is the key to data generation, which can effectively prompt the large language model to generate data so as to better utilize the performance of the large model.

Since ChatGPT has the limitation of data response time and length for the api usage, we have designed two sets of templates for ChatGPT, which are used for generating general amount of data and large amount of data respectively.

InitialGPT_Overview11

General Prompt Template

The general prompt template consists of three main components. The Initial Information Prompt is a well-tested general prompt, the Input section consists of user interaction information and domain entity information automatically generated by the requirements model, and the Output section specifies the format of the output data. GeneralFarmat

Large Prompt Template

The Large Data Amount Prompt Template is similar to the General Prompt Template, but is generated for a single entity, 40 at one time, and post-processed until the final required number is fully generated. largeFarmat

1) Generate a prototype from the requirement model

After you import a requirements model, first, we use the RM2PT to generate a prototype from the requirements model by right click on cocome.remodel -> RM2PT-> OO Prototype-> ` Generate Desktop Prototype`

10generateprototype

2) Run the InitialGPT tool to refactor and enhance the prototype

after you generate a prototype, we use the InitialGPT to refactor the prototype from the requirements model by right click on cocome.remodel -> RM2PT-dev-> InitialGPT, and update the project.

InitialGPT9refactor

3) The third step is to run the refactored prototype

Run the refactored prototype to validate the requirements by right click on COCOMEPrototype -> pom.xml-> run-> maven build . 8runprototype

4) Generate the initial data to validate the requirements.

The Output of InitialGPT

After automatically refactoring and enhancing the generated prototype by the tool InitialGPT, the enhanced prototype contains two advantages as follows:

For example

In the system status, Click on the initial data generation button and in the data generation screen InitialGPT_chushi

  1. First select the model, currently ChatGPT’s gpt-3.5-turbo is used, other large language models will be added later. InitialGPT_kaishi

  2. Click on Generate Settings and then choose whether to use a proxy on the pop-up page. If you do, please delete “no” and fill in your own proxy port.

  3. Fill in your openai key.

  4. here you can set the number of entities we want to generate for each entity. Also, you can add as many prompts as you want to the note box. InitialGPT_setting_openaikey

  5. After the settings have been made, click on the Generation button and it will be generated automatically. Here you can see the time corresponding to the number of generated entities we have tested. InitialGPT_generate7

  6. After successful generation, you can view the generated entities in the table view or yaml view, and you can also modify them to better match your requirements.

  7. Finally, click on the load data button to import the initial data into the prototype. InitialGPT_generate8

  8. The generated data will also be saved and can be imported again by clicking the loadfile button. InitialGPT_load

For more details, please see CaseStudies.