2023:GPT Integration (Concept)

From Grooper Wiki
Revision as of 16:28, 17 April 2023 by Randallkinard (talk | contribs)
Enhancing Grooper with modern AI technology.

OpenAI GPT integration in Grooper allows users to leverage modern AI technology to enhance their document data integration needs.

OpenAI's GPT model has made waves in the world of computing. Our Grooper developers recognized the potential for this to grow Grooper's capabilities. Adding its funcionality will allow for users to explore and find creative solutions for processing their documents using this advanced technology.


ABOUT

You may download and import the files below into your own Grooper environment (version 2023). The first contains a Project with several Content Models used as examples throughout this article. The second contains some example Batches of sample documents.

  • GPT Integration - Project.zip
  • GPT Integration - Batches.zip


GPT integration can be used for three things in Grooper:

  • Extraction - Prompt the GPT model to return information it finds in a document.
  • Classification - GPT has been trained against a massive corpus of information, which allows for a lot of potential when it comes to classifying documents. The idea here is that because it's seen so much, the amount of training required in Grooper should be less.
  • Lookup - With a GPT lookup you can provide information collected from a model in Grooper as @ variables in a prompt to have GPT generate data.


In this article you will be shown how Grooper leverages GPT for the aforementioned methods. Some example use cases will be given to demonstrate a basic approach. Given the nature of the way this technology works, it will be up to the user to get creative about how this can be used for their needs.

Things to Consider

Before moving forward it would be prudent to mention a few things about GPT and how to use it.

Prompt Engineering

This first thing to consider is how to structure a good prompt so that you get the results you are expecting. There is a bit of an art to knowing how to do this. GPT can tell bad jokes and write accidentally hilarious poems about your life, but it can also help you do your job better. The catch: you need to help it do its job better, too. At its most basic level, OpenAI's GPT-3 and GPT-4 predict text based on an input called a prompt. But to get the best results, you need to write a clear prompt with ample context. Further on in this article when the GPT Complete Value Extractor is being demonstrated you will see an example of prompt engineering.

Follow this link, or perhaps even this one, for more information on prompt engineering.

Tokens and Pricing

Another consideration is the way GPT pricing works. You are going to be charged for the "tokens" used when interacting with GPT. To that end, the prompt that you write, the text that you leverage to get a result, and the result that is returned to you are all considered part of the token consumption. You will need to be considerate of this as you build and use GPT in your models.

Follow this link for more information on what tokens are.

Follow this link for more information on GPT pricing.

Location Data for Data Extraction

The final thing to consider is in regards to the GPT Complete Value Extractor type (more on this soon.) If you have used Grooper before then you are probably familiar with how a returned value is highlighted with a green box in the document viewer. One of the main strenghts of Grooper's text synthesis is that it collects location information for each character which allows this highlighting to occur. The GPT model does not consider location information when generating its results which means there will be no highlighting on the document for values collected with this method. The main impact this will have is on your ability to validate information returned by the GPT model.

How To

With the discussion of concepts out of the way, it is time to get into Grooper and see how and where to use the GPT integration.

Obtain an API Key

Grooper is able to integrate with OpenAI's GPT model because they have provided a web API. All we need in order use the Grooper GPT functionality is an API key. Here you will learn how to obtain an API key for yourself so you can start using GPT with Grooper.

  1. The first thing you should do is visit OpenAI API site and login or create an account.
  2. Once logged in, click the "Personal" menu in the top right.
  3. Within in this menu click the "View API Keys" option, which will take you to the "API keys" page.

  1. On the "API keys" page, click the "+ Create new secret key" button, which will make an "API key generated" pop-up.

  1. Highlight and copy, or click the copy button to copy the key string to your clipboard.
    • A word of warning here. You WILL NOT get another chance to copy this string. You can always create a new one, but once you close this pop-up, you will not have another chance to copy the key string out.

Extraction - GPT Complete

GPT Complete is a type of Value Extractor that was added to Grooper 2023. It is the setting you choose to leverage GPT integration on an extractor. Below are some examples of configuration and use. You should be able to follow along using the GPT Integration zip files (Batch and Project are included) that are included in this article. Begin by following along with the instructions. The details of the properties will be explained after.

It is also worth noting that the examples given below ARE NOT a comprehensive list. Provided are only a few examples of prompts used in extraction to get you thinking about what can be done. It is highly recommended that you not only reference the materials linked above, but also spend time experimenting and testing. Good luck!

  1. After importing the Grooper ZIP files provided with this course, expand the Node Tree out and select the Data Field named "Lessor".
  2. Click the drop-down menu for the Value Extractor property.
  3. Select the GPT Complete option from the menu.

  1. With the Value Extractor property set, click the ellipsis button to open its configuration window (if you prefer, you can instead click the drop-down arrow to the left of the property to edit its properties without a pop-up window).

  1. Start by entering your API key into the API Key property.
  2. Click the "Browse Batches" button.
  3. Select "GPT Complete Examples" Batch in the "GPT Integration - Batches" folder from the menu.

  1. Select "Lease (1)" from the Batch Viewer.
  2. Click the ellipsis button for the Instructions property to open its configuration window (if you prefer, you can insted simply type into the entry field of the property.)

  1. Type the string value Who is the lessor? into the editor.
  2. Click the "OK" button to accept and close this window.

  1. When the previous window closes the extractor will immediately fire (assuming you have automatic testing enabled), and you will see a result returned in the "Results" list view.


From a "prompt engineering" perspective the input we gave it is as basic as you can get. A result is returned, which is great, but it may not be the exact result that is desired. The value supplied is very conversational, which isn't necessarily a bad thing and is typical of an AI that's trained to emulate language, but considering how data is typically constructed in Grooper, it's not quite right. If you break it down, the result given is really four values: the lessor's name, their marital status, their gender, and their location. In this case the name of the lessor only will suffice.

The next thing to tackle will be using some prompt engineering to get a more specific result.


Back to top to continue to next tab

  1. Working with the same material as before, select the Data Field named "Lessee".
  2. Click the drop-down menu for the Value Extractor property.
  3. Select GPT Complete from the drop-down menu.

  1. With the Value Extractor set, click the ellipsis button to open its configuration window (if you prefer, you can instead click the drop-down arrow to the left of the property to edit its properties without a pop-up window).

  1. Start by entering your API key into the API Key property.
  2. Make sure "Lease (1)" is still selected in the Batch Viewer.
  3. Click the ellipsis button for the Instructions property to open its configuration window (if you prefer, you can insted simply type into the entry field of the property.)

  1. Type the string value Who is the lessee? into the editor.
  2. Click the "OK" button to accept and close this window.

  1. When the previous window closes the extractor will immediately fire (assuming you have automatic testing enabled), and you will see a result returned in the "Results" list view.
    • This is clearly a different result form the "Lessor", which is good, but let's address the issue mentioned previously. Let's use some simple "prompt engineer" to get the specific result desired.
  2. Click the ellipsis button for the Instructions property to open its configuration window (if you prefer, you can insted simply type into the entry field of the property.)

  1. Add to the string value Respond only with the lesse's name.
  2. Click the "OK" button to accept and close this window.

  1. This is a much better result than before. However, the period at the end is unnecessary and can be removed, again, by prompting the AI appropriately.
  2. Click the ellipsis button for the Instructions property to open its configuration window (if you prefer, you can insted simply type into the entry field of the property.)

  1. Add to the string value Don't include control characters.
  2. Click the "OK" button to accept and close this window.

  1. Perfect! This is the exact value needed.


This is by no means anything but a simple prompt, but notice how giving context and being more specific alters the result. As a user learning this new technology, it's now time to start experimenting with your prompts and getting creative to get the results you're looking for.


Back to top to continue to next tab

  1. Working with the same material as before, select the Data Field named "Full Summary".
  2. Click the drop-down menu for the Value Extractor property.
  3. Select GPT Complete from the drop-down menu.

  1. With the Value Extractor set, click the ellipsis button to open its configuration window (if you prefer, you can instead click the drop-down arrow to the left of the property to edit its properties without a pop-up window).

  1. Start by entering your API key into the API Key property.
  2. Type tldr into the Instructions property.
  3. Assuming you have automatic testing enabled, you will see a result returned in the "Results" list view. Click this result.
  4. Click the "Inspect" button.

  1. In the "Data Inspector" you will see the number of characters in the result.
  2. You will also see the full text of the summary.
  3. Right-click in a blank space to get a list of commands.
  4. Make sure "Text Wrap" is enabled so that the text will wrap like it is in the screenshot.

  1. After confirming the previous settings and closing windows, right-click the "Full Summary" Data Field to get a list of commands.
  2. Select the "Clone..." command.

  1. Name the clone "Brief Summary".
  2. Confirm the clone by clicking the "Execute" button.

  1. With the clone made, click the ellipsis button of the Value Extractor property to open its configuration window (if you prefer, you can instead click the drop-down arrow to the left of the property to edit its properties without a pop-up window).

  1. Add in 100 words or less to the Instructions property.
  2. A result will be returned in the "Results" list view. Select this result.
  3. Click the "Inspect" button.

  1. In the "Data Inspector" you will now notice this result's length is much shorter.
  2. The summary given is much shorter than the previous due to the additional instruction given in the prompt.


Back to top to continue to next tab

Classification - GPT Embeddings

Lookup - GPT Lookup