diff --git a/Unreal/Content/Project/BP/BP_Project_Manager.uasset b/Unreal/Content/Project/BP/BP_Project_Manager.uasset index 508a9d2..2052da4 100644 --- a/Unreal/Content/Project/BP/BP_Project_Manager.uasset +++ b/Unreal/Content/Project/BP/BP_Project_Manager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3091a128cf830692654f5887a8d0498b8aeae84c12fd08c89a53ef7e7dc1c93d -size 2825669 +oid sha256:c0660e2f11ac36b65408d53e0e75b032fafee919df5b4ffb0c4b72988b6a2240 +size 2822041 diff --git a/Unreal/Content/Project/Widgets/W_Main.uasset b/Unreal/Content/Project/Widgets/W_Main.uasset index a835b6f..0ce58f6 100644 --- a/Unreal/Content/Project/Widgets/W_Main.uasset +++ b/Unreal/Content/Project/Widgets/W_Main.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a698d969cd29b04eae07c3966cc98696513eb8a24b3e48dee81ae89f1d3e7f22 -size 405593 +oid sha256:b6e30c23a1e32dd9a157eb5465887cc9d17b560c35ad2cfd86296eba41ea1375 +size 402522 diff --git a/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset b/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset index 93bb626..6548dce 100644 --- a/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset +++ b/Unreal/Content/SPIE/BP/BP_SPIE_Manager_Child.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a2c5ba4bb3359915155a514348885f1fc01511dcbaf0779c077076ac4af4219d -size 747098 +oid sha256:5a9f4d1bcaeaabbde6b5f1826807548f0559fa6a166f5212c834163e6caddb10 +size 753038 diff --git a/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset b/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset index ea57291..dc33812 100644 --- a/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset +++ b/Unreal/Content/SPIE/Widgets/WBP_Spie_Interaction.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de5f0785d0e50243ce4d2ed628c9cce00aa34b6e203a8209e826b53fd788b1e5 -size 1285223 +oid sha256:e8d20f5caa213e98885952ef6342ea2661e7d91a82c902f3e5ad5a12eec1fc88 +size 1263923 diff --git a/Unreal/Content/Schema/Spie_Config.schema.json b/Unreal/Content/Schema/Spie_Config.schema.json index 8092582..7644e0c 100644 --- a/Unreal/Content/Schema/Spie_Config.schema.json +++ b/Unreal/Content/Schema/Spie_Config.schema.json @@ -16,8 +16,8 @@ "InitialMode": { "type": "integer", - "default": 0, "tooltip": "Which mode to load at startup", + "default": 0, "category": "SPIE Management Board" } }, @@ -25,8 +25,8 @@ "AvatarInstance": { "type": "string", - "default": "SPIE", "tooltip": "Unique Name of this Avatar Application", + "default": "SPIE", "category": "SPIE Management Board" } }, @@ -34,8 +34,8 @@ "UseLogging": { "type": "boolean", - "default": true, "tooltip": "Do you want to log all interaction?", + "default": true, "category": "SPIE Management Board" } }, @@ -43,8 +43,8 @@ "LogoText": { "type": "string", - "default": "One SPIE. \r\nJust ask me.", "tooltip": "Showing in background logo", + "default": "One SPIE. \r\nJust ask me.", "hotreload": true, "category": "Spie_ONE_VisualSetup" } @@ -53,8 +53,8 @@ "ButtonHint": { "type": "string", - "default": "Drücke und halte beim Sprechen den Knopf vor dir, damit ich dich hören kann.", "tooltip": "What to say, when user is allowed to speak?", + "default": "Drücke und halte beim Sprechen den Knopf vor dir, damit ich dich hören kann.", "category": "Spie_ONE_VisualSetup" } }, @@ -125,8 +125,8 @@ "HideUI": { "type": "boolean", - "default": false, "tooltip": "Hides the UI", + "default": false, "hotreload": true, "category": "Project Setup" } @@ -135,8 +135,8 @@ "HideDialogueBoxAtStart": { "type": "boolean", - "default": false, "tooltip": "If activated, the DialogueBox will hide after the first Button press to initialize the conversation. Can be show again by pressing \"H\"", + "default": false, "hotreload": true, "category": "Project Setup" } @@ -145,8 +145,8 @@ "ConstrainAspectRatio": { "type": "boolean", - "default": false, "tooltip": "If the camera should contrain to a vertical aspect ration. Can be used to enable a horizontal screen", + "default": false, "hotreload": true, "category": "Project Setup" } @@ -155,8 +155,8 @@ "CurrentLocation": { "type": "string", - "default": "EUREF-Campus, 40472 Düsseldorf, Germany", "tooltip": "Where is the user currently located?", + "default": "EUREF-Campus, 40472 Düsseldorf, Germany", "category": "Project Setup" } }, @@ -164,50 +164,50 @@ "DebugAI": { "type": "enum", - "default": "Normal", "tooltip": "Debugging mode for the AI Module", - "category": "Debug", "enum": [ "Normal", "DebugModule", "DebugNoModule" - ] + ], + "default": "Normal", + "category": "Debug" } }, { "DebugTTS": { "type": "enum", - "default": "Normal", "tooltip": "Debugging mode for the TTS Module", - "category": "Debug", "enum": [ "Normal", "DebugModule", "DebugNoModule" - ] + ], + "default": "Normal", + "category": "Debug" } }, { "DebugSTT": { "type": "enum", - "default": "Normal", "tooltip": "Debugging mode for the STT Module", - "category": "Debug", "enum": [ "Normal", "DebugModule", "DebugNoModule" - ] + ], + "default": "Normal", + "category": "Debug" } }, { "DebugAvatar": { "type": "boolean", - "default": false, "tooltip": "Activated the debugging Mode for the Avatar", + "default": false, "category": "Debug" } }, @@ -215,8 +215,8 @@ "AvatarVolume": { "type": "float", - "default": 1, "tooltip": "Volume from 0-1 for the Avatar (Doesnt work with A2F)", + "default": 1, "category": "Volume" } }, @@ -224,8 +224,8 @@ "VFXVolume": { "type": "float", - "default": 0.29999999999999999, "tooltip": "Volume from 0-1 for the VFX Sounds", + "default": 0.29999999999999999, "hotreload": true, "category": "Volume" } @@ -234,6 +234,8 @@ "ConsoleCommands": { "type": "array", + "tooltip": "The one place to configure Console Commands", + "itemsType": "string", "default": [ "r.ScreenPercentage 100", "t.MaxFPS 60", @@ -250,18 +252,16 @@ "r.TemporalAASamples 16", "r.RayTracing.Shadows.SamplesPerPixel 2" ], - "tooltip": "The one place to configure Console Commands", "hotreload": true, - "category": "Engine Settings", - "itemsType": "string" + "category": "Engine Settings" } }, { "LookAtEnabled": { "type": "boolean", - "default": true, "tooltip": "Activated LookAt in Avatar AnimationSystem", + "default": true, "category": "Avatar Core" } }, @@ -269,13 +269,13 @@ "LookAtLocation": { "type": "vector3", + "tooltip": "Location for the LookAt", "default": { "X": 0, "Y": 560, "Z": 110 }, - "tooltip": "Location for the LookAt", "category": "Avatar Core" } }, @@ -283,8 +283,8 @@ "UseMCPServer": { "type": "boolean", - "default": false, "tooltip": "Active MCP Server", + "default": false, "category": "Avatar Core" } }, @@ -292,21 +292,21 @@ "LipSyncModel": { "type": "enum", - "default": "Original (Highest Quality)", - "category": "Avatar Core", "enum": [ "Original (Highest Quality)", "Semi-Optimized (Balanced)", "Highly Optimized (Fastest)" - ] + ], + "default": "Original (Highest Quality)", + "category": "Avatar Core" } }, { "AvatarResetTimerLength": { "type": "float", - "default": 60, "tooltip": "How long to wait for a reset after avatar stopped talking. A value of 0 deactivates the timer", + "default": 60, "hotreload": true, "category": "Avatar Core" } @@ -315,8 +315,8 @@ "AvatarResetTimerAnimation": { "type": "float", - "default": 15, "tooltip": "For how many seconds of the end of the reset timer length should we show the circle animation?", + "default": 15, "hotreload": true, "category": "Avatar Core" } @@ -325,8 +325,8 @@ "TalkByHoldTimerLength": { "type": "float", - "default": 2, "tooltip": "In seconds: If jumping to TalkToAvatar by pressing the button, how long to wait to skip the disclaimer if still holding the button?", + "default": 2, "hotreload": true, "category": "Avatar Core" } @@ -335,8 +335,8 @@ "AzureSpeechService_API": { "type": "string", - "default": "0Gc0wvOF2tTCr4APvZkDaieKCGeBR9c5EbC5utXgVWZUqu4IAEf6NQ721iHNu74SwfDoYSBGJHLmCbcXVDP+F4HKnwsfHr7WYi9Gv+CjJ7/UrOygkqlrP05hbHBrJiPLWDv4Gw==", "tooltip": "Encrypted Azure API Key", + "default": "0Gc0wvOF2tTCr4APvZkDaieKCGeBR9c5EbC5utXgVWZUqu4IAEf6NQ721iHNu74SwfDoYSBGJHLmCbcXVDP+F4HKnwsfHr7WYi9Gv+CjJ7/UrOygkqlrP05hbHBrJiPLWDv4Gw==", "category": "STT Settings" } }, @@ -344,8 +344,8 @@ "AzureSpeechService_Region": { "type": "string", - "default": "germanywestcentral", "tooltip": "Azure Region", + "default": "germanywestcentral", "category": "STT Settings" } }, @@ -353,86 +353,12 @@ "STTSettings": { "type": "struct", - "default": - { - "STTTranscriptionType": "Mircosoft Azure Congnitive Speech Services", - "bUsePTT": true, - "bCanInterrupt": true, - "bSTTDebugAudioSave": false, - "WebRTCSettings": - { - "pipeline_multi_channel_capture": false, - "pipeline_multi_channel_render": false, - "pipeline_maximum_internal_processing_rate": 48000, - "echo_canceller": true, - "pre_amplifier": false, - "high_pass_filter": true, - "noise_suppression": true, - "noise_suppression_level": 3, - "transient_suppression": true, - "gain_controller1": false, - "gain_controller2": false, - "voice_detection": false, - "residual_echo_detector": true, - "level_estimation": false - }, - "VADSettings": - { - "VAD_Mode": 2, - "VAD_SpeechWhileBlocked": 0.5, - "VAD_MinSpeechTime": 0.25, - "VAD_MinSpeechAmplitude": -55 - }, - "SpeexDSPSettings": - { - "StateNames": [], - "SettingEntries": [ - { - "TypeName": "preprocessor Automatic Gain Control state", - "Value": 0 - }, - { - "TypeName": "preprocessor dereverb state", - "Value": 10 - }, - { - "TypeName": "maximum attenuation of the noise in dB (negative number)", - "Value": -10 - }, - { - "TypeName": "attenuation of the residual echo in dB (negative number)", - "Value": -40 - }, - { - "TypeName": "maximum attenuation of the residual echo in dB when near end is active (negative number)", - "Value": -15 - } - ] - }, - "STTReplacements": [ - { - "TranscribedWords": [ - "spie", - "schpie", - "spieh", - "spiel" - ], - "ReplacementWord": "SPIE" - } - ], - "STTSpecialWords": [ - "SPIE" - ], - "PTTPostRollTime": 0.40000000596046448, - "FreespeechPostRollTime": 0.5, - "MaxTalkingTime": 120 - }, - "category": "STT Settings", "fields": { "STTTranscriptionType": { "type": "enum", + "tooltip": "Which Service to use, can be overridden by �I settings to stream directly to OpenAI", "enum": [ "OpenAI Transcription", "Mircosoft Azure Congnitive Speech Services", @@ -441,48 +367,59 @@ }, "bUsePTT": { - "type": "boolean" + "type": "boolean", + "tooltip": "Use the push to talk button or allow freespeech" }, "bCanInterrupt": { - "type": "boolean" + "type": "boolean", + "tooltip": "Can the suer interrupt the avatar" }, "bSTTDebugAudioSave": { - "type": "boolean" + "type": "boolean", + "tooltip": "Save the final recording from microphone to Saved/STT folder" }, "WebRTCSettings": { "type": "struct", + "tooltip": "Settings of the WebRTC Channel.", "fields": { "pipeline_multi_channel_capture": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables capturing audio with more than one input channel.\nWhen false, WebRTC downmixes input to mono before processing." }, "pipeline_multi_channel_render": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables rendering audio with multiple output channels.\nWhen false, WebRTC outputs mono audio." }, "pipeline_maximum_internal_processing_rate": { - "type": "integer" + "type": "integer", + "tooltip": "Upper limit for WebRTC�s internal audio processing sample rate in Hz.\nWebRTC will resample input audio to this rate for all DSP stages.\nCommon values are 16000, 32000, or 48000." }, "echo_canceller": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables WebRTC Acoustic Echo Cancellation (AEC).\nRemoves far end audio that is played through speakers from the microphone signal." }, "pre_amplifier": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables a fixed pre amplification stage before other processing.\nThis boosts quiet microphone signals but can amplify noise if misused." }, "high_pass_filter": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables a high pass filter that removes low frequency noise.\nUseful for eliminating rumble or microphone DC offset." }, "noise_suppression": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables WebRTC noise suppression.\nReduces stationary background noise like fans or ambient hum." }, "noise_suppression_level": { @@ -490,56 +427,68 @@ }, "transient_suppression": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables transient noise suppression.\nTargets short non speech sounds like keyboard clicks or taps." }, "gain_controller1": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables legacy automatic gain control (AGC1).\nAdjusts microphone gain slowly over time.\nUsually disabled in favor of gain_controller2." }, "gain_controller2": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables modern automatic gain control (AGC2).\nProvides faster and more stable loudness normalization." }, "voice_detection": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables voice activity detection.\nWebRTC estimates whether the current audio frame contains speech.\nOnly available when WEBRTC_5414 or newer is used which it is by default in 5.6." }, "residual_echo_detector": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables residual echo detection.\nDetects remaining echo after echo cancellation and can influence other DSP stages.\nOnly available when WEBRTC_5414 or newer is used which it is by default in 5.6." }, "level_estimation": { - "type": "boolean" + "type": "boolean", + "tooltip": "Enables internal audio level estimation.\nWebRTC computes signal loudness metrics for diagnostics or downstream logic.\nOnly available when WEBRTC_5414 or newer is used which it is by default in 5.6." } } }, "VADSettings": { "type": "struct", + "tooltip": "Settings of the VAD module that determine if user is currently speaking.", "fields": { "VAD_Mode": { - "type": "integer" + "type": "integer", + "tooltip": "How aggressive is the VAD Module (quality, normal, aggressive, very aggresive)" }, "VAD_SpeechWhileBlocked": { - "type": "float" + "type": "float", + "tooltip": "How long to record to consider it, user wants to interrupt avatar" }, "VAD_MinSpeechTime": { - "type": "float" + "type": "float", + "tooltip": "How long to speak until it is considert speaking?" }, "VAD_MinSpeechAmplitude": { - "type": "integer" + "type": "integer", + "tooltip": "Much background noise? Try to raise the limit of -dB to even consider speech?" } } }, "SpeexDSPSettings": { "type": "struct", + "tooltip": "Settings of the SpeexDSP Module", "fields": { "StateNames": @@ -573,7 +522,25 @@ { "TypeName": { - "type": "enum" + "type": "enum", + "enum": [ + "preprocessor denoiser state", + "preprocessor Automatic Gain Control state", + "preprocessor Voice Activity Detection state", + "preprocessor dereverb state", + "preprocessor dereverb level", + "preprocessor dereverb decay", + "probability required for the VAD to go from silence to voice", + "probability required for the VAD to stay in the voice state (integer percent)", + "maximum attenuation of the noise in dB (negative number)", + "attenuation of the residual echo in dB (negative number)", + "maximum attenuation of the residual echo in dB when near end is active (negative number)", + "the corresponding echo canceller state so that residual echo suppression can be performed (NULL for no residual echo suppression)", + "maximal gain increase in dB/second (int32)", + "maximal gain decrease in dB/second (int32)", + "maximal gain in dB (int32)", + "preprocessor Automatic Gain Control level (int32)" + ] }, "Value": { @@ -586,6 +553,7 @@ "STTReplacements": { "type": "array", + "tooltip": "Transcriptions to always change to another word.", "itemsType": "struct", "itemsFields": { @@ -603,29 +571,108 @@ "STTSpecialWords": { "type": "array", + "tooltip": "Special words that the transcription service needs to know (e.g. b.ReX or Bruce-B).", "itemsType": "string" }, "PTTPostRollTime": { - "type": "float" + "type": "float", + "tooltip": "How long to keep transcribing when user released button. Users like to finish early ;)" }, "FreespeechPostRollTime": { - "type": "float" + "type": "float", + "tooltip": "How long to keep transcribing when user stopped talking.)" }, "MaxTalkingTime": { - "type": "float" + "type": "float", + "tooltip": "How long can the user press the button?)" } - } + }, + "default": + { + "STTTranscriptionType": "Mircosoft Azure Congnitive Speech Services", + "bUsePTT": true, + "bCanInterrupt": true, + "bSTTDebugAudioSave": false, + "WebRTCSettings": + { + "pipeline_multi_channel_capture": false, + "pipeline_multi_channel_render": false, + "pipeline_maximum_internal_processing_rate": 48000, + "echo_canceller": true, + "pre_amplifier": false, + "high_pass_filter": true, + "noise_suppression": true, + "noise_suppression_level": 3, + "transient_suppression": true, + "gain_controller1": false, + "gain_controller2": false, + "voice_detection": false, + "residual_echo_detector": true, + "level_estimation": false + }, + "VADSettings": + { + "VAD_Mode": 2, + "VAD_SpeechWhileBlocked": 0.5, + "VAD_MinSpeechTime": 0.25, + "VAD_MinSpeechAmplitude": -55 + }, + "SpeexDSPSettings": + { + "StateNames": [], + "SettingEntries": [ + { + "TypeName": "preprocessor Automatic Gain Control state", + "Value": 0 + }, + { + "TypeName": "preprocessor dereverb state", + "Value": 10 + }, + { + "TypeName": "maximum attenuation of the noise in dB (negative number)", + "Value": -10 + }, + { + "TypeName": "attenuation of the residual echo in dB (negative number)", + "Value": -40 + }, + { + "TypeName": "maximum attenuation of the residual echo in dB when near end is active (negative number)", + "Value": -15 + } + ] + }, + "STTReplacements": [ + { + "TranscribedWords": [ + "spie", + "schpie", + "spieh", + "spiel" + ], + "ReplacementWord": "SPIE" + } + ], + "STTSpecialWords": [ + "SPIE" + ], + "PTTPostRollTime": 0.40000000596046448, + "FreespeechPostRollTime": 0.5, + "MaxTalkingTime": 120 + }, + "category": "STT Settings" } }, { "AzureOpenAI_API": { "type": "string", - "default": "UjzfgavJ45lCu+oB2vVAsKNbPT+k3XCv7t69Og6j0LmwxhD3OK5WDBxUvgKnuDrz3xuNHg==", "tooltip": "Encrypted Azure OpenAI API Key", + "default": "UjzfgavJ45lCu+oB2vVAsKNbPT+k3XCv7t69Og6j0LmwxhD3OK5WDBxUvgKnuDrz3xuNHg==", "category": "AI Settings" } }, @@ -633,8 +680,8 @@ "DebugOpenAI_API": { "type": "string", - "default": "UWOrSTUJn8TJJmJWPR10q2NTUJgX4JGvzMzr5/j9tjwcx02VEWRMuW0plF8vulntD2ipUwjmodUX0lD7XM5rG6Po7Ayam/fqLG5QyEaofbQN2j6zyZx/0recl7nFTTBH18La5YQDZm+BERpxMvdE5wmx50Vcl1z5PgeF1L1IvjAgh9nNRpjAaDzTAD9iHhVmtfxjCEHvcl9L8xc5ip6eKzWMXHlTv76DASeiwcBp1BFVTXPz", "tooltip": "OpenAI API key for translation testing", + "default": "UWOrSTUJn8TJJmJWPR10q2NTUJgX4JGvzMzr5/j9tjwcx02VEWRMuW0plF8vulntD2ipUwjmodUX0lD7XM5rG6Po7Ayam/fqLG5QyEaofbQN2j6zyZx/0recl7nFTTBH18La5YQDZm+BERpxMvdE5wmx50Vcl1z5PgeF1L1IvjAgh9nNRpjAaDzTAD9iHhVmtfxjCEHvcl9L8xc5ip6eKzWMXHlTv76DASeiwcBp1BFVTXPz", "category": "AI Settings" } }, @@ -642,8 +689,8 @@ "AzureOpenAI_Model": { "type": "string", - "default": "gpt-realtime", "tooltip": "Open AI Model", + "default": "gpt-realtime", "category": "AI Settings" } }, @@ -651,8 +698,8 @@ "AzureOpenAI_URL": { "type": "string", - "default": "aiwa-ai-new.openai.azure.com/openai", "tooltip": "URL to Azure OpenAI Resource", + "default": "aiwa-ai-new.openai.azure.com/openai", "category": "AI Settings" } }, @@ -660,8 +707,8 @@ "OpenAIAudioOut": { "type": "boolean", - "default": true, "tooltip": "Direct audio generation by OpenAI", + "default": true, "category": "AI Settings" } }, @@ -669,9 +716,7 @@ "CustomOpenAIVoice": { "type": "enum", - "default": "shimmer", "tooltip": "Only Set if you want to override the Avatars Voice", - "category": "AI Settings", "enum": [ "UNDEFINED", "alloy", @@ -684,15 +729,17 @@ "sage", "shimmer", "verse" - ] + ], + "default": "shimmer", + "category": "AI Settings" } }, { "OpenAIRequestTimeout": { "type": "integer", - "default": 10, "tooltip": "OpenAI Timeout in seconds", + "default": 10, "category": "AI Settings" } }, @@ -700,8 +747,8 @@ "AITemperature": { "type": "float", - "default": 0.80000000000000004, "tooltip": "Temperature of the AI Model", + "default": 0.80000000000000004, "category": "AI Settings" } }, @@ -709,8 +756,8 @@ "AIMaxTokens": { "type": "integer", - "default": 3000, "tooltip": "Max Token per Request of the AI Model", + "default": 3000, "category": "AI Settings" } }, @@ -718,8 +765,8 @@ "AzureAISearch_API": { "type": "string", - "default": "9ksww+/kHZPYMfUFTWSi1QgaDjXaB7vxdGKPgmfGhPEx321nfpdbkUnThXT4BWrkKMAR0MF2zJT17fJSday8yBiftv0=", "tooltip": "Azure AI Search API Key", + "default": "9ksww+/kHZPYMfUFTWSi1QgaDjXaB7vxdGKPgmfGhPEx321nfpdbkUnThXT4BWrkKMAR0MF2zJT17fJSday8yBiftv0=", "category": "AI Settings" } }, @@ -727,8 +774,8 @@ "AzureAISearch_URL": { "type": "string", - "default": "aiwa-ai-search.search.windows.net", "tooltip": "Azure AIWA URL", + "default": "aiwa-ai-search.search.windows.net", "category": "AI Settings" } }, @@ -736,8 +783,8 @@ "AzureAISearch_Index": { "type": "string", - "default": "aiwa-ai-search", "tooltip": "Azure AI Search Indexname", + "default": "aiwa-ai-search", "category": "AI Settings" } }, diff --git a/Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Private/AIBaseManager.cpp b/Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Private/AIBaseManager.cpp index f97e532..cdd785a 100644 --- a/Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Private/AIBaseManager.cpp +++ b/Unreal/Plugins/AvatarCore_AI/Source/AvatarCore_AI/Private/AIBaseManager.cpp @@ -409,8 +409,10 @@ void UAIBaseManager::OnAIResponse(const FString& Chunk, bool IsFinal) FString CopyAnswer = UpdatedAnswer; int CopyResponseID = ResponseID; AsyncTask(ENamedThreads::GameThread, [this, CopyChunk, CopyAnswer, CopyResponseID, IsFinal]() - { - OnAISubtitle.Broadcast(CopyChunk, CopyAnswer, ResponseID, IsFinal); + { + OnAISubtitle.Broadcast(CopyChunk, CopyAnswer, ResponseID, IsFinal); + if (IsFinal) + BroadcastAILog(CopyAnswer, true); }); } } diff --git a/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset b/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset index ee2f3e7..2e93d15 100644 --- a/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset +++ b/Unreal/Plugins/AvatarCore_Manager/Content/StateManagement/BP_StateManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de8ce5827076de05a131d80a4a370dc2b3ba0a80d5d2e786468e06c05035abfc -size 674668 +oid sha256:774148725543297ae271afb3919192283ca905ae6cfc9980b6784fadde8778ff +size 671653