From 3e74bcbf3af671abf3062ad87d93915ae0bda755 Mon Sep 17 00:00:00 2001 From: Roberto Guagliardo Date: Sat, 31 Jan 2026 14:58:01 +0000 Subject: [PATCH] feat: Enhance logging by including request payload in generation responses --- .../Core/class-groq-ai-ajax-controller.php | 24 ++++++++++++++----- ...class-groq-ai-abstract-openai-provider.php | 8 ++++++- .../class-groq-ai-provider-google.php | 16 ++++++++----- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/includes/Core/class-groq-ai-ajax-controller.php b/includes/Core/class-groq-ai-ajax-controller.php index 0f45f35..00728fc 100644 --- a/includes/Core/class-groq-ai-ajax-controller.php +++ b/includes/Core/class-groq-ai-ajax-controller.php @@ -230,6 +230,12 @@ class Groq_AI_Ajax_Controller { ] ); + $logged_parameters = $request_parameters; + if ( is_array( $result ) && isset( $result['request_payload'] ) ) { + $logged_parameters['http_request'] = $result['request_payload']; + unset( $result['request_payload'] ); + } + if ( is_wp_error( $result ) ) { if ( $logger ) { $logger->log_generation_event( @@ -242,7 +248,7 @@ class Groq_AI_Ajax_Controller { 'status' => 'error', 'error_message' => $result->get_error_message(), 'post_id' => 0, - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); } @@ -272,7 +278,7 @@ class Groq_AI_Ajax_Controller { 'status' => 'error', 'error_message' => $parsed->get_error_message(), 'post_id' => 0, - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); } @@ -294,7 +300,7 @@ class Groq_AI_Ajax_Controller { 'usage' => $response_usage, 'status' => 'success', 'post_id' => 0, - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); } @@ -544,6 +550,12 @@ class Groq_AI_Ajax_Controller { ] ); + $logged_parameters = $request_parameters; + if ( is_array( $result ) && isset( $result['request_payload'] ) ) { + $logged_parameters['http_request'] = $result['request_payload']; + unset( $result['request_payload'] ); + } + if ( is_wp_error( $result ) ) { $this->plugin->get_generation_logger()->log_generation_event( [ @@ -557,7 +569,7 @@ class Groq_AI_Ajax_Controller { 'post_id' => $post_id, 'status' => 'error', 'error_message' => $result->get_error_message(), - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); wp_send_json_error( [ 'message' => $result->get_error_message() ], 500 ); @@ -583,7 +595,7 @@ class Groq_AI_Ajax_Controller { 'post_id' => $post_id, 'status' => 'error', 'error_message' => $response->get_error_message(), - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); wp_send_json_error( [ 'message' => $response->get_error_message() ], 500 ); @@ -598,7 +610,7 @@ class Groq_AI_Ajax_Controller { 'usage' => $response_usage, 'post_id' => $post_id, 'status' => 'success', - 'parameters' => $request_parameters, + 'parameters' => $logged_parameters, ] ); diff --git a/includes/Providers/class-groq-ai-abstract-openai-provider.php b/includes/Providers/class-groq-ai-abstract-openai-provider.php index c3e4212..fc180b8 100644 --- a/includes/Providers/class-groq-ai-abstract-openai-provider.php +++ b/includes/Providers/class-groq-ai-abstract-openai-provider.php @@ -100,8 +100,10 @@ abstract class Groq_AI_Abstract_OpenAI_Provider implements Groq_AI_Provider_Inte $request_body['response_format'] = $args['response_format']; } + $endpoint = $this->get_endpoint(); + $response = wp_remote_post( - $this->get_endpoint(), + $endpoint, [ 'headers' => [ 'Authorization' => 'Bearer ' . $api_key, @@ -140,6 +142,10 @@ abstract class Groq_AI_Abstract_OpenAI_Provider implements Groq_AI_Provider_Inte 'content' => $content, 'usage' => $usage, 'raw_response' => $body, + 'request_payload' => [ + 'url' => $endpoint, + 'body' => $request_body, + ], ]; } diff --git a/includes/Providers/class-groq-ai-provider-google.php b/includes/Providers/class-groq-ai-provider-google.php index 49dba52..a800930 100644 --- a/includes/Providers/class-groq-ai-provider-google.php +++ b/includes/Providers/class-groq-ai-provider-google.php @@ -231,12 +231,16 @@ class Groq_AI_Provider_Google implements Groq_AI_Provider_Interface { $usage['finish_reason'] = $finish_reason; } - return [ - 'content' => $content, - 'usage' => $usage, - 'raw_response' => $body, - ]; - } + return [ + 'content' => $content, + 'usage' => $usage, + 'raw_response' => $body, + 'request_payload' => [ + 'url' => $endpoint, + 'body' => $payload, + ], + ]; + } private function build_safety_settings_payload( $settings ) { if ( empty( $settings ) || ! is_array( $settings ) ) {