genai_extract_assistant_response function extracts the assistant’s response from a GenAI messages array. It returns the content of the last message with the ‘assistant’ role, which typically contains the AI model’s generated response to the user.
You can use this function to analyze AI responses, evaluate response quality, perform sentiment analysis on AI outputs, or track specific response patterns for monitoring and debugging.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.Splunk SPL users
Splunk SPL users
In Splunk SPL, you would need to use complex eval statements with mvfilter and mvindex to extract assistant messages.
ANSI SQL users
ANSI SQL users
In ANSI SQL, you would need to unnest arrays, filter by role, and select the last message, which is more verbose.
Usage
Syntax
Parameters
- messages (dynamic, required): An array of message objects from a GenAI conversation. Each message typically contains
roleandcontentfields.
Returns
Returns a string containing the content of the last assistant message in the conversation, or an empty string if no assistant message is found.Use case examples
- Log analysis
- OpenTelemetry traces
- Security logs
Extract AI responses from conversation logs to analyze response quality and patterns.QueryRun in PlaygroundOutput
This query extracts AI responses and correlates them with response times, helping you analyze performance.
| _time | id | req_duration_ms | ai_response |
|---|---|---|---|
| 2024-01-15T10:30:00Z | user_123 | 1250 | To reset your password, click on the ‘Forgot Password’ link on the login page. |
| 2024-01-15T10:31:00Z | user_456 | 980 | Our business hours are Monday to Friday, 9 AM to 5 PM EST. |
List of related functions
- genai_extract_user_prompt: Extracts the user’s prompt. Use this to analyze what users are asking.
- genai_extract_system_prompt: Extracts the system prompt. Use this to understand how the AI is configured.
- genai_get_content_by_role: Gets content by any role. Use this when you need messages from roles other than assistant.
- genai_concat_contents: Concatenates all message contents. Use this when you need the full conversation instead of just the assistant’s response.
- genai_has_tool_calls: Checks for tool calls in messages. Use this to detect when the assistant made function calls.