com.smartgwt.client.ai

## Class AIEngine

- java.lang.Object
- - com.smartgwt.client.core.BaseClass
  - - com.smartgwt.client.ai.AIEngine

- All Implemented Interfaces:
    com.google.gwt.event.shared.HasHandlers

      public class AIEngine
      extends BaseClass

  Provides access to a particular generative AI model.

- - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.core.BaseClass

      `config, configOnly, factoryCreated, factoryProperties, id, scClassName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AIEngine()`
    `AIEngine(com.google.gwt.core.client.JavaScriptObject jsObj)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canSupportVisionRequests()` Whether this AI engine can handle vision requests, or requests where one or more of the messages is an image.
    `boolean` | `couldSupportRequest(AIRequest aiRequest)` Determines whether this engine could support the given request.
    `com.google.gwt.core.client.JavaScriptObject` | `create()`
    `java.lang.String` | `getEngineId()` The unique ID of this engine.
    `com.google.gwt.core.client.JavaScriptObject` | `getJsObj()`
    `java.lang.String` | `getName()` The local name of this engine.
    `com.google.gwt.core.client.JavaScriptObject` | `getOrCreateJsObj()`
    `static AIEngine` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.String` | `getProvider()` The provider of this engine.
    `boolean` | `isCreated()`
    `void` | `sendRequest(AIRequest aiRequest, AIResponseCallback callback)` Sends a request to this AI engine.
    `AIEngine` | `setEngineId(java.lang.String engineId)` The unique ID of this engine.
    `void` | `setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `AIEngine` | `setName(java.lang.String name)` The local name of this engine.
    `AIEngine` | `setProvider(java.lang.String provider)` The provider of this engine.

    - ### Methods inherited from class com.smartgwt.client.core.BaseClass

      `addDynamicProperty, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, asSGWTComponent, clearDynamicProperty, createJsObj, destroy, doAddHandler, doInit, error, error, errorIfNotCreated, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsString, getAttributeAsStringArray, getClassName, getConfig, getHandlerCount, getID, getRef, getRuleScope, getScClassName, getTestInstance, hasAutoAssignedID, hasDynamicProperty, internalSetID, internalSetID, isConfigOnly, isFactoryCreated, onBind, onInit, registerID, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAutoID, setConfig, setConfigOnly, setFactoryCreated, setID, setProperty, setProperty, setProperty, setProperty, setRuleScope, setScClassName`

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

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

- - ### Constructor Detail

    - #### AIEngine

          public AIEngine()

    - #### AIEngine

          public AIEngine(com.google.gwt.core.client.JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static AIEngine getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### setJavaScriptObject

          public void setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)

      Overrides:
        `setJavaScriptObject` in class `BaseClass`

    - #### create

          public com.google.gwt.core.client.JavaScriptObject create()

      Specified by:
        `create` in class `BaseClass`

    - #### isCreated

          public boolean isCreated()

      Overrides:
        `isCreated` in class `BaseClass`

    - #### getJsObj

          public com.google.gwt.core.client.JavaScriptObject getJsObj()

      Overrides:
        `getJsObj` in class `BaseClass`

    - #### getOrCreateJsObj

          public com.google.gwt.core.client.JavaScriptObject getOrCreateJsObj()

      Overrides:
        `getOrCreateJsObj` in class `BaseClass`

    - #### setEngineId

          public AIEngine setEngineId(java.lang.String engineId)
                               throws java.lang.IllegalStateException

      The unique ID of this engine.
      Parameters:
        `engineId` - New engineId value. Default value is null
      Returns:
        `AIEngine` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the underlying component has been created

    - #### getEngineId

          public java.lang.String getEngineId()

      The unique ID of this engine.
      Returns:
        Current engineId value. Default value is null

    - #### setName

          public AIEngine setName(java.lang.String name)
                           throws java.lang.IllegalStateException

      The local name of this engine.
      Parameters:
        `name` - New name value. Default value is null
      Returns:
        `AIEngine` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the underlying component has been created

    - #### getName

          public java.lang.String getName()

      The local name of this engine.
      Returns:
        Current name value. Default value is null

    - #### setProvider

          public AIEngine setProvider(java.lang.String provider)
                               throws java.lang.IllegalStateException

      The provider of this engine. Typically this is the name of the company or organization that provides access to the AI model.
      Parameters:
        `provider` - New provider value. Default value is null
      Returns:
        `AIEngine` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the underlying component has been created

    - #### getProvider

          public java.lang.String getProvider()

      The provider of this engine. Typically this is the name of the company or organization that provides access to the AI model.
      Returns:
        Current provider value. Default value is null

    - #### canSupportVisionRequests

          public boolean canSupportVisionRequests()

      Whether this AI engine can handle vision requests, or requests where one or more of the messages is an image.
      Returns:
        `true` if this AI engine can handle vision requests; `false` otherwise.

    - #### couldSupportRequest

          public boolean couldSupportRequest(AIRequest aiRequest)

      Determines whether this engine could support the given request.

      The reason for the uncertainty is that the implementation may use estimates (e.g. the number of tokens in a given message, as applied to input token limits), or an AI may decide to refuse to respond to the request.

      Parameters:
        `aiRequest` - The request to check.
      Returns:
        `true` if this AIEngine could support the request; `false` otherwise.

    - #### sendRequest

          public void sendRequest(AIRequest aiRequest,
                                  AIResponseCallback callback)

      Sends a request to this AI engine.
      Parameters:
        `aiRequest` - The request.
        `callback` - The callback to fire with the response.