com.smartgwt.client.ai

## Class AI

- java.lang.Object
- - com.smartgwt.client.ai.AI

-     public class AI
      extends java.lang.Object

  Provides class methods for enabling and disabling the use of AI technology, registering and unregistering `AI engines`, and performing high-level operations using installed AI engines.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AI()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `askDataQuestion(java.lang.String question)` Asks AI to answer a question about the data of the application.
    `static void` | `askDataQuestion(java.lang.String question, DataSource... dataSources)`
    `static void` | `askDataQuestion(java.lang.String question, DataSource[] dataSources, DataQuestionSettings settings)`
    `static void` | `askDataQuestion(java.lang.String question, DataSource[] dataSources, DataQuestionSettings settings, AskDataQuestionResultCallback callback)` Asks AI to answer a question about the data of the application.
    `static void` | `askDataQuestion(UserAIRequest question)` Asks AI to answer a question about the data of the application.
    `static void` | `cancelDataQuestion(java.lang.String questionId)` Cancels a data question if not already canceled.
    `static void` | `checkModuleLoaded(java.lang.String faultingAction)`
    `static java.lang.String` | `getDefaultEngineId()` The ID of the default `AIEngine` to use.
    `static int` | `getDefaultMaxRetries()` The defualt maximum number of retries for any one particular request to AI.
    `static java.lang.Boolean` | `getDisabled()` Whether AI is disabled.
    `static AIEngine` | `getEngine()` Returns the `AIEngine` having the given engine ID.
    `static AIEngine` | `getEngine(java.lang.String engineId)` Returns the `AIEngine` having the given engine ID.
    `static boolean` | `isEnabled()` Determines whether AI support is enabled.
    `static boolean` | `moduleLoaded()` Reports whether the optional AI module is loaded for the page.
    `static void` | `pauseDataQuestion(java.lang.String questionId)` Pauses a data question if not already paused or canceled.
    `static void` | `resumeDataQuestion(java.lang.String questionId)` Resumes a data question if paused.
    `static void` | `sendPrompt(java.lang.String dynamicString, java.util.Map context, AIResponseCallback callback)` Evaluates the given `dynamic string` to form a prompt string that is then sent as the request to the default AI engine.
    `static void` | `setDefaultEngineId(java.lang.String defaultEngineId)` The ID of the default `AIEngine` to use.
    `static void` | `setDefaultMaxRetries(int defaultMaxRetries)` The defualt maximum number of retries for any one particular request to AI.
    `static void` | `setDisabled(java.lang.Boolean disabled)` Whether AI is disabled.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AI

          public AI()

  - ### Method Detail

    - #### setDefaultEngineId

          public static void setDefaultEngineId(java.lang.String defaultEngineId)

      The ID of the default `AIEngine` to use.
      Parameters:
        `defaultEngineId` - new defaultEngineId. Default value is "gpt-4o".

    - #### getDefaultEngineId

          public static java.lang.String getDefaultEngineId()

      The ID of the default `AIEngine` to use.
      Returns:
        current value of defaultEngineId

    - #### setDefaultMaxRetries

          public static void setDefaultMaxRetries(int defaultMaxRetries)

      The defualt maximum number of retries for any one particular request to AI.
      Parameters:
        `defaultMaxRetries` - new defaultMaxRetries. Default value is 2.

    - #### getDefaultMaxRetries

          public static int getDefaultMaxRetries()

      The defualt maximum number of retries for any one particular request to AI.
      Returns:
        current value of defaultMaxRetries

    - #### setDisabled

          public static void setDisabled(java.lang.Boolean disabled)

      Whether AI is disabled.

      By default, AI is disabled. This static property must be set to `false` and the `default` `AIEngine` must be registered in order to enable the use of AI in the application.

      Parameters:
        `disabled` - new disabled. Default value is true.

    - #### getDisabled

          public static java.lang.Boolean getDisabled()

      Whether AI is disabled.

      By default, AI is disabled. This static property must be set to `false` and the `default` `AIEngine` must be registered in order to enable the use of AI in the application.

      Returns:
        current value of disabled

    - #### askDataQuestion

          public static void askDataQuestion(java.lang.String question)

      Asks AI to answer a question about the data of the application.
      Parameters:
        `question` - The text of the end-user's question or their request for an answer to a data question.

    - #### askDataQuestion

          public static void askDataQuestion(UserAIRequest question)

      Asks AI to answer a question about the data of the application.
      Parameters:
        `question` - The text of the end-user's question or their request for an answer to a data question.

    - #### askDataQuestion

          public static void askDataQuestion(java.lang.String question,
                                             DataSource... dataSources)

      See Also:
        `askDataQuestion(java.lang.String)`

    - #### askDataQuestion

          public static void askDataQuestion(java.lang.String question,
                                             DataSource[] dataSources,
                                             DataQuestionSettings settings)

      See Also:
        `askDataQuestion(java.lang.String)`

    - #### askDataQuestion

          public static void askDataQuestion(java.lang.String question,
                                             DataSource[] dataSources,
                                             DataQuestionSettings settings,
                                             AskDataQuestionResultCallback callback)

      Asks AI to answer a question about the data of the application.
      Parameters:
        `question` - The text of the end-user's question or their request for an answer to a data question.
        `dataSources` - The available data sources. All data sources in the array must have a global ID. If `null`, then the array of all DataSources available to the AI module is used.
        `settings` - Settings to use when answering the data question.
        `callback` - The callback to call with the result.

    - #### cancelDataQuestion

          public static void cancelDataQuestion(java.lang.String questionId)

      Cancels a data question if not already canceled.
      Parameters:
        `questionId` - The ID of the data question to cancel.

    - #### getEngine

          public static AIEngine getEngine()

      Returns the `AIEngine` having the given engine ID.
      Returns:
        the `AIEngine`, or `null` if the `AIEngine` could not be found.

    - #### getEngine

          public static AIEngine getEngine(java.lang.String engineId)

      Returns the `AIEngine` having the given engine ID.
      Parameters:
        `engineId` - the engineId of the `AIEngine` to get. If not specified, `defaultEngineId` is used.
      Returns:
        the `AIEngine`, or `null` if the `AIEngine` could not be found.

    - #### isEnabled

          public static boolean isEnabled()

      Determines whether AI support is enabled. `disabled` must be set to `false` and the default `AIEngine` must be registered in order to enable the use of AI.
      Returns:
        `true` if the use of AI is enabled; `false` otherwise.
      See Also:
        `com.smartgwt.client.ai.AI#disabled`, `com.smartgwt.client.ai.AI#defaultEngineId`

    - #### pauseDataQuestion

          public static void pauseDataQuestion(java.lang.String questionId)

      Pauses a data question if not already paused or canceled.
      Parameters:
        `questionId` - The ID of the data question to pause.

    - #### resumeDataQuestion

          public static void resumeDataQuestion(java.lang.String questionId)

      Resumes a data question if paused.
      Parameters:
        `questionId` - The ID of the data question to resume.

    - #### sendPrompt

          public static void sendPrompt(java.lang.String dynamicString,
                                        java.util.Map context,
                                        AIResponseCallback callback)

      Evaluates the given `dynamic string` to form a prompt string that is then sent as the request to the default AI engine.

      Within `dynamicString`, any evaluated JavaScript expressions have access to all of the values in the `context` ValueMap.

      Parameters:
        `dynamicString` - A dynamic string. See `DynamicString`
        `context` - A map from each in-scope `Identifier` to its value.
        `callback` - The callback to fire with the response from AI.

    - #### moduleLoaded

          public static boolean moduleLoaded()

      Reports whether the optional AI module is loaded for the page.
      Returns:
        true if and only if the AI module has been loaded

    - #### checkModuleLoaded

          public static void checkModuleLoaded(java.lang.String faultingAction)