From 259a77f9f61a85c86cec39329c49fe0d07b4eba8 Mon Sep 17 00:00:00 2001 From: "j.foucher" Date: Sun, 1 Mar 2026 20:51:05 +0100 Subject: [PATCH] Add Agent Config data asset system with ElevenLabs editor integration Introduces UPS_AI_ConvAgent_AgentConfig_ElevenLabs data asset to encapsulate full agent configuration (voice, LLM, prompt, language, emotions) with a custom Detail Customization providing: - Voice/TTS Model/LLM/Language pickers with Fetch buttons (ElevenLabs API) - LLM latency hints in dropdown (~250ms, ~700ms, etc.) - Create/Update/Fetch Agent buttons for REST API CRUD - Auto-fetch on editor open, auto-select first voice for new assets - Prompt fragment management (language, multilingual, emotion tool) - Smart defaults: gemini-2.5-flash LLM, eleven_turbo_v2_5 TTS, English - Speed range expanded to 0.7-1.95 (was 0.7-1.2) - bAutoStartConversation + StartConversationWithSelectedAgent() on InteractionComponent Co-Authored-By: Claude Opus 4.6 --- .../Content/MetaHumans/Taro/BP_Taro.uasset | Bin 428954 -> 428251 bytes .../Content/Agents/Martin.uasset | Bin 0 -> 4203 bytes ...AI_ConvAgent_AgentConfig_ElevenLabs.uasset | Bin 0 -> 3495 bytes ...I_ConvAgent_AgentConfig_ElevenLabs1.uasset | Bin 0 -> 2130 bytes ...I_ConvAgent_AgentConfig_ElevenLabs2.uasset | Bin 0 -> 2188 bytes .../Content/Demo_Metahuman.umap | Bin 78974 -> 79274 bytes .../Blueprints/BP_FirstPersonCharacter.uasset | Bin 229305 -> 225912 bytes ...PS_AI_ConvAgent_AgentConfig_ElevenLabs.cpp | 3 + .../PS_AI_ConvAgent_ElevenLabsComponent.cpp | 9 +- .../PS_AI_ConvAgent_InteractionComponent.cpp | 56 +- ...AI_ConvAgent_WebSocket_ElevenLabsProxy.cpp | 6 +- .../PS_AI_ConvAgent/Public/PS_AI_ConvAgent.h | 7 - .../PS_AI_ConvAgent_AgentConfig_ElevenLabs.h | 234 +++ .../PS_AI_ConvAgent_ElevenLabsComponent.h | 13 +- .../PS_AI_ConvAgent_InteractionComponent.h | 20 + .../PS_AI_ConvAgentEditor.Build.cs | 12 + .../Private/PS_AI_ConvAgentEditorModule.cpp | 29 +- ...nt_AgentConfigCustomization_ElevenLabs.cpp | 1600 +++++++++++++++++ ...gent_AgentConfigCustomization_ElevenLabs.h | 95 + ...onvAgent_AgentConfigFactory_ElevenLabs.cpp | 29 + ..._ConvAgent_AgentConfigFactory_ElevenLabs.h | 27 + 21 files changed, 2118 insertions(+), 22 deletions(-) create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/Martin.uasset create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/NewPS_AI_ConvAgent_AgentConfig_ElevenLabs.uasset create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/NewPS_AI_ConvAgent_AgentConfig_ElevenLabs1.uasset create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/NewPS_AI_ConvAgent_AgentConfig_ElevenLabs2.uasset create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_AgentConfig_ElevenLabs.cpp create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_AgentConfig_ElevenLabs.h create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.cpp create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.cpp create mode 100644 Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.h diff --git a/Unreal/PS_AI_Agent/Content/MetaHumans/Taro/BP_Taro.uasset b/Unreal/PS_AI_Agent/Content/MetaHumans/Taro/BP_Taro.uasset index c5c1354b43fcb0907822a50a10d795f43cd3c4e1..c041c2294c14a7caa1a47753258bd46ef3b9fe4b 100644 GIT binary patch literal 428251 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 literal 428954 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 CqS`0` literal 0 HcmV?d00001 diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/NewPS_AI_ConvAgent_AgentConfig_ElevenLabs.uasset b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Agents/NewPS_AI_ConvAgent_AgentConfig_ElevenLabs.uasset new file mode 100644 index 0000000000000000000000000000000000000000..40470e3e1ce03b8f200b1c042ffd348e85bf1a21 GIT binary patch literal 3495 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 literal 0 HcmV?d00001 diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Demo_Metahuman.umap b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/Demo_Metahuman.umap index 0af21b1041a3bf2fa24567e814aeec6847e7e159..3aea8e431227977699487c37b209c04babf957f6 100644 GIT binary patch literal 79274 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%0A5tAtO5Co4aF`2v5+rI#BQ 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 literal 78974 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 diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset index 353d9d1abef8fd531346374971ec78952819a2ae..1fa508b6dc062bc04584068a3d19e0484c29ff84 100644 GIT binary patch literal 225912 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 literal 229305 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 Ndgf>&FAjw9{|~wKGu!|G diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_AgentConfig_ElevenLabs.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_AgentConfig_ElevenLabs.cpp new file mode 100644 index 0000000..7e58982 --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_AgentConfig_ElevenLabs.cpp @@ -0,0 +1,3 @@ +// Copyright ASTERION. All Rights Reserved. + +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.h" diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp index 55ba959..1712c1f 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_ElevenLabsComponent.cpp @@ -1,6 +1,7 @@ // Copyright ASTERION. All Rights Reserved. #include "PS_AI_ConvAgent_ElevenLabsComponent.h" +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.h" #include "PS_AI_ConvAgent_MicrophoneCaptureComponent.h" #include "PS_AI_ConvAgent_PostureComponent.h" #include "PS_AI_ConvAgent_InteractionSubsystem.h" @@ -266,7 +267,13 @@ void UPS_AI_ConvAgent_ElevenLabsComponent::StartConversation_Internal() // Pass configuration to the proxy before connecting. WebSocketProxy->TurnMode = TurnMode; - WebSocketProxy->Connect(AgentID); + // Resolve AgentID by priority: AgentConfig > component string > project default. + FString ResolvedAgentID = AgentID; + if (AgentConfig && !AgentConfig->AgentID.IsEmpty()) + { + ResolvedAgentID = AgentConfig->AgentID; + } + WebSocketProxy->Connect(ResolvedAgentID); } void UPS_AI_ConvAgent_ElevenLabsComponent::EndConversation() diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_InteractionComponent.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_InteractionComponent.cpp index 879d670..d7f4e22 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_InteractionComponent.cpp +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_InteractionComponent.cpp @@ -252,15 +252,17 @@ void UPS_AI_ConvAgent_InteractionComponent::SetSelectedAgent(UPS_AI_ConvAgent_El } // Network: auto-start conversation if the agent isn't connected yet. - if (!NewAgent->IsConnected() && !NewAgent->bNetIsConversing) + // Only when bAutoStartConversation is true — otherwise the user must + // call StartConversationWithSelectedAgent() explicitly (e.g. on key press). + if (bAutoStartConversation && !NewAgent->IsConnected() && !NewAgent->bNetIsConversing) { NewAgent->StartConversation(); - } - // Ensure mic is capturing so we can route audio to the new agent. - if (MicComponent && !MicComponent->IsCapturing()) - { - MicComponent->StartCapture(); + // Ensure mic is capturing so we can route audio to the new agent. + if (MicComponent && !MicComponent->IsCapturing()) + { + MicComponent->StartCapture(); + } } // ── Posture: attach (eyes+head only — body tracking is enabled later @@ -351,6 +353,48 @@ void UPS_AI_ConvAgent_InteractionComponent::ClearSelection() SetSelectedAgent(nullptr); } +void UPS_AI_ConvAgent_InteractionComponent::StartConversationWithSelectedAgent() +{ + UPS_AI_ConvAgent_ElevenLabsComponent* Agent = SelectedAgent.Get(); + if (!Agent) + { + if (bDebug) + { + UE_LOG(LogPS_AI_ConvAgent_Select, Warning, TEXT("StartConversationWithSelectedAgent: no agent selected.")); + } + return; + } + + if (Agent->IsConnected() || Agent->bNetIsConversing) + { + if (bDebug) + { + UE_LOG(LogPS_AI_ConvAgent_Select, Log, TEXT("StartConversationWithSelectedAgent: agent already connected/conversing.")); + } + return; + } + + if (bDebug) + { + UE_LOG(LogPS_AI_ConvAgent_Select, Log, TEXT("StartConversationWithSelectedAgent: starting conversation with %s"), + Agent->GetOwner() ? *Agent->GetOwner()->GetName() : TEXT("(null)")); + } + + Agent->StartConversation(); + + // Ensure mic is capturing so we can route audio to the agent. + if (MicComponent && !MicComponent->IsCapturing()) + { + MicComponent->StartCapture(); + } + + // Start listening if auto-managed. + if (bAutoManageListening) + { + Agent->StartListening(); + } +} + // ───────────────────────────────────────────────────────────────────────────── // Posture helpers // ───────────────────────────────────────────────────────────────────────────── diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_WebSocket_ElevenLabsProxy.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_WebSocket_ElevenLabsProxy.cpp index fd8d107..73ca198 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_WebSocket_ElevenLabsProxy.cpp +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Private/PS_AI_ConvAgent_WebSocket_ElevenLabsProxy.cpp @@ -724,9 +724,9 @@ FString UPS_AI_ConvAgent_WebSocket_ElevenLabsProxy::BuildWebSocketURL(const FStr return Settings->CustomWebSocketURL; } - const FString ResolvedAgentID = AgentIDOverride.IsEmpty() ? Settings->AgentID : AgentIDOverride; - if (ResolvedAgentID.IsEmpty()) + if (AgentIDOverride.IsEmpty()) { + UE_LOG(LogTemp, Error, TEXT("[PS_AI_ConvAgent] No AgentID provided. Set one via AgentConfig data asset or the AgentID property on the component.")); return FString(); } @@ -734,5 +734,5 @@ FString UPS_AI_ConvAgent_WebSocket_ElevenLabsProxy::BuildWebSocketURL(const FStr // wss://api.elevenlabs.io/v1/convai/conversation?agent_id= return FString::Printf( TEXT("wss://api.elevenlabs.io/v1/convai/conversation?agent_id=%s"), - *ResolvedAgentID); + *AgentIDOverride); } diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent.h index 922afd9..2dfaee7 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent.h +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent.h @@ -23,13 +23,6 @@ public: UPROPERTY(Config, EditAnywhere, Category = "PS AI ConvAgent|ElevenLabs API") FString API_Key; - /** - * The default ElevenLabs Agent ID to use when none is specified - * on the component. Create agents at https://elevenlabs.io/app/conversational-ai - */ - UPROPERTY(Config, EditAnywhere, Category = "PS AI ConvAgent|ElevenLabs API") - FString AgentID; - /** * Override the ElevenLabs WebSocket base URL. Leave empty to use the default: * wss://api.elevenlabs.io/v1/convai/conversation diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_AgentConfig_ElevenLabs.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_AgentConfig_ElevenLabs.h new file mode 100644 index 0000000..8c12ca1 --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_AgentConfig_ElevenLabs.h @@ -0,0 +1,234 @@ +// Copyright ASTERION. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Engine/DataAsset.h" +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.generated.h" + +/** + * Reusable data asset that encapsulates a full ElevenLabs agent configuration: + * voice, LLM prompt, language, emotion tool, and API identity. + * + * Create ONE instance per agent in the Content Browser + * (right-click > Miscellaneous > PS AI ConvAgent Agent Config), + * then assign it on the PS AI ConvAgent ElevenLabs component. + * + * The editor Detail Customization provides: + * - Voice picker (fetches available voices from the ElevenLabs API) + * - Model picker (fetches TTS models from the ElevenLabs API) + * - LLM picker (dropdown with supported LLMs) + * - Language picker (dropdown with supported languages) + * - Create / Update / Fetch Agent buttons (REST API) + * - Pre-configured emotion tool prompt fragment + * + * At runtime, the ElevenLabsComponent reads AgentID from this asset + * to establish the WebSocket conversation. + */ +UCLASS(BlueprintType, Blueprintable, + DisplayName = "PS AI ConvAgent Agent Config (ElevenLabs)") +class PS_AI_CONVAGENT_API UPS_AI_ConvAgent_AgentConfig_ElevenLabs : public UPrimaryDataAsset +{ + GENERATED_BODY() + +public: + // ── Identity ───────────────────────────────────────────────────────────── + + /** Agent ID assigned by ElevenLabs after Create/Sync. + * Populated automatically by the "Create Agent" editor action. + * This is the ID used to connect the WebSocket conversation. + * You can also paste an existing ID here, then use "Fetch Agent" to pull its config. */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Identity", + meta = (ToolTip = "ElevenLabs Agent ID.\nPopulated when created/synced via API.\nPaste an existing ID + Fetch Agent to import.")) + FString AgentID; + + /** Human-readable name for this agent. + * Used as the agent name when creating on ElevenLabs. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Identity", + meta = (ToolTip = "Agent display name (visible on ElevenLabs dashboard).")) + FString AgentName; + + // ── Voice ──────────────────────────────────────────────────────────────── + + /** Voice ID from ElevenLabs. + * Managed by the Voice picker dropdown — do not edit manually. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "ElevenLabs Voice ID.\nManaged by the Voice picker dropdown.")) + FString VoiceID; + + /** Display name of the selected voice (informational, not sent to API). */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Voice", + meta = (ToolTip = "Name of the selected voice (display only).")) + FString VoiceName; + + /** TTS model ID (e.g. "eleven_turbo_v2_5", "eleven_multilingual_v2"). + * Managed by the Model picker dropdown. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "TTS model ID.\nManaged by the Model picker dropdown.")) + FString TTSModelID = TEXT("eleven_turbo_v2_5"); + + /** TTS stability (0.0 - 1.0). Controls voice consistency. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ClampMin = "0.0", ClampMax = "1.0", + ToolTip = "Voice stability.\n0 = variable/expressive, 1 = consistent.\nDefault: 0.5")) + float Stability = 0.5f; + + /** TTS similarity boost (0.0 - 1.0). Higher = closer to original voice. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ClampMin = "0.0", ClampMax = "1.0", + ToolTip = "Similarity boost.\n0 = less similar, 1 = more similar.\nDefault: 0.75")) + float SimilarityBoost = 0.75f; + + /** TTS speed multiplier. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ClampMin = "0.7", ClampMax = "1.95", + ToolTip = "Speech speed multiplier.\nRange: 0.7-1.95.\nDefault: 1.0")) + float Speed = 1.0f; + + /** LLM model used by the agent (e.g. "gpt-4o-mini", "claude-3-5-sonnet"). + * Managed by the LLM picker dropdown. + * Leave empty for ElevenLabs default. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "LLM model.\nManaged by the LLM picker dropdown.")) + FString LLMModel = TEXT("gemini-2.5-flash"); + + /** Agent language code (e.g. "en", "fr", "ja"). + * Managed by the Language picker dropdown. + * Controls STT and TTS language selection on ElevenLabs. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "Language code.\nManaged by the Language picker dropdown.")) + FString Language = TEXT("en"); + + /** Enable multilingual mode: the agent dynamically adapts to whatever + * language the user speaks in, switching seamlessly mid-conversation. + * Requires a multilingual TTS model (e.g. eleven_multilingual_v2 or eleven_turbo_v2_5). + * When enabled, the fixed language instruction (bAutoLanguageInstruction) is replaced + * by a multilingual prompt that tells the LLM to mirror the user's language. + * The Language field still serves as the default/fallback for STT. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "Allow the agent to switch languages dynamically.\nThe agent responds in whatever language the user speaks.\nRequires a multilingual TTS model (turbo_v2_5, multilingual_v2, flash_v2_5).")) + bool bMultilingual = false; + + /** Prompt fragment appended when bMultilingual is true. + * Instructs the LLM to mirror the user's language. Editable for customization. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (MultiLine = "true", EditCondition = "bMultilingual", + ToolTip = "Prompt instructions for multilingual behavior.\nAppended when bMultilingual is true.")) + FString MultilingualPromptFragment = TEXT( + "## Language\n" + "You are multilingual. ALWAYS respond in the same language the user is speaking. " + "If the user switches language mid-conversation, switch with them immediately. " + "Match the user's language exactly — do not default to English. " + "If the user has not spoken yet, use the language of your first message."); + + /** Append a language instruction to the system prompt when not English. + * Ensures the LLM generates text in the correct language. + * The Language field controls STT/TTS, but NOT the LLM output language. + * Without this, the LLM may default to English for follow-up messages. + * Ignored when bMultilingual is true (multilingual prompt takes priority). */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (EditCondition = "!bMultilingual", + ToolTip = "Append a language instruction for non-English agents.\nThe Language field only controls STT/TTS, not the LLM output.\nIgnored when Multilingual is enabled.")) + bool bAutoLanguageInstruction = true; + + /** Prompt fragment appended when bAutoLanguageInstruction is true and language is not English. + * Use {Language} as a placeholder — it will be replaced by the language name (e.g. "French"). + * Pre-filled with a standard instruction. Editable for customization. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (MultiLine = "true", + EditCondition = "bAutoLanguageInstruction && !bMultilingual", + ToolTip = "Prompt instruction for fixed-language mode.\n{Language} is replaced by the selected language name.\nAppended when language is not English.")) + FString LanguagePromptFragment = TEXT( + "## Language\n" + "You MUST always respond in {Language}. " + "Never switch to any other language, " + "even for follow-up messages or when the user is silent."); + + // ── Behavior ───────────────────────────────────────────────────────────── + + /** Character-specific prompt describing THIS agent's personality and context. + * This is YOUR prompt — write what makes this character unique. + * The emotion tool instructions are appended automatically if enabled. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Behavior", + meta = (MultiLine = "true", + ToolTip = "Character-specific prompt.\nDescribe the character's personality, backstory, and behavior.\nEmotion tool instructions are appended automatically if enabled.")) + FString CharacterPrompt; + + /** First message the agent says when the conversation starts. + * Leave empty to let the agent wait for the user to speak first. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Behavior", + meta = (ToolTip = "Agent's opening message.\nLeave empty for no greeting.")) + FString FirstMessage; + + /** Disable the idle follow-up behavior where the agent automatically speaks again + * if the user remains silent after the greeting / last response. + * When enabled: sets turn_timeout to -1 (infinite wait) so the agent + * waits indefinitely for the user to speak first. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ToolTip = "Prevent the agent from speaking again unprompted.\nSets turn_timeout to -1 (infinite wait).\nUseful when you want the player to initiate the conversation.")) + bool bDisableIdleFollowUp = false; + + /** Time (seconds) the agent waits for the user to speak before re-engaging. + * ElevenLabs API: conversation_config.turn.turn_timeout. + * Range: 1–30 seconds. Default: 7. -1 = wait indefinitely. + * Higher values make the agent more patient. + * When bDisableIdleFollowUp is true, this is overridden to -1 (infinite). */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (DisplayName = "Follow-up Timeout", + ClampMin = "-1.0", ClampMax = "30.0", + EditCondition = "!bDisableIdleFollowUp", + ToolTip = "Seconds before the agent speaks again if the user is silent.\nRange: 1-30. Default: 7. -1 = wait indefinitely.\nWhen 'Disable Idle Follow-up' is on, forced to -1 (infinite).")) + float TurnTimeout = 7.0f; + + /** Maximum number of turns in a conversation. 0 = unlimited. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voice", + meta = (ClampMin = "0", + ToolTip = "Max conversation turns.\n0 = unlimited.")) + int32 MaxTurns = 0; + + // ── Emotion Tool ───────────────────────────────────────────────────────── + + /** Include the built-in "set_emotion" client tool in the agent configuration. + * Allows the LLM to set facial expressions (Joy, Sadness, Anger, etc.) + * that drive the FacialExpression component in real-time. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Emotion Tool", + meta = (ToolTip = "Include the set_emotion client tool.\nAllows the LLM to drive facial expressions.")) + bool bIncludeEmotionTool = true; + + /** System prompt fragment appended to CharacterPrompt when bIncludeEmotionTool is true. + * Pre-filled with the standard emotion instruction. Editable for customization. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Emotion Tool", + meta = (MultiLine = "true", EditCondition = "bIncludeEmotionTool", + ToolTip = "Prompt instructions for the emotion tool.\nAppended to CharacterPrompt when creating/updating the agent.")) + FString EmotionToolPromptFragment = TEXT( + "## Facial Expressions\n" + "You have a set_emotion tool to control your facial expression. " + "Use it whenever the emotional context changes:\n" + "- Call set_emotion with emotion=\"joy\" when happy, laughing, or excited\n" + "- Call set_emotion with emotion=\"sadness\" when empathetic or discussing sad topics\n" + "- Call set_emotion with emotion=\"anger\" when frustrated or discussing injustice\n" + "- Call set_emotion with emotion=\"surprise\" when reacting to unexpected information\n" + "- Call set_emotion with emotion=\"fear\" when discussing scary or worrying topics\n" + "- Call set_emotion with emotion=\"disgust\" when reacting to unpleasant things\n" + "- Call set_emotion with emotion=\"neutral\" to return to a calm expression\n\n" + "Use intensity to match the strength of the emotion:\n" + "- \"low\" for subtle hints (slight smile, mild concern)\n" + "- \"medium\" for normal expression (default)\n" + "- \"high\" for strong reactions (big laugh, deep sadness, shock)\n\n" + "Always return to neutral when the emotional moment passes."); + + // ── Dynamic Variables ──────────────────────────────────────────────────── + + /** Key-value pairs sent as dynamic_variables at conversation start. + * Referenced in the system prompt as {{variable_name}}. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dynamic Variables", + meta = (ToolTip = "Dynamic variables available in the system prompt as {{key}}.\nSent at conversation start.")) + TMap DefaultDynamicVariables; + + // ── Metadata (read-only, populated by API) ─────────────────────────────── + + /** Timestamp of last API sync (ISO 8601). */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Metadata", + meta = (ToolTip = "When this asset was last synced with ElevenLabs.")) + FString LastSyncTimestamp; +}; diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_ElevenLabsComponent.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_ElevenLabsComponent.h index aa99b0c..1f1682f 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_ElevenLabsComponent.h +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_ElevenLabsComponent.h @@ -14,6 +14,7 @@ class UAudioComponent; class USoundAttenuation; class UPS_AI_ConvAgent_MicrophoneCaptureComponent; +class UPS_AI_ConvAgent_AgentConfig_ElevenLabs; class APlayerController; // ───────────────────────────────────────────────────────────────────────────── @@ -110,9 +111,17 @@ public: // ── Configuration ───────────────────────────────────────────────────────── - /** ElevenLabs Agent ID used for this conversation. Leave empty to use the default from Project Settings > PS AI ConvAgent - ElevenLabs. */ + /** Agent configuration data asset. + * When set, the AgentID is resolved from this asset at conversation start. + * Create one via Content Browser → right-click → Miscellaneous → PS AI ConvAgent Agent Config. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PS AI ConvAgent|ElevenLabs", - meta = (ToolTip = "ElevenLabs Agent ID. Leave empty to use the project default from Project Settings.")) + meta = (ToolTip = "Agent configuration data asset.\nOverrides the AgentID string below when set.")) + TObjectPtr AgentConfig; + + /** ElevenLabs Agent ID used for this conversation. Leave empty to use the default from Project Settings > PS AI ConvAgent - ElevenLabs. + * Overridden by AgentConfig if set. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PS AI ConvAgent|ElevenLabs", + meta = (ToolTip = "ElevenLabs Agent ID. Leave empty to use the project default from Project Settings.\nOverridden by AgentConfig if set.")) FString AgentID; /** How turn-taking is managed between the user and the agent.\n- Server VAD (recommended): ElevenLabs automatically detects when the user stops speaking.\n- Client Controlled: You manually call StartListening/StopListening (push-to-talk with a key). */ diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_InteractionComponent.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_InteractionComponent.h index 32f17cb..7214666 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_InteractionComponent.h +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgent/Public/PS_AI_ConvAgent_InteractionComponent.h @@ -114,6 +114,18 @@ public: ToolTip = "Seconds to wait before the agent stops looking at the pawn.\n0 = immediate.")) float PostureDetachDelay = 0.0f; + // ── Conversation management ────────────────────────────────────────────── + + /** Automatically start the WebSocket conversation when an agent is selected + * (enters range + view cone). When false, selecting an agent only manages + * posture and visual awareness — the conversation must be started explicitly + * via StartConversationWithSelectedAgent() (e.g. on a key press). + * Set to false when you have multiple agents in a scene to prevent them + * all from greeting the player simultaneously. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PS AI ConvAgent|Interaction", + meta = (ToolTip = "Auto-start the WebSocket when an agent is selected by proximity.\nSet to false to require explicit interaction (call StartConversationWithSelectedAgent).\nUseful with multiple agents to prevent simultaneous greetings.")) + bool bAutoStartConversation = true; + // ── Listening management ───────────────────────────────────────────────── /** Automatically call StartListening/StopListening on the agent's @@ -163,6 +175,14 @@ public: UFUNCTION(BlueprintCallable, Category = "PS AI ConvAgent|Interaction") void ForceSelectAgent(UPS_AI_ConvAgent_ElevenLabsComponent* Agent); + /** Start the WebSocket conversation with the currently selected agent. + * Use this when bAutoStartConversation is false and the player explicitly + * interacts (e.g. presses a key, enters a trigger zone). + * Does nothing if no agent is selected or the agent is already connected. + * Also starts mic capture and listening automatically. */ + UFUNCTION(BlueprintCallable, Category = "PS AI ConvAgent|Interaction") + void StartConversationWithSelectedAgent(); + /** Clear the current selection. Automatic selection resumes next tick. */ UFUNCTION(BlueprintCallable, Category = "PS AI ConvAgent|Interaction") void ClearSelection(); diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/PS_AI_ConvAgentEditor.Build.cs b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/PS_AI_ConvAgentEditor.Build.cs index b613731..f9f9395 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/PS_AI_ConvAgentEditor.Build.cs +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/PS_AI_ConvAgentEditor.Build.cs @@ -22,5 +22,17 @@ public class PS_AI_ConvAgentEditor : ModuleRules // Runtime module containing FAnimNode_PS_AI_ConvAgent_LipSync "PS_AI_ConvAgent", }); + + PrivateDependencyModuleNames.AddRange(new string[] + { + // Slate UI for Detail Customization + "Slate", + "SlateCore", + "PropertyEditor", + // HTTP requests for ElevenLabs API (voice list, agent CRUD) + "HTTP", + "Json", + "JsonUtilities", + }); } } diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgentEditorModule.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgentEditorModule.cpp index 88fe202..b15796e 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgentEditorModule.cpp +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgentEditorModule.cpp @@ -1,16 +1,39 @@ // Copyright ASTERION. All Rights Reserved. #include "Modules/ModuleManager.h" +#include "PropertyEditorModule.h" +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.h" +#include "PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h" /** * Editor module for PS_AI_ConvAgent plugin. - * Provides AnimGraph node(s) for the PS AI ConvAgent Lip Sync system. + * Provides AnimGraph nodes, asset factories, and Detail Customizations. */ class FPS_AI_ConvAgentEditorModule : public IModuleInterface { public: - virtual void StartupModule() override {} - virtual void ShutdownModule() override {} + virtual void StartupModule() override + { + FPropertyEditorModule& PropertyModule = + FModuleManager::LoadModuleChecked("PropertyEditor"); + + PropertyModule.RegisterCustomClassLayout( + UPS_AI_ConvAgent_AgentConfig_ElevenLabs::StaticClass()->GetFName(), + FOnGetDetailCustomizationInstance::CreateStatic( + &FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::MakeInstance)); + } + + virtual void ShutdownModule() override + { + if (FModuleManager::Get().IsModuleLoaded("PropertyEditor")) + { + FPropertyEditorModule& PropertyModule = + FModuleManager::GetModuleChecked("PropertyEditor"); + + PropertyModule.UnregisterCustomClassLayout( + UPS_AI_ConvAgent_AgentConfig_ElevenLabs::StaticClass()->GetFName()); + } + } }; IMPLEMENT_MODULE(FPS_AI_ConvAgentEditorModule, PS_AI_ConvAgentEditor) diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.cpp new file mode 100644 index 0000000..f66d714 --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.cpp @@ -0,0 +1,1600 @@ +// Copyright ASTERION. All Rights Reserved. + +#include "PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h" +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.h" +#include "PS_AI_ConvAgent.h" + +#include "DetailLayoutBuilder.h" +#include "DetailCategoryBuilder.h" +#include "DetailWidgetRow.h" +#include "Widgets/Input/SButton.h" +#include "Widgets/Input/STextComboBox.h" +#include "Widgets/Input/SMultiLineEditableTextBox.h" +#include "Widgets/Text/STextBlock.h" + +#include "HttpModule.h" +#include "Interfaces/IHttpRequest.h" +#include "Interfaces/IHttpResponse.h" +#include "Dom/JsonObject.h" +#include "Serialization/JsonReader.h" +#include "Serialization/JsonWriter.h" +#include "Serialization/JsonSerializer.h" + +DEFINE_LOG_CATEGORY_STATIC(LogPS_AI_AgentConfigEditor, Log, All); + +// Approximate LLM latencies as shown on the ElevenLabs dashboard. +// The API does not expose this data — values are indicative and may change. +// Update this table periodically to stay current. +static FString GetLLMLatencyHint(const FString& ModelID) +{ + struct FLatencyEntry { const TCHAR* ID; const TCHAR* Latency; }; + static const FLatencyEntry Entries[] = + { + // OpenAI + { TEXT("gpt-4o-mini"), TEXT("~350ms") }, + { TEXT("gpt-4o"), TEXT("~700ms") }, + { TEXT("gpt-4"), TEXT("~900ms") }, + { TEXT("gpt-4-turbo"), TEXT("~650ms") }, + // Anthropic + { TEXT("claude-sonnet-4-5"), TEXT("~750ms") }, + { TEXT("claude-haiku-4-5"), TEXT("~350ms") }, + { TEXT("claude-3-5-sonnet"), TEXT("~700ms") }, + // Google + { TEXT("gemini-1.5-pro"), TEXT("~500ms") }, + { TEXT("gemini-2.0-flash"), TEXT("~300ms") }, + { TEXT("gemini-2.5-flash"), TEXT("~250ms") }, + // xAI + { TEXT("grok-beta"), TEXT("~500ms") }, + // ElevenLabs-hosted + { TEXT("qwen3-30b-a3b"), TEXT("~207ms") }, + { TEXT("glm-4.5-air"), TEXT("~980ms") }, + { TEXT("gpt-oss-120b"), TEXT("~331ms") }, + }; + + for (const auto& E : Entries) + { + if (ModelID == E.ID) return FString(E.Latency); + } + return FString(); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Factory +// ───────────────────────────────────────────────────────────────────────────── +TSharedRef FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::MakeInstance() +{ + return MakeShareable(new FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs()); +} + +// ───────────────────────────────────────────────────────────────────────────── +// CustomizeDetails +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::CustomizeDetails( + IDetailLayoutBuilder& DetailBuilder) +{ + DetailBuilder.GetObjectsBeingCustomized(SelectedObjects); + + // ── Hide properties managed by custom dropdowns ────────────────────────── + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, VoiceID))); + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, VoiceName))); + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, TTSModelID))); + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, LLMModel))); + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, Language))); + DetailBuilder.HideProperty( + DetailBuilder.GetProperty( + GET_MEMBER_NAME_CHECKED(UPS_AI_ConvAgent_AgentConfig_ElevenLabs, CharacterPrompt))); + + // ── Identity category: API action buttons ──────────────────────────────── + IDetailCategoryBuilder& IdentityCat = DetailBuilder.EditCategory( + TEXT("Identity"), FText::GetEmpty(), ECategoryPriority::Important); + + IdentityCat.AddCustomRow(FText::FromString(TEXT("Agent API Actions"))) + .WholeRowContent() + [ + SNew(SVerticalBox) + + SVerticalBox::Slot() + .AutoHeight() + .Padding(0, 4) + [ + SNew(SHorizontalBox) + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Create Agent"))) + .ToolTipText(FText::FromString(TEXT("POST /v1/convai/agents/create — creates a new agent on ElevenLabs."))) + .OnClicked_Lambda([this]() + { + OnCreateAgentClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Update Agent"))) + .ToolTipText(FText::FromString(TEXT("PATCH /v1/convai/agents/{id} — updates the existing agent."))) + .OnClicked_Lambda([this]() + { + OnUpdateAgentClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .AutoWidth() + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Fetch Agent"))) + .ToolTipText(FText::FromString(TEXT("GET /v1/convai/agents/{id} — pulls existing config into this asset."))) + .OnClicked_Lambda([this]() + { + OnFetchAgentClicked(); + return FReply::Handled(); + }) + ] + ] + + SVerticalBox::Slot() + .AutoHeight() + .Padding(0, 2) + [ + SAssignNew(StatusTextBlock, STextBlock) + .Text(FText::GetEmpty()) + .Font(IDetailLayoutBuilder::GetDetailFont()) + .ColorAndOpacity(FSlateColor(FLinearColor(0.3f, 0.7f, 1.0f))) + ] + ]; + + // ── Agent Settings category: LLM + Language + Voice + TTS Model ───────── + IDetailCategoryBuilder& AgentSettingsCat = DetailBuilder.EditCategory( + TEXT("Voice"), FText::FromString(TEXT("Agent Settings")), ECategoryPriority::Important); + + // LLM picker: Fetch button + dropdown + AgentSettingsCat.AddCustomRow(FText::FromString(TEXT("LLM"))) + .NameContent() + [ + SNew(STextBlock) + .Text(FText::FromString(TEXT("LLM Model"))) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + .ValueContent() + .MaxDesiredWidth(300.f) + [ + SNew(SHorizontalBox) + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Fetch"))) + .OnClicked_Lambda([this]() + { + OnFetchLLMsClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .FillWidth(1.f) + [ + SAssignNew(LLMComboBox, STextComboBox) + .OptionsSource(&LLMDisplayNames) + .OnSelectionChanged(this, &FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnLLMSelected) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + ]; + + // Language picker: Fetch button + dropdown + AgentSettingsCat.AddCustomRow(FText::FromString(TEXT("Language"))) + .NameContent() + [ + SNew(STextBlock) + .Text(FText::FromString(TEXT("Language"))) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + .ValueContent() + .MaxDesiredWidth(300.f) + [ + SNew(SHorizontalBox) + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Fetch"))) + .OnClicked_Lambda([this]() + { + OnFetchLanguagesClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .FillWidth(1.f) + [ + SAssignNew(LanguageComboBox, STextComboBox) + .OptionsSource(&LanguageDisplayNames) + .OnSelectionChanged(this, &FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnLanguageSelected) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + ]; + + // Voice picker: Fetch button + dropdown + AgentSettingsCat.AddCustomRow(FText::FromString(TEXT("Voice"))) + .NameContent() + [ + SNew(STextBlock) + .Text(FText::FromString(TEXT("Voice"))) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + .ValueContent() + .MaxDesiredWidth(300.f) + [ + SNew(SHorizontalBox) + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Fetch"))) + .OnClicked_Lambda([this]() + { + OnFetchVoicesClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .FillWidth(1.f) + [ + SAssignNew(VoiceComboBox, STextComboBox) + .OptionsSource(&VoiceDisplayNames) + .OnSelectionChanged(this, &FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnVoiceSelected) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + ]; + + // TTS Model picker: Fetch button + dropdown + AgentSettingsCat.AddCustomRow(FText::FromString(TEXT("TTS Model"))) + .NameContent() + [ + SNew(STextBlock) + .Text(FText::FromString(TEXT("TTS Model"))) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + .ValueContent() + .MaxDesiredWidth(300.f) + [ + SNew(SHorizontalBox) + + SHorizontalBox::Slot() + .AutoWidth() + .Padding(0, 0, 4, 0) + [ + SNew(SButton) + .Text(FText::FromString(TEXT("Fetch"))) + .OnClicked_Lambda([this]() + { + OnFetchModelsClicked(); + return FReply::Handled(); + }) + ] + + SHorizontalBox::Slot() + .FillWidth(1.f) + [ + SAssignNew(ModelComboBox, STextComboBox) + .OptionsSource(&ModelDisplayNames) + .OnSelectionChanged(this, &FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnModelSelected) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + ]; + + // ── Behavior category: tall CharacterPrompt editor ────────────────────── + IDetailCategoryBuilder& BehaviorCat = DetailBuilder.EditCategory( + TEXT("Behavior"), FText::GetEmpty(), ECategoryPriority::Default); + + BehaviorCat.AddCustomRow(FText::FromString(TEXT("Character Prompt"))) + .NameContent() + [ + SNew(STextBlock) + .Text(FText::FromString(TEXT("Character Prompt"))) + .Font(IDetailLayoutBuilder::GetDetailFont()) + ] + .ValueContent() + .MaxDesiredWidth(600.f) + [ + SNew(SBox) + .MinDesiredHeight(200.f) + [ + SNew(SMultiLineEditableTextBox) + .Font(IDetailLayoutBuilder::GetDetailFont()) + .AutoWrapText(true) + .Text_Lambda([this]() + { + if (const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + return FText::FromString(Asset->CharacterPrompt); + } + return FText::GetEmpty(); + }) + .OnTextCommitted_Lambda([this](const FText& NewText, ETextCommit::Type CommitType) + { + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + Asset->Modify(); + Asset->CharacterPrompt = NewText.ToString(); + } + }) + ] + ]; + + // ── Auto-fetch on editor open ─────────────────────────────────────────── + // Populate static Language list (instant) and pre-select current value. + OnFetchLanguagesClicked(); + + // Guard: PostEditChange() in the fetch callback re-triggers CustomizeDetails(). + // Without this guard, we'd get an infinite fetch → PostEditChange → CustomizeDetails loop. + if (!bAutoFetchDone && !GetAPIKey().IsEmpty()) + { + bAutoFetchDone = true; + + const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset(); + if (Asset && !Asset->AgentID.IsEmpty()) + { + // Full agent fetch — pulls config + refreshes Voice/Model/LLM dropdowns. + SetStatusText(TEXT("Syncing agent from ElevenLabs...")); + OnFetchAgentClicked(); + } + else + { + // No AgentID yet — just fetch dropdown data. + SetStatusText(TEXT("Loading voices, models & LLMs...")); + OnFetchVoicesClicked(); + OnFetchModelsClicked(); + OnFetchLLMsClicked(); + } + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Voice Picker +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnFetchVoicesClicked() +{ + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings > PS AI ConvAgent - ElevenLabs.")); + return; + } + + SetStatusText(TEXT("Fetching voices...")); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(TEXT("https://api.elevenlabs.io/v1/voices")); + Request->SetVerb(TEXT("GET")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Accept"), TEXT("application/json")); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API.")); + return; + } + + if (Resp->GetResponseCode() != 200) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + TSharedPtr Root; + if (!FJsonSerializer::Deserialize( + TJsonReaderFactory<>::Create(Resp->GetContentAsString()), Root) || !Root.IsValid()) + { + Pinned->SetStatusError(TEXT("Failed to parse voices JSON.")); + return; + } + + const TArray>* Voices = nullptr; + if (!Root->TryGetArrayField(TEXT("voices"), Voices)) + { + Pinned->SetStatusError(TEXT("No 'voices' array in response.")); + return; + } + + Pinned->VoiceDisplayNames.Reset(); + Pinned->VoiceIDs.Reset(); + + for (const auto& VoiceVal : *Voices) + { + const TSharedPtr* VoiceObj = nullptr; + if (!VoiceVal->TryGetObject(VoiceObj)) continue; + + FString Name, ID; + (*VoiceObj)->TryGetStringField(TEXT("name"), Name); + (*VoiceObj)->TryGetStringField(TEXT("voice_id"), ID); + + if (!ID.IsEmpty()) + { + Pinned->VoiceDisplayNames.Add(MakeShareable(new FString(Name))); + Pinned->VoiceIDs.Add(ID); + } + } + + // Pre-select the currently set VoiceID, or auto-select the first voice for new assets. + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset()) + { + int32 Idx = Pinned->VoiceIDs.IndexOfByKey(Asset->VoiceID); + if (Idx == INDEX_NONE && Asset->VoiceID.IsEmpty() && Pinned->VoiceIDs.Num() > 0) + { + // New asset with no voice set — auto-select the first available voice. + Idx = 0; + Asset->Modify(); + Asset->VoiceID = Pinned->VoiceIDs[0]; + Asset->VoiceName = *Pinned->VoiceDisplayNames[0]; + } + if (Idx != INDEX_NONE && Pinned->VoiceComboBox.IsValid()) + { + Pinned->VoiceComboBox->SetSelectedItem(Pinned->VoiceDisplayNames[Idx]); + } + } + + if (Pinned->VoiceComboBox.IsValid()) + { + Pinned->VoiceComboBox->RefreshOptions(); + } + + Pinned->SetStatusSuccess(FString::Printf(TEXT("Fetched %d voices."), Pinned->VoiceIDs.Num())); + }); + + Request->ProcessRequest(); +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnVoiceSelected( + TSharedPtr NewSelection, ESelectInfo::Type SelectInfo) +{ + if (!NewSelection.IsValid()) return; + + int32 Idx = VoiceDisplayNames.IndexOfByKey(NewSelection); + if (Idx == INDEX_NONE) return; + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + Asset->Modify(); + Asset->VoiceID = VoiceIDs[Idx]; + Asset->VoiceName = *NewSelection; + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Model Picker +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnFetchModelsClicked() +{ + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings > PS AI ConvAgent - ElevenLabs.")); + return; + } + + SetStatusText(TEXT("Fetching models...")); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(TEXT("https://api.elevenlabs.io/v1/models")); + Request->SetVerb(TEXT("GET")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Accept"), TEXT("application/json")); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API.")); + return; + } + + if (Resp->GetResponseCode() != 200) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + // Response is a JSON array of model objects. + TArray> Models; + if (!FJsonSerializer::Deserialize( + TJsonReaderFactory<>::Create(Resp->GetContentAsString()), Models)) + { + Pinned->SetStatusError(TEXT("Failed to parse models JSON.")); + return; + } + + Pinned->ModelDisplayNames.Reset(); + Pinned->ModelIDs.Reset(); + + for (const auto& ModelVal : Models) + { + const TSharedPtr* ModelObj = nullptr; + if (!ModelVal->TryGetObject(ModelObj)) continue; + + FString Name, ID; + (*ModelObj)->TryGetStringField(TEXT("name"), Name); + (*ModelObj)->TryGetStringField(TEXT("model_id"), ID); + + // Only show TTS-capable models. + bool bCanTTS = false; + (*ModelObj)->TryGetBoolField(TEXT("can_do_text_to_speech"), bCanTTS); + if (!bCanTTS) continue; + + if (!ID.IsEmpty()) + { + FString DisplayStr = FString::Printf(TEXT("%s (%s)"), *Name, *ID); + Pinned->ModelDisplayNames.Add(MakeShareable(new FString(DisplayStr))); + Pinned->ModelIDs.Add(ID); + } + } + + // Pre-select the currently set TTSModelID if it exists in the list. + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset()) + { + int32 Idx = Pinned->ModelIDs.IndexOfByKey(Asset->TTSModelID); + if (Idx != INDEX_NONE && Pinned->ModelComboBox.IsValid()) + { + Pinned->ModelComboBox->SetSelectedItem(Pinned->ModelDisplayNames[Idx]); + } + } + + if (Pinned->ModelComboBox.IsValid()) + { + Pinned->ModelComboBox->RefreshOptions(); + } + + Pinned->SetStatusSuccess(FString::Printf(TEXT("Fetched %d TTS models."), Pinned->ModelIDs.Num())); + }); + + Request->ProcessRequest(); +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnModelSelected( + TSharedPtr NewSelection, ESelectInfo::Type SelectInfo) +{ + if (!NewSelection.IsValid()) return; + + int32 Idx = ModelDisplayNames.IndexOfByKey(NewSelection); + if (Idx == INDEX_NONE) return; + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + Asset->Modify(); + Asset->TTSModelID = ModelIDs[Idx]; + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// LLM Picker +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnFetchLLMsClicked() +{ + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings > PS AI ConvAgent - ElevenLabs.")); + return; + } + + SetStatusText(TEXT("Fetching LLMs...")); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(TEXT("https://api.elevenlabs.io/v1/convai/llm/list")); + Request->SetVerb(TEXT("GET")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Accept"), TEXT("application/json")); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API (LLM list).")); + return; + } + + if (Resp->GetResponseCode() != 200) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + TSharedPtr Root; + if (!FJsonSerializer::Deserialize( + TJsonReaderFactory<>::Create(Resp->GetContentAsString()), Root) || !Root.IsValid()) + { + Pinned->SetStatusError(TEXT("Failed to parse LLM list JSON.")); + return; + } + + const TArray>* LLMs = nullptr; + if (!Root->TryGetArrayField(TEXT("llms"), LLMs)) + { + Pinned->SetStatusError(TEXT("No 'llms' array in response.")); + return; + } + + Pinned->LLMDisplayNames.Reset(); + Pinned->LLMModelIDs.Reset(); + + for (const auto& LLMVal : *LLMs) + { + const TSharedPtr* LLMObj = nullptr; + if (!LLMVal->TryGetObject(LLMObj)) continue; + + FString ModelID; + (*LLMObj)->TryGetStringField(TEXT("llm"), ModelID); + + if (ModelID.IsEmpty()) continue; + + // Skip "custom-llm" entry — that's for server integrations. + if (ModelID == TEXT("custom-llm")) continue; + + // Skip deprecated models. + const TSharedPtr* DeprecationInfo = nullptr; + if ((*LLMObj)->TryGetObjectField(TEXT("deprecation_info"), DeprecationInfo)) + { + bool bDeprecated = false; + if (DeprecationInfo->Get()->TryGetBoolField(TEXT("is_deprecated"), bDeprecated) && bDeprecated) + { + continue; + } + } + + // Check if it's a checkpoint model (sub-version). + bool bIsCheckpoint = false; + (*LLMObj)->TryGetBoolField(TEXT("is_checkpoint"), bIsCheckpoint); + + // Build display string: "model-id (~350ms)" or " model-id (checkpoint, ~350ms)" + const FString Latency = GetLLMLatencyHint(ModelID); + FString Display; + if (bIsCheckpoint) + { + Display = Latency.IsEmpty() + ? FString::Printf(TEXT(" %s (checkpoint)"), *ModelID) + : FString::Printf(TEXT(" %s (checkpoint, %s)"), *ModelID, *Latency); + } + else + { + Display = Latency.IsEmpty() + ? ModelID + : FString::Printf(TEXT("%s (%s)"), *ModelID, *Latency); + } + + Pinned->LLMDisplayNames.Add(MakeShareable(new FString(Display))); + Pinned->LLMModelIDs.Add(ModelID); + } + + // Pre-select the currently set LLMModel if it exists in the list. + if (const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset()) + { + if (!Asset->LLMModel.IsEmpty()) + { + int32 Idx = Pinned->LLMModelIDs.IndexOfByKey(Asset->LLMModel); + if (Idx == INDEX_NONE) + { + // Asset's model not in list — add it as a custom entry. + FString CustomDisplay = FString::Printf(TEXT("%s (custom)"), *Asset->LLMModel); + Pinned->LLMDisplayNames.Add(MakeShareable(new FString(CustomDisplay))); + Pinned->LLMModelIDs.Add(Asset->LLMModel); + Idx = Pinned->LLMModelIDs.Num() - 1; + } + if (Pinned->LLMComboBox.IsValid()) + { + Pinned->LLMComboBox->SetSelectedItem(Pinned->LLMDisplayNames[Idx]); + } + } + } + + if (Pinned->LLMComboBox.IsValid()) + { + Pinned->LLMComboBox->RefreshOptions(); + } + + Pinned->SetStatusSuccess(FString::Printf(TEXT("Fetched %d LLMs."), Pinned->LLMModelIDs.Num())); + }); + + Request->ProcessRequest(); +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnLLMSelected( + TSharedPtr NewSelection, ESelectInfo::Type SelectInfo) +{ + if (!NewSelection.IsValid()) return; + + int32 Idx = LLMDisplayNames.IndexOfByKey(NewSelection); + if (Idx == INDEX_NONE) return; + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + Asset->Modify(); + Asset->LLMModel = LLMModelIDs[Idx]; + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Language Picker (static list) +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnFetchLanguagesClicked() +{ + LanguageDisplayNames.Reset(); + LanguageCodes.Reset(); + + struct FLangEntry { const TCHAR* Code; const TCHAR* Name; }; + static const FLangEntry Langs[] = + { + { TEXT("en"), TEXT("English") }, + { TEXT("fr"), TEXT("French") }, + { TEXT("de"), TEXT("German") }, + { TEXT("es"), TEXT("Spanish") }, + { TEXT("it"), TEXT("Italian") }, + { TEXT("pt"), TEXT("Portuguese") }, + { TEXT("ja"), TEXT("Japanese") }, + { TEXT("ko"), TEXT("Korean") }, + { TEXT("zh"), TEXT("Chinese") }, + { TEXT("nl"), TEXT("Dutch") }, + { TEXT("pl"), TEXT("Polish") }, + { TEXT("ru"), TEXT("Russian") }, + { TEXT("sv"), TEXT("Swedish") }, + { TEXT("tr"), TEXT("Turkish") }, + { TEXT("hi"), TEXT("Hindi") }, + { TEXT("cs"), TEXT("Czech") }, + { TEXT("ar"), TEXT("Arabic") }, + { TEXT("id"), TEXT("Indonesian") }, + { TEXT("fi"), TEXT("Finnish") }, + { TEXT("da"), TEXT("Danish") }, + { TEXT("el"), TEXT("Greek") }, + { TEXT("hu"), TEXT("Hungarian") }, + { TEXT("no"), TEXT("Norwegian") }, + { TEXT("ro"), TEXT("Romanian") }, + { TEXT("uk"), TEXT("Ukrainian") }, + { TEXT("vi"), TEXT("Vietnamese") }, + }; + + for (const auto& L : Langs) + { + FString Display = FString::Printf(TEXT("%s (%s)"), L.Name, L.Code); + LanguageDisplayNames.Add(MakeShareable(new FString(Display))); + LanguageCodes.Add(L.Code); + } + + // Pre-select the currently set Language if it exists in the list. + if (const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + int32 Idx = LanguageCodes.IndexOfByKey(Asset->Language); + if (Idx != INDEX_NONE && LanguageComboBox.IsValid()) + { + LanguageComboBox->SetSelectedItem(LanguageDisplayNames[Idx]); + } + } + + if (LanguageComboBox.IsValid()) + { + LanguageComboBox->RefreshOptions(); + } +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnLanguageSelected( + TSharedPtr NewSelection, ESelectInfo::Type SelectInfo) +{ + if (!NewSelection.IsValid()) return; + + int32 Idx = LanguageDisplayNames.IndexOfByKey(NewSelection); + if (Idx == INDEX_NONE) return; + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset()) + { + Asset->Modify(); + Asset->Language = LanguageCodes[Idx]; + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// Agent API — Create +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnCreateAgentClicked() +{ + const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset(); + if (!Asset) + { + SetStatusError(TEXT("No asset selected.")); + return; + } + + if (!Asset->AgentID.IsEmpty()) + { + SetStatusError(TEXT("Agent already has an ID. Use Update instead.")); + return; + } + + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings.")); + return; + } + + SetStatusText(TEXT("Creating agent...")); + + TSharedPtr Payload = BuildAgentPayload(); + FString PayloadStr; + TSharedRef> Writer = TJsonWriterFactory<>::Create(&PayloadStr); + FJsonSerializer::Serialize(Payload.ToSharedRef(), Writer); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(TEXT("https://api.elevenlabs.io/v1/convai/agents/create")); + Request->SetVerb(TEXT("POST")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Content-Type"), TEXT("application/json")); + Request->SetContentAsString(PayloadStr); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API.")); + return; + } + + if (Resp->GetResponseCode() != 200 && Resp->GetResponseCode() != 201) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + TSharedPtr Root; + if (!FJsonSerializer::Deserialize( + TJsonReaderFactory<>::Create(Resp->GetContentAsString()), Root) || !Root.IsValid()) + { + Pinned->SetStatusError(TEXT("Failed to parse response.")); + return; + } + + FString NewAgentID; + if (!Root->TryGetStringField(TEXT("agent_id"), NewAgentID)) + { + Pinned->SetStatusError(TEXT("No 'agent_id' in response.")); + return; + } + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset()) + { + Asset->Modify(); + Asset->AgentID = NewAgentID; + Asset->LastSyncTimestamp = FDateTime::UtcNow().ToIso8601(); + Asset->PostEditChange(); + } + + Pinned->SetStatusSuccess(FString::Printf(TEXT("Agent created: %s"), *NewAgentID)); + }); + + Request->ProcessRequest(); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Agent API — Update +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnUpdateAgentClicked() +{ + const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset(); + if (!Asset) + { + SetStatusError(TEXT("No asset selected.")); + return; + } + + if (Asset->AgentID.IsEmpty()) + { + SetStatusError(TEXT("No AgentID set. Use Create first.")); + return; + } + + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings.")); + return; + } + + SetStatusText(TEXT("Updating agent...")); + + TSharedPtr Payload = BuildAgentPayload(); + FString PayloadStr; + TSharedRef> Writer = TJsonWriterFactory<>::Create(&PayloadStr); + FJsonSerializer::Serialize(Payload.ToSharedRef(), Writer); + + const FString URL = FString::Printf( + TEXT("https://api.elevenlabs.io/v1/convai/agents/%s"), *Asset->AgentID); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(URL); + Request->SetVerb(TEXT("PATCH")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Content-Type"), TEXT("application/json")); + Request->SetContentAsString(PayloadStr); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API.")); + return; + } + + if (Resp->GetResponseCode() != 200) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset()) + { + Asset->Modify(); + Asset->LastSyncTimestamp = FDateTime::UtcNow().ToIso8601(); + } + + Pinned->SetStatusSuccess(TEXT("Agent updated successfully.")); + }); + + Request->ProcessRequest(); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Agent API — Fetch (pull config from ElevenLabs into asset) +// ───────────────────────────────────────────────────────────────────────────── +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::OnFetchAgentClicked() +{ + UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset(); + if (!Asset) + { + SetStatusError(TEXT("No asset selected.")); + return; + } + + if (Asset->AgentID.IsEmpty()) + { + SetStatusError(TEXT("No AgentID set. Enter an ID first or use Create.")); + return; + } + + const FString APIKey = GetAPIKey(); + if (APIKey.IsEmpty()) + { + SetStatusError(TEXT("API Key not set in Project Settings.")); + return; + } + + SetStatusText(TEXT("Fetching agent config...")); + + const FString URL = FString::Printf( + TEXT("https://api.elevenlabs.io/v1/convai/agents/%s"), *Asset->AgentID); + + TSharedRef Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(URL); + Request->SetVerb(TEXT("GET")); + Request->SetHeader(TEXT("xi-api-key"), APIKey); + Request->SetHeader(TEXT("Accept"), TEXT("application/json")); + + TWeakPtr WeakSelf = + StaticCastSharedRef(this->AsShared()); + + Request->OnProcessRequestComplete().BindLambda( + [WeakSelf](FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bConnected) + { + auto Pinned = WeakSelf.Pin(); + if (!Pinned.IsValid()) return; + + if (!bConnected || !Resp.IsValid()) + { + Pinned->SetStatusError(TEXT("Could not reach ElevenLabs API.")); + return; + } + + if (Resp->GetResponseCode() != 200) + { + Pinned->SetStatusError(ParseAPIError( + Resp->GetResponseCode(), Resp->GetContentAsString())); + return; + } + + TSharedPtr Root; + if (!FJsonSerializer::Deserialize( + TJsonReaderFactory<>::Create(Resp->GetContentAsString()), Root) || !Root.IsValid()) + { + Pinned->SetStatusError(TEXT("Failed to parse response.")); + return; + } + + UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = Pinned->GetEditedAsset(); + if (!Asset) return; + + Asset->Modify(); + + // Name + FString Name; + if (Root->TryGetStringField(TEXT("name"), Name)) + { + Asset->AgentName = Name; + } + + // conversation_config.agent + const TSharedPtr* ConvConfig = nullptr; + if (Root->TryGetObjectField(TEXT("conversation_config"), ConvConfig)) + { + const TSharedPtr* AgentObj = nullptr; + if ((*ConvConfig)->TryGetObjectField(TEXT("agent"), AgentObj)) + { + // prompt object + const TSharedPtr* PromptObj = nullptr; + if ((*AgentObj)->TryGetObjectField(TEXT("prompt"), PromptObj)) + { + FString Prompt; + if ((*PromptObj)->TryGetStringField(TEXT("prompt"), Prompt)) + { + // Strip auto-appended fragments from the fetched prompt + // to avoid doubling them on next Update. + // Order matters: strip from earliest marker to preserve CharacterPrompt. + + // 1. Language instruction marker + { + const FString LangMarker = TEXT("\n\n## Language"); + int32 Idx = Prompt.Find(LangMarker, ESearchCase::CaseSensitive); + if (Idx != INDEX_NONE) + { + Prompt.LeftInline(Idx); + } + } + + // 2. Legacy "Conversation Behavior" section (idle follow-up) + // Stripped to avoid doubling — idle follow-up is now handled + // entirely by turn_timeout = -1 in the API. + { + const FString IdleMarker = TEXT("\n\n## Conversation Behavior"); + int32 Idx = Prompt.Find(IdleMarker, ESearchCase::CaseSensitive); + if (Idx != INDEX_NONE) + { + Prompt.LeftInline(Idx); + } + } + + // 3. Emotion tool fragment + if (!Asset->EmotionToolPromptFragment.IsEmpty()) + { + int32 Idx = Prompt.Find(Asset->EmotionToolPromptFragment, + ESearchCase::CaseSensitive); + if (Idx != INDEX_NONE) + { + Prompt.LeftInline(Idx); + } + else + { + const FString EmotionMarker = TEXT("\n\n## Facial Expressions"); + int32 MarkerIdx = Prompt.Find(EmotionMarker, + ESearchCase::CaseSensitive); + if (MarkerIdx != INDEX_NONE) + { + Prompt.LeftInline(MarkerIdx); + } + } + } + + Asset->CharacterPrompt = Prompt; + } + + FString LLM; + if ((*PromptObj)->TryGetStringField(TEXT("llm"), LLM)) + { + Asset->LLMModel = LLM; + } + } + + // first_message + FString FirstMsg; + if ((*AgentObj)->TryGetStringField(TEXT("first_message"), FirstMsg)) + { + Asset->FirstMessage = FirstMsg; + } + + // language + FString Lang; + if ((*AgentObj)->TryGetStringField(TEXT("language"), Lang)) + { + Asset->Language = Lang; + } + + // max_tokens (maps to MaxTurns) + int32 MaxTurns = 0; + if ((*AgentObj)->TryGetNumberField(TEXT("max_tokens"), MaxTurns)) + { + Asset->MaxTurns = MaxTurns; + } + } + + // conversation_config.tts + const TSharedPtr* TTSObj = nullptr; + if ((*ConvConfig)->TryGetObjectField(TEXT("tts"), TTSObj)) + { + FString VoiceID; + if ((*TTSObj)->TryGetStringField(TEXT("voice_id"), VoiceID)) + { + Asset->VoiceID = VoiceID; + } + + FString ModelID; + if ((*TTSObj)->TryGetStringField(TEXT("model_id"), ModelID)) + { + Asset->TTSModelID = ModelID; + } + + double Stability = 0.5; + if ((*TTSObj)->TryGetNumberField(TEXT("stability"), Stability)) + { + Asset->Stability = static_cast(Stability); + } + + double SimBoost = 0.75; + if ((*TTSObj)->TryGetNumberField(TEXT("similarity_boost"), SimBoost)) + { + Asset->SimilarityBoost = static_cast(SimBoost); + } + + double Speed = 1.0; + if ((*TTSObj)->TryGetNumberField(TEXT("speed"), Speed)) + { + Asset->Speed = static_cast(Speed); + } + } + + // conversation_config.turn + const TSharedPtr* TurnObj = nullptr; + if ((*ConvConfig)->TryGetObjectField(TEXT("turn"), TurnObj)) + { + double TurnTimeout = 7.0; + if ((*TurnObj)->TryGetNumberField(TEXT("turn_timeout"), TurnTimeout)) + { + // -1 = infinite wait, otherwise clamp to 1-30 + Asset->TurnTimeout = (TurnTimeout < 0.0) + ? -1.0f + : static_cast(FMath::Clamp(TurnTimeout, 1.0, 30.0)); + } + } + } + + Asset->LastSyncTimestamp = FDateTime::UtcNow().ToIso8601(); + + // Refresh Language combo (static list, instant) + Pinned->OnFetchLanguagesClicked(); + + // Trigger API fetches so all dropdowns update with correct selection + if (!Pinned->GetAPIKey().IsEmpty()) + { + Pinned->OnFetchLLMsClicked(); + Pinned->OnFetchVoicesClicked(); + Pinned->OnFetchModelsClicked(); + } + + Asset->PostEditChange(); + + Pinned->SetStatusSuccess(TEXT("Agent config fetched successfully.")); + }); + + Request->ProcessRequest(); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Helpers +// ───────────────────────────────────────────────────────────────────────────── +FString FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::GetAPIKey() const +{ + if (FPS_AI_ConvAgentModule::IsAvailable()) + { + if (const UPS_AI_ConvAgent_Settings_ElevenLabs* Settings = FPS_AI_ConvAgentModule::Get().GetSettings()) + { + return Settings->API_Key; + } + } + return FString(); +} + +UPS_AI_ConvAgent_AgentConfig_ElevenLabs* FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::GetEditedAsset() const +{ + for (const TWeakObjectPtr& Obj : SelectedObjects) + { + if (UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = + Cast(Obj.Get())) + { + return Asset; + } + } + return nullptr; +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::SetStatusText(const FString& Text) +{ + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT("%s"), *Text); + if (StatusTextBlock.IsValid()) + { + StatusTextBlock->SetText(FText::FromString(Text)); + StatusTextBlock->SetColorAndOpacity(FSlateColor(FLinearColor(0.3f, 0.7f, 1.0f))); // cyan/info + } +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::SetStatusError(const FString& Text) +{ + UE_LOG(LogPS_AI_AgentConfigEditor, Error, TEXT("%s"), *Text); + if (StatusTextBlock.IsValid()) + { + StatusTextBlock->SetText(FText::FromString(Text)); + StatusTextBlock->SetColorAndOpacity(FSlateColor(FLinearColor(1.0f, 0.25f, 0.25f))); // red + } +} + +void FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::SetStatusSuccess(const FString& Text) +{ + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT("%s"), *Text); + if (StatusTextBlock.IsValid()) + { + StatusTextBlock->SetText(FText::FromString(Text)); + StatusTextBlock->SetColorAndOpacity(FSlateColor(FLinearColor(0.2f, 0.9f, 0.3f))); // green + } +} + +FString FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::ParseAPIError( + int32 HttpCode, const FString& ResponseBody) +{ + // Try to extract the human-readable message from ElevenLabs error JSON. + // Format 1: { "detail": { "message": "..." } } + // Format 2: { "detail": { "message": "[{\"msg\": \"...\"}]" } } (validation errors) + // Format 3: { "detail": "simple string" } + TSharedPtr Root; + if (FJsonSerializer::Deserialize(TJsonReaderFactory<>::Create(ResponseBody), Root) && Root.IsValid()) + { + // Try detail as object + const TSharedPtr* DetailObj = nullptr; + if (Root->TryGetObjectField(TEXT("detail"), DetailObj)) + { + FString Message; + if ((*DetailObj)->TryGetStringField(TEXT("message"), Message)) + { + // Check if the message itself contains a JSON array of validation errors + if (Message.StartsWith(TEXT("["))) + { + TArray> Errors; + if (FJsonSerializer::Deserialize(TJsonReaderFactory<>::Create(Message), Errors)) + { + TArray Messages; + for (const auto& ErrVal : Errors) + { + const TSharedPtr* ErrObj = nullptr; + if (ErrVal->TryGetObject(ErrObj)) + { + FString Msg; + if ((*ErrObj)->TryGetStringField(TEXT("msg"), Msg)) + { + Messages.Add(Msg); + } + } + } + if (Messages.Num() > 0) + { + return FString::Printf(TEXT("HTTP %d: %s"), + HttpCode, *FString::Join(Messages, TEXT(" | "))); + } + } + } + return FString::Printf(TEXT("HTTP %d: %s"), HttpCode, *Message); + } + } + + // Try detail as simple string + FString DetailStr; + if (Root->TryGetStringField(TEXT("detail"), DetailStr)) + { + return FString::Printf(TEXT("HTTP %d: %s"), HttpCode, *DetailStr); + } + } + + // Fallback: truncate raw response + return FString::Printf(TEXT("HTTP %d: %s"), HttpCode, *ResponseBody.Left(200)); +} + +TSharedPtr FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::BuildAgentPayload() const +{ + const UPS_AI_ConvAgent_AgentConfig_ElevenLabs* Asset = GetEditedAsset(); + if (!Asset) return MakeShareable(new FJsonObject()); + + // Build the full system prompt by appending automated fragments. + // Order: CharacterPrompt + Language/Multilingual instruction + Emotion tool + FString FullPrompt = Asset->CharacterPrompt; + + UE_LOG(LogPS_AI_AgentConfigEditor, Log, + TEXT("BuildAgentPayload: CharacterPrompt=%d chars, bMultilingual=%d, bAutoLangInstr=%d, Language='%s', " + "LangFragment=%d chars, MultiFragment=%d chars, bEmotionTool=%d"), + Asset->CharacterPrompt.Len(), + Asset->bMultilingual, + Asset->bAutoLanguageInstruction, + *Asset->Language, + Asset->LanguagePromptFragment.Len(), + Asset->MultilingualPromptFragment.Len(), + Asset->bIncludeEmotionTool); + + // Language handling: multilingual mode vs fixed-language mode. + // The ElevenLabs "language" field only controls STT/TTS — the LLM defaults to + // English unless explicitly told otherwise via the prompt. + if (Asset->bMultilingual) + { + // Multilingual mode: agent mirrors the user's language dynamically. + if (!Asset->MultilingualPromptFragment.IsEmpty()) + { + FullPrompt += TEXT("\n\n"); + FullPrompt += Asset->MultilingualPromptFragment; + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT(" → Appended MultilingualPromptFragment")); + } + } + else if (Asset->bAutoLanguageInstruction + && !Asset->Language.IsEmpty() + && Asset->Language != TEXT("en") + && !Asset->LanguagePromptFragment.IsEmpty()) + { + // Fixed-language mode: force the LLM to always respond in one language. + // Replace {Language} placeholder with the actual language display name. + static const TMap LangNames = { + {TEXT("fr"), TEXT("French")}, {TEXT("de"), TEXT("German")}, + {TEXT("es"), TEXT("Spanish")}, {TEXT("it"), TEXT("Italian")}, + {TEXT("pt"), TEXT("Portuguese")}, {TEXT("ja"), TEXT("Japanese")}, + {TEXT("ko"), TEXT("Korean")}, {TEXT("zh"), TEXT("Chinese")}, + {TEXT("nl"), TEXT("Dutch")}, {TEXT("pl"), TEXT("Polish")}, + {TEXT("ru"), TEXT("Russian")}, {TEXT("sv"), TEXT("Swedish")}, + {TEXT("tr"), TEXT("Turkish")}, {TEXT("hi"), TEXT("Hindi")}, + {TEXT("cs"), TEXT("Czech")}, {TEXT("ar"), TEXT("Arabic")}, + {TEXT("id"), TEXT("Indonesian")}, {TEXT("fi"), TEXT("Finnish")}, + {TEXT("da"), TEXT("Danish")}, {TEXT("el"), TEXT("Greek")}, + {TEXT("hu"), TEXT("Hungarian")}, {TEXT("no"), TEXT("Norwegian")}, + {TEXT("ro"), TEXT("Romanian")}, {TEXT("uk"), TEXT("Ukrainian")}, + {TEXT("vi"), TEXT("Vietnamese")}, + }; + + const FString* LangName = LangNames.Find(Asset->Language); + const FString DisplayLang = LangName ? *LangName : Asset->Language; + FString LangFragment = Asset->LanguagePromptFragment; + LangFragment.ReplaceInline(TEXT("{Language}"), *DisplayLang); + FullPrompt += TEXT("\n\n"); + FullPrompt += LangFragment; + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT(" → Appended LanguagePromptFragment for '%s'"), *DisplayLang); + } + + // Append emotion tool instructions. + if (Asset->bIncludeEmotionTool && !Asset->EmotionToolPromptFragment.IsEmpty()) + { + FullPrompt += TEXT("\n\n"); + FullPrompt += Asset->EmotionToolPromptFragment; + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT(" → Appended EmotionToolPromptFragment")); + } + + UE_LOG(LogPS_AI_AgentConfigEditor, Log, TEXT("BuildAgentPayload: FullPrompt = %d chars"), FullPrompt.Len()); + + // prompt object (includes LLM selection + tools) + TSharedPtr PromptObj = MakeShareable(new FJsonObject()); + PromptObj->SetStringField(TEXT("prompt"), FullPrompt); + if (!Asset->LLMModel.IsEmpty()) + { + PromptObj->SetStringField(TEXT("llm"), Asset->LLMModel); + } + + // If emotion tool is enabled, add to prompt.tools[] (API path: conversation_config.agent.prompt.tools) + if (Asset->bIncludeEmotionTool) + { + TSharedPtr EmotionTool = BuildEmotionToolDefinition(); + TArray> Tools; + Tools.Add(MakeShareable(new FJsonValueObject(EmotionTool))); + PromptObj->SetArrayField(TEXT("tools"), Tools); + } + + // agent + TSharedPtr AgentObj = MakeShareable(new FJsonObject()); + AgentObj->SetObjectField(TEXT("prompt"), PromptObj); + if (!Asset->FirstMessage.IsEmpty()) + { + AgentObj->SetStringField(TEXT("first_message"), Asset->FirstMessage); + } + if (!Asset->Language.IsEmpty()) + { + AgentObj->SetStringField(TEXT("language"), Asset->Language); + } + if (Asset->MaxTurns > 0) + { + AgentObj->SetNumberField(TEXT("max_tokens"), Asset->MaxTurns); + } + + // tts + TSharedPtr TTSObj = MakeShareable(new FJsonObject()); + if (!Asset->VoiceID.IsEmpty()) + { + TTSObj->SetStringField(TEXT("voice_id"), Asset->VoiceID); + } + + // Resolve TTS model. + // Multilingual and non-English agents require a multilingual-capable model: + // eleven_multilingual_v2, eleven_turbo_v2_5, eleven_flash_v2_5 + // Monolingual models (e.g. eleven_monolingual_v1) only support English. + FString ResolvedModelID = Asset->TTSModelID; + + auto IsMultilingualModel = [](const FString& ModelID) -> bool + { + return ModelID.Contains(TEXT("multilingual")) + || ModelID.Contains(TEXT("turbo")) + || ModelID.Contains(TEXT("flash")); + }; + + if (Asset->bMultilingual) + { + // Multilingual mode: force a multilingual TTS model. + if (ResolvedModelID.IsEmpty() || !IsMultilingualModel(ResolvedModelID)) + { + ResolvedModelID = TEXT("eleven_multilingual_v2"); + UE_LOG(LogPS_AI_AgentConfigEditor, Warning, + TEXT("Multilingual agent: overriding TTS model to eleven_multilingual_v2 (multilingual support required).")); + } + } + else + { + const bool bNonEnglish = !Asset->Language.IsEmpty() && Asset->Language != TEXT("en"); + if (bNonEnglish) + { + // Non-English fixed-language agents MUST use a multilingual-capable model. + if (ResolvedModelID.IsEmpty() || !IsMultilingualModel(ResolvedModelID)) + { + ResolvedModelID = TEXT("eleven_turbo_v2_5"); + UE_LOG(LogPS_AI_AgentConfigEditor, Warning, + TEXT("Non-English agent: overriding TTS model to eleven_turbo_v2_5 (API constraint).")); + } + } + else if (ResolvedModelID.IsEmpty()) + { + // Default for English if nothing selected + ResolvedModelID = TEXT("eleven_turbo_v2_5"); + } + } + TTSObj->SetStringField(TEXT("model_id"), ResolvedModelID); + TTSObj->SetNumberField(TEXT("stability"), Asset->Stability); + TTSObj->SetNumberField(TEXT("similarity_boost"), Asset->SimilarityBoost); + TTSObj->SetNumberField(TEXT("speed"), Asset->Speed); + + // turn + TSharedPtr TurnObj = MakeShareable(new FJsonObject()); + { + // When bDisableIdleFollowUp is on, force turn_timeout to -1 (infinite wait). + // -1 means the agent will wait indefinitely for user input. + const float EffectiveTurnTimeout = Asset->bDisableIdleFollowUp + ? -1.0f + : (Asset->TurnTimeout < 0.0f ? -1.0f : FMath::Clamp(Asset->TurnTimeout, 1.0f, 30.0f)); + TurnObj->SetNumberField(TEXT("turn_timeout"), EffectiveTurnTimeout); + } + + // conversation_config + TSharedPtr ConvConfig = MakeShareable(new FJsonObject()); + ConvConfig->SetObjectField(TEXT("agent"), AgentObj); + ConvConfig->SetObjectField(TEXT("tts"), TTSObj); + ConvConfig->SetObjectField(TEXT("turn"), TurnObj); + + // Root + TSharedPtr Root = MakeShareable(new FJsonObject()); + if (!Asset->AgentName.IsEmpty()) + { + Root->SetStringField(TEXT("name"), Asset->AgentName); + } + Root->SetObjectField(TEXT("conversation_config"), ConvConfig); + + return Root; +} + +TSharedPtr FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs::BuildEmotionToolDefinition() const +{ + // Build the set_emotion client tool definition. + // Parameters: emotion (enum), intensity (enum). + + // emotion parameter + TSharedPtr EmotionParam = MakeShareable(new FJsonObject()); + EmotionParam->SetStringField(TEXT("type"), TEXT("string")); + EmotionParam->SetStringField(TEXT("description"), TEXT("The emotion to display.")); + TArray> EmotionEnum; + for (const FString& E : {TEXT("joy"), TEXT("sadness"), TEXT("anger"), TEXT("surprise"), + TEXT("fear"), TEXT("disgust"), TEXT("neutral")}) + { + EmotionEnum.Add(MakeShareable(new FJsonValueString(E))); + } + EmotionParam->SetArrayField(TEXT("enum"), EmotionEnum); + + // intensity parameter + TSharedPtr IntensityParam = MakeShareable(new FJsonObject()); + IntensityParam->SetStringField(TEXT("type"), TEXT("string")); + IntensityParam->SetStringField(TEXT("description"), TEXT("The intensity of the emotion.")); + TArray> IntensityEnum; + for (const FString& I : {TEXT("low"), TEXT("medium"), TEXT("high")}) + { + IntensityEnum.Add(MakeShareable(new FJsonValueString(I))); + } + IntensityParam->SetArrayField(TEXT("enum"), IntensityEnum); + + // properties + TSharedPtr Properties = MakeShareable(new FJsonObject()); + Properties->SetObjectField(TEXT("emotion"), EmotionParam); + Properties->SetObjectField(TEXT("intensity"), IntensityParam); + + // required + TArray> Required; + Required.Add(MakeShareable(new FJsonValueString(TEXT("emotion")))); + Required.Add(MakeShareable(new FJsonValueString(TEXT("intensity")))); + + // parameters + TSharedPtr Parameters = MakeShareable(new FJsonObject()); + Parameters->SetStringField(TEXT("type"), TEXT("object")); + Parameters->SetObjectField(TEXT("properties"), Properties); + Parameters->SetArrayField(TEXT("required"), Required); + + // Tool definition + TSharedPtr Tool = MakeShareable(new FJsonObject()); + Tool->SetStringField(TEXT("type"), TEXT("client")); + Tool->SetStringField(TEXT("name"), TEXT("set_emotion")); + Tool->SetStringField(TEXT("description"), + TEXT("Set the character's facial expression emotion and intensity.")); + Tool->SetObjectField(TEXT("parameters"), Parameters); + + return Tool; +} diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h new file mode 100644 index 0000000..7e1da92 --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs.h @@ -0,0 +1,95 @@ +// Copyright ASTERION. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "IDetailCustomization.h" + +class IDetailLayoutBuilder; + +/** + * Detail Customization for UPS_AI_ConvAgent_AgentConfig_ElevenLabs data assets. + * + * Provides: + * - Voice category: "Fetch Voices" button + STextComboBox dropdown + * - Voice category: "Fetch Models" button + STextComboBox dropdown + * - Behavior category: LLM picker with "Fetch" button + STextComboBox dropdown + * - Behavior category: Language picker dropdown (static list) + * - Identity category: "Create Agent" / "Update Agent" / "Fetch Agent" buttons + status text + * - Hidden properties: VoiceID, VoiceName, TTSModelID, LLMModel, Language (managed by dropdowns) + */ +class FPS_AI_ConvAgent_AgentConfigCustomization_ElevenLabs : public IDetailCustomization +{ +public: + static TSharedRef MakeInstance(); + + virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override; + +private: + // ── Voice picker ───────────────────────────────────────────────────────── + void OnFetchVoicesClicked(); + void OnVoiceSelected(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); + + // ── Model picker ───────────────────────────────────────────────────────── + void OnFetchModelsClicked(); + void OnModelSelected(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); + + // ── LLM picker ────────────────────────────────────────────────────────── + void OnFetchLLMsClicked(); + void OnLLMSelected(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); + + // ── Language picker ────────────────────────────────────────────────────── + void OnFetchLanguagesClicked(); + void OnLanguageSelected(TSharedPtr NewSelection, ESelectInfo::Type SelectInfo); + + // ── Agent API ──────────────────────────────────────────────────────────── + void OnCreateAgentClicked(); + void OnUpdateAgentClicked(); + void OnFetchAgentClicked(); + + // ── Helpers ────────────────────────────────────────────────────────────── + FString GetAPIKey() const; + TSharedPtr BuildAgentPayload() const; + TSharedPtr BuildEmotionToolDefinition() const; + + /** Display a status message in the Identity category. + * Color: red for errors, green for success, blue/cyan for info. */ + void SetStatusText(const FString& Text); + void SetStatusError(const FString& Text); + void SetStatusSuccess(const FString& Text); + + /** Parse ElevenLabs API error JSON and return a human-readable message. */ + static FString ParseAPIError(int32 HttpCode, const FString& ResponseBody); + + /** Retrieve the data asset being edited (first selected object). */ + class UPS_AI_ConvAgent_AgentConfig_ElevenLabs* GetEditedAsset() const; + + // ── Cached state ───────────────────────────────────────────────────────── + TArray> SelectedObjects; + + // Voice combo data + TArray> VoiceDisplayNames; + TArray VoiceIDs; + TSharedPtr VoiceComboBox; + + // Model combo data + TArray> ModelDisplayNames; + TArray ModelIDs; + TSharedPtr ModelComboBox; + + // LLM combo data + TArray> LLMDisplayNames; + TArray LLMModelIDs; + TSharedPtr LLMComboBox; + + // Language combo data + TArray> LanguageDisplayNames; + TArray LanguageCodes; + TSharedPtr LanguageComboBox; + + // Status feedback + TSharedPtr StatusTextBlock; + + // Guard: prevents infinite auto-fetch loop when PostEditChange re-triggers CustomizeDetails. + bool bAutoFetchDone = false; +}; diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.cpp b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.cpp new file mode 100644 index 0000000..811dedc --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.cpp @@ -0,0 +1,29 @@ +// Copyright ASTERION. All Rights Reserved. + +#include "PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.h" +#include "PS_AI_ConvAgent_AgentConfig_ElevenLabs.h" +#include "AssetTypeCategories.h" + +UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs::UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs() +{ + SupportedClass = UPS_AI_ConvAgent_AgentConfig_ElevenLabs::StaticClass(); + bCreateNew = true; + bEditAfterNew = true; +} + +UObject* UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs::FactoryCreateNew( + UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, + UObject* Context, FFeedbackContext* Warn) +{ + return NewObject(InParent, Class, Name, Flags); +} + +FText UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs::GetDisplayName() const +{ + return FText::FromString(TEXT("PS AI ConvAgent Agent Config (ElevenLabs)")); +} + +uint32 UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs::GetMenuCategories() const +{ + return EAssetTypeCategories::Misc; +} diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.h new file mode 100644 index 0000000..2e5e8f6 --- /dev/null +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_ConvAgent/Source/PS_AI_ConvAgentEditor/Private/PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.h @@ -0,0 +1,27 @@ +// Copyright ASTERION. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Factories/Factory.h" +#include "PS_AI_ConvAgent_AgentConfigFactory_ElevenLabs.generated.h" + +/** + * Factory that lets users create PS_AI_ConvAgent_AgentConfig_ElevenLabs assets + * directly from the Content Browser (right-click → Miscellaneous). + */ +UCLASS() +class UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs : public UFactory +{ + GENERATED_BODY() + +public: + UPS_AI_ConvAgent_AgentConfigFactory_ElevenLabs(); + + virtual UObject* FactoryCreateNew(UClass* Class, UObject* InParent, + FName Name, EObjectFlags Flags, UObject* Context, + FFeedbackContext* Warn) override; + + virtual FText GetDisplayName() const override; + virtual uint32 GetMenuCategories() const override; +};