Search Results for

    Show / Hide Table of Contents

    Class GeneratorBehaviour<TRequest, TInput, TOutput, TPrompt, TEvent, TResult, TOptions, TSettings>

    Base class for AI components that generate output based on input. Handles configuration, queuing, streaming, and final output events.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    AIBehaviour
    GeneratorBehaviour<TRequest, TInput, TOutput, TPrompt, TEvent, TResult, TOptions, TSettings>
    AudioIsolator
    EmbeddingGenerator
    ImageGenerator
    Moderator
    SpeechGenerator
    Transcriber
    VideoGenerator
    VoiceChanger
    Implements
    IErrorEventListener
    IUsageEventListener
    IUniTaskQueueEventListener
    IStreamVisitor<TEvent, Generated<TResult>>
    Inherited Members
    AIBehaviour.onUsageReceived
    AIBehaviour.onError
    AIBehaviour.LogLevel
    AIBehaviour.Logger
    AIBehaviour.IsProcessing
    AIBehaviour.m_IsInitialized
    AIBehaviour.m_IsTerminating
    AIBehaviour.CancelAllRequests()
    AIBehaviour.CancelLastRequest()
    AIBehaviour.Start()
    AIBehaviour.OnDestroy()
    AIBehaviour.OnQueueStarted()
    AIBehaviour.OnQueueCompleted()
    AIBehaviour.OnQueueCanceled()
    AIBehaviour.OnQueueError(Exception)
    AIBehaviour.OnError(Exception)
    AIBehaviour.OnUsageEvent(UsageEvent)
    AIBehaviour.OnErrorEvent(Event<Exception>)
    AIBehaviour.Enqueue(Func<UniTask>)
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.didStart
    MonoBehaviour.didAwake
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    Component.CompareTag(string)
    Component.CompareTag(TagHandle)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.transformHandle
    Component.gameObject
    Component.tag
    Object.GetEntityId()
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Glitch9.AIDevKit.Generators
    Assembly: Glitch9.AIDevKit.Agent.dll
    Syntax
    public abstract class GeneratorBehaviour<TRequest, TInput, TOutput, TPrompt, TEvent, TResult, TOptions, TSettings> : AIBehaviour, IErrorEventListener, IUsageEventListener, IUniTaskQueueEventListener, IStreamVisitor<TEvent, Generated<TResult>> where TRequest : GenerativeRequest<TRequest, TPrompt, TResult, TOptions> where TPrompt : IPrompt where TResult : class where TOptions : IProviderRequestOptions where TSettings : GenerationSettings
    Type Parameters
    Name Description
    TRequest

    The provider-specific request type sent to the backend API. Must inherit GenerativeRequest<TSelf, TPrompt, TResult, TOptions>.

    TInput

    The raw input type accepted by this component (e.g. string, AudioClip).

    TOutput

    The Unity-facing output type exposed via onOutput and onStream (e.g. string, AudioClip, Texture2D). Produced by converting TResult in ConvertResultAsync.

    TPrompt

    The prompt wrapper type passed to the request. Must implement IPrompt. (e.g. Prompt, AudioPrompt).

    TEvent

    The streamed chunk type emitted during streaming (e.g. Delta<IAudioChunk>, TranscriptDelta).

    TResult

    The raw result type returned by the API (e.g. IAudioAsset, Transcript). Must be a reference type.

    TOptions

    The request options interface used to configure the API call. Must implement IProviderRequestOptions (e.g. IAudioRequestOptions).

    TSettings

    The serializable settings type used in the Unity Inspector. Must inherit GenerationSettings.

    Fields

    | Edit this page View Source

    onOutput

    Declaration
    [FormerlySerializedAs("onGenerated")]
    [FormerlySerializedAs("onReceiveResponse")]
    [FormerlySerializedAs("onReceiveOutput")]
    [FormerlySerializedAs("output")]
    public UnityEvent<TOutput> onOutput
    Field Value
    Type Description
    UnityEvent<TOutput>
    | Edit this page View Source

    onStatusChanged

    Declaration
    public UnityEvent<ResponseStatus> onStatusChanged
    Field Value
    Type Description
    UnityEvent<ResponseStatus>
    | Edit this page View Source

    onStream

    Declaration
    public UnityStreamEvent<TOutput> onStream
    Field Value
    Type Description
    UnityStreamEvent<TOutput>

    Properties

    | Edit this page View Source

    Api

    Selected AI model's provider API.

    Declaration
    public override Api Api { get; }
    Property Value
    Type Description
    Api
    Overrides
    AIBehaviour.Api
    | Edit this page View Source

    CurrentRequest

    Declaration
    public TRequest CurrentRequest { get; protected set; }
    Property Value
    Type Description
    TRequest
    | Edit this page View Source

    Model

    Declaration
    public virtual Model Model { get; }
    Property Value
    Type Description
    Model
    | Edit this page View Source

    ModelType

    Declaration
    public abstract ModelType ModelType { get; }
    Property Value
    Type Description
    ModelType
    | Edit this page View Source

    SaveFolderPath

    Declaration
    public string SaveFolderPath { get; set; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    SaveOutputs

    Declaration
    public bool SaveOutputs { get; set; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    Settings

    Declaration
    public TSettings Settings { get; protected set; }
    Property Value
    Type Description
    TSettings
    | Edit this page View Source

    Stream

    Declaration
    public bool Stream { get; set; }
    Property Value
    Type Description
    bool

    Methods

    | Edit this page View Source

    Awake()

    Declaration
    protected override void Awake()
    Overrides
    AIBehaviour.Awake()
    | Edit this page View Source

    BuildRequest(TInput)

    Declaration
    protected abstract TRequest BuildRequest(TInput input)
    Parameters
    Type Name Description
    TInput input
    Returns
    Type Description
    TRequest
    | Edit this page View Source

    Configure(TSettings)

    Configures the generator with the specified parameters. It will overwrite the existing parameters including the serialized parameters. Overwritten parameters will not be saved(serialized).

    Declaration
    public void Configure(TSettings settings)
    Parameters
    Type Name Description
    TSettings settings
    | Edit this page View Source

    ConvertEventAsync(TEvent)

    Declaration
    protected abstract UniTask<TOutput> ConvertEventAsync(TEvent evt)
    Parameters
    Type Name Description
    TEvent evt
    Returns
    Type Description
    UniTask<TOutput>
    | Edit this page View Source

    ConvertResultAsync(TResult)

    Declaration
    protected abstract UniTask<TOutput> ConvertResultAsync(TResult result)
    Parameters
    Type Name Description
    TResult result
    Returns
    Type Description
    UniTask<TOutput>
    | Edit this page View Source

    Generate(TInput)

    Generates output based on the provided input prompt. This method enqueues the generation task and triggers the onSendRequest event. It should be called to start the generation process.

    Declaration
    public void Generate(TInput prompt)
    Parameters
    Type Name Description
    TInput prompt
    | Edit this page View Source

    GenerateAsync(TInput)

    Asynchronously generates output based on the provided input prompt. This method should be overridden in derived classes to implement the actual generation logic. It returns a UniTask that resolves to the generated output. The onReceiveGeneratedContent event is triggered with the generated output once the task completes.

    Declaration
    public UniTask<Generated<TResult>> GenerateAsync(TInput prompt)
    Parameters
    Type Name Description
    TInput prompt
    Returns
    Type Description
    UniTask<Generated<TResult>>
    | Edit this page View Source

    InitializeAsync()

    Initialize the component asynchronously. This method must be called before using the component.

    Declaration
    public override UniTask InitializeAsync()
    Returns
    Type Description
    UniTask
    Overrides
    AIBehaviour.InitializeAsync()
    | Edit this page View Source

    OnComplete(Generated<TResult>)

    Declaration
    public virtual void OnComplete(Generated<TResult> result)
    Parameters
    Type Name Description
    Generated<TResult> result
    | Edit this page View Source

    OnDelta(TEvent)

    Declaration
    public virtual void OnDelta(TEvent evt)
    Parameters
    Type Name Description
    TEvent evt
    | Edit this page View Source

    OnStatusChanged(ResponseStatus)

    Declaration
    public void OnStatusChanged(ResponseStatus status)
    Parameters
    Type Name Description
    ResponseStatus status
    | Edit this page View Source

    StreamAsync(TInput)

    Declaration
    public UniTask<IGenerativeStream<TEvent, TResult>> StreamAsync(TInput input)
    Parameters
    Type Name Description
    TInput input
    Returns
    Type Description
    UniTask<IGenerativeStream<TEvent, TResult>>

    Implements

    IErrorEventListener
    IUsageEventListener
    IUniTaskQueueEventListener
    IStreamVisitor<TDelta, TResult>

    Extension Methods

    LocalizationExtensions.SetLocalizedAsset<TComponent, TObject>(TComponent, string, Action<TComponent, TObject>, string, LocalizationOptions<TObject>)
    ArrayExtensions.ToArrayOrEmpty<T>(T)
    ArrayExtensions.ToArrayOrNull<T>(T)
    EventExtensions.ToDelta<T>(T, string, int, string, bool)
    EventExtensions.ToDone<T>(T, string, int, string)
    EventExtensions.ToEvent<T>(T)
    EventExtensions.UpcastDelta<T1, T2>(T1, string, int, string, bool)
    FallbackExtensions.IsOr<TParent, TChild>(TParent, TChild)
    FileExtensions.ToFile<T>(T, string)
    ResponseCastingExtensions.GetResult<T>(T)
    UnityObjectExtensions.Find<T>(T, string)
    UnityObjectExtensions.Find<T, TTarget>(TTarget, T, string)
    UnityObjectExtensions.Find<T, TTarget>(TTarget, T, string, string)
    UnityObjectExtensions.GetChildIndex<T>(T)
    UnityObjectExtensions.GetOrAddComponentInChildren<T, TV>(TV, string)
    SystemExtensions.GetName(object)
    UnityObjectExtensions.EncodeToBase64(Object)
    UnityObjectExtensions.ToBytes(Object)
    • Edit this page
    • View Source
    In this article
    Back to top AI DevKit Documentation