public interface IntegratingAI
ListGrid according to their description
 of the records to include or exclude.
 ListGrid, combining data from the underlying
 dataSource or augmenting
      the data with AI-provided knowledge.
 ListGrid according to the user's description of how the
 data should be ordered.
 DataBoundComponent using available
 dataSources according to the user's
      description of what they would like to see.
  AIEngine classAIEngine class.  The
  following engines are built-in and don't require registration.  Just put the appropriate API
  key in your server configuration file.
  
| Engine ID | Provider | Name | Additional Installation Notes | 
|---|---|---|---|
"gpt-3.5-turbo" | 
        OpenAI | GPT-3.5 Turbo | 
 You must obtain an API key having access to the model(s) from: https://platform.openai.com/api-keys Then, the value of server configuration property OpenAI.api.key must be set to
 your API key.
          The o1-preview and o1-mini models may require higher tier API access.  | 
      
"gpt-4" | 
        OpenAI | GPT-4 | |
"gpt-4-turbo" | 
        OpenAI | GPT-4 Turbo | |
"gpt-4o" | 
        OpenAI | GPT-4o | |
"o1-preview" | 
        OpenAI | o1-preview | |
"o1-mini" | 
        OpenAI | o1-mini | |
"gemini-pro" | 
        Gemini Pro & Gemini Pro Vision | 
 You must obtain an API key having access to these models from: https://makersuite.google.com/app/apikey?authuser=1 Then, the value of server configuration property Gemini.api.key must be set to
 your API key.
         | 
      
defaultEngineId to a different engine ID if
 you don't like the default, and then
  set disabled to false.
  Here is sample Smart GWT code that enables AI using GPT-4 Turbo:
  AI.setDefaultEngineId("gpt-4-turbo");
  AI.setDisabled(false);
  Note: If your application will need to ask AI to analyze images,
  you'll need an AIEngine that supports vision requests.  Check the table above
  to see which built-in engines support vision, or you can register your own (covered below).
 
  AI Engines aren't enough, you can
 implement your own for the
 generative AI service that you would like to use, and register it
 with the framework.  You can then set your engine's ID into defaultEngineId.
  
 You can also unregister an engine, or grab
 the
  AIEngine instance of a built-in or manually registered engine by passing the ID
  to AI.getEngine().
 
  
AIServiceModeListGrid, such as filters, sorts,
  and record hilites, according to the user's natural-language request for how the records
  should be filtered, sorted, and hilited. These AI-generated view settings are saved in the
  component ViewState.
  
 With each AI component view feature, there is an associated AIServiceMode
  setting that controls the mode for how AI should respond to user requests:
  
| Filtering | filterViaAIMode | 
      
| Sorting | sortViaAIMode | 
      
| Hiliting | hiliteViaAIMode | 
      
With respect to AI component views, the supported AI service modes are:
AdvancedCriteria that is then set as the filter
 criterion of a
  DataBoundComponent.
  The amount of interaction with AI is lowest in AI Assist mode. AIDE requires more interaction with AI, and Hybrid mode requires the most amount of interaction. More interaction with AI generally requires more time to process the component view request.
DataBoundComponent, the
 requirements for AI component views
  to be enabled are:
  AI.isEnabled()
  DataSource with a primary key and
 supporting
 AdvancedCriteria must be set.
  DataSource cannot have a composite primary key.
  aiMaxRecords.