llmai.debug.EnableAllllmai.debug.OpenAILevel 2llmai.debug.AudioLevel 2llmai.debug.FunctionLevel 2llmai.debug.SaveAudioFiles 1The debug system is automatically available - no setup required! Just use the console commands to enable debugging.
Include the logging header in any file where you want to use logging:
#include "LLMAILogging.h"
Open the console in Unreal Editor (` key) and use these commands:
llmai.debug.EnableAll# Turn on all debug loggingllmai.debug.DisableAll# Turn off all debug loggingllmai.debug.LogMemory# Show current memory usagellmai.debug.LogPerformance# Show performance statistics
llmai.debug.WebSocketLevel 2
See WebSocket communication detailsllmai.debug.OpenAILevel 2
See OpenAI API request/response details
llmai.debug.AudioLevel 2
See audio processing detailsllmai.debug.VoiceLevel 2
See voice activity detectionllmai.debug.SaveAudioFiles 1
Save audio data for analysis
llmai.debug.FunctionLevel 2
See AI function call details
| Command | Purpose | When to Use |
|---|---|---|
llmai.debug.WebSocketLevel 2 |
WebSocket communication | Connection problems, message issues |
llmai.debug.OpenAILevel 2 |
OpenAI API calls | API errors, response problems |
llmai.debug.AudioLevel 2 |
Audio processing | Voice input/output issues |
llmai.debug.VoiceLevel 2 |
Voice activity detection | Speech detection problems |
llmai.debug.SessionLevel 2 |
AI session management | Session state issues |
llmai.debug.FunctionLevel 2 |
Function calling | AI function call problems |
llmai.debug.PerformanceLevel 2 |
Performance monitoring | Lag, memory issues |
| Command | Purpose | Output Location |
|---|---|---|
llmai.debug.SaveAudioFiles 1 |
Save audio data to files | ProjectLogDir/LLMAI/ |
llmai.debug.LogAudioMetrics 1 |
Show detailed audio stats | Output log |
llmai.debug.LogInterruptions 1 |
Track voice interruptions | Output log |
llmai.debug.LogRawWebSocketData 1 |
Show raw WebSocket traffic | Output log |
llmai.debug.LogOpenAIResponses 1 |
Show full AI responses | Output log |
llmai.debug.LogConnections 1 |
Show connection events | Output log |
// WebSocket logging (Level 1=Basic, 2=Detailed, 3=Verbose)
LLMAI_LOG_WEBSOCKET(1, TEXT("Basic WebSocket info: %s"), *SomeString);
LLMAI_LOG_WEBSOCKET(2, TEXT("Detailed WebSocket info"));
LLMAI_LOG_WEBSOCKET(3, TEXT("Verbose WebSocket debugging"));
// OpenAI API logging
LLMAI_LOG_OPENAI(1, TEXT("OpenAI request sent: %s"), *RequestType);
// Audio processing logging
LLMAI_LOG_AUDIO(1, TEXT("Audio buffer size: %d"), BufferSize);
// Voice activity logging
LLMAI_LOG_VOICE(1, TEXT("Voice threshold: %.4f"), Threshold);
// Session management logging
LLMAI_LOG_SESSION(1, TEXT("Session state changed: %s"), *NewState);
// Function calling logging
LLMAI_LOG_FUNCTION(1, TEXT("Function called: %s"), *FunctionName);
// Performance logging
LLMAI_LOG_PERFORMANCE(1, TEXT("Operation took %f ms"), TimeTaken);
LLMAI_LOG_CLIENT(TEXT("Client component message"));
LLMAI_LOG_STREAM(TEXT("Audio stream message"));
LLMAI_LOG_SETTINGS(TEXT("Settings updated"));
LLMAI_LOG_TRANSCRIPTION(TEXT("Transcription result: %s"), *Text);
LLMAI_LOG_ERROR(LogLLMAIWebSocket, TEXT("WebSocket connection failed"));
LLMAI_LOG_WARNING(LogLLMAIAudio, TEXT("Audio buffer overflow"));
// Connection events
LLMAI_LOG_CONNECTION(TEXT("Connected to %s"), *URL);
// Raw data (very verbose)
LLMAI_LOG_RAW_DATA(TEXT("SEND"), SomeDataString);
// Audio metrics
LLMAI_LOG_AUDIO_METRICS(TEXT("Level: %.4f, Samples: %d"), Level, Count);
// Voice interruptions
LLMAI_LOG_INTERRUPTION(TEXT("User interrupted AI at %.2f seconds"), Time);
// Memory usage
LLMAI_LOG_MEMORY(TEXT("AudioBuffer"), BufferSizeInBytes);
// Simple performance logging
void MyFunction()
{
LLMAI_PERF_SCOPE(MyFunction); // Logs function entry
// ... your code here
}
// Advanced performance timing
void MyAdvancedFunction()
{
LLMAI_PERF_SCOPE_START(MyAdvancedFunction); // Start timing
// ... your code here ...
LLMAI_PERF_SCOPE_END(MyAdvancedFunction); // End timing and log duration
}
// Manual performance logging
LLMAI_PERF_LOG(TEXT("Custom performance metric: %f ms"), Time);
// Log memory usage
LLMAIDebugUtils::LogMemoryUsage(TEXT("MyComponent"));
// Log audio buffer statistics
LLMAIDebugUtils::LogAudioBufferStats(BufferSize, MaxSize, TEXT("InputBuffer"));
// Log session state changes
LLMAIDebugUtils::LogSessionState(SessionId, TEXT("Connected"), TEXT("Additional info"));
// Log WebSocket messages (with optional truncation)
LLMAIDebugUtils::LogWebSocketMessage(TEXT("SEND"), Message, true);
// Log OpenAI responses
LLMAIDebugUtils::LogOpenAIResponse(TEXT("completion"), ResponseContent);
// Log audio format information
LLMAIDebugUtils::LogAudioFormat(44100, 2, 16);
// Log audio levels with threshold comparison
LLMAIDebugUtils::LogAudioLevel(AudioLevel, Threshold, TEXT("Microphone"));
// Save audio data for debugging
LLMAIDebugUtils::SaveAudioDataForDebug(AudioData, TEXT("debug_audio"), TEXT("Voice"));
// Log function calls and results
LLMAIDebugUtils::LogFunctionCall(TEXT("GetWeather"), TEXT("{\"location\":\"NYC\"}"), TEXT("call_123"));
LLMAIDebugUtils::LogFunctionResult(TEXT("call_123"), TEXT("Sunny, 72°F"), true);
The system provides these main log categories:
llmai.debug.OpenAILevel 2
Check API communicationllmai.debug.SessionLevel 2
Check session statellmai.debug.LogConnections 1
Check connection status
llmai.debug.AudioLevel 2
Check audio capturellmai.debug.VoiceLevel 2
Check voice detectionllmai.debug.SaveAudioFiles 1
Save audio for analysis
llmai.debug.FunctionLevel 2
See function call detailsllmai.debug.OpenAILevel 2
See AI's function call requests
llmai.debug.PerformanceLevel 2
Monitor performancellmai.debug.LogMemory
Check memory usagestat LLMAI
Show performance stats
YourProject/Saved/Logs/LLMAI/YourProject/Saved/Logs/)YourProject/Saved/Logs/LLMAI/)