feat: Add product attribute inclusion settings and enhance context handling in AI prompts

This commit is contained in:
2026-01-16 19:19:00 +00:00
parent 7b9f26e966
commit 43ddbddd11
7 changed files with 248 additions and 8 deletions

View File

@@ -143,6 +143,23 @@ class Groq_AI_Ajax_Controller {
$system_prompt = $prompt_builder->build_system_prompt( $settings, $conversation_id );
$model = $this->plugin->get_selected_model( $provider, $settings );
$context_fields = $prompt_builder->parse_context_fields_from_request( isset( $_POST['context_fields'] ) ? $_POST['context_fields'] : '', $settings );
if ( array_key_exists( 'attribute_includes', $_POST ) ) {
$attribute_includes = [];
$attribute_raw = (string) wp_unslash( $_POST['attribute_includes'] );
$decoded = json_decode( $attribute_raw, true );
if ( is_array( $decoded ) ) {
foreach ( $decoded as $value ) {
$key = sanitize_key( (string) $value );
if ( '' === $key ) {
continue;
}
if ( in_array( $key, [ '__custom__', '__all__' ], true ) || 0 === strpos( $key, 'pa_' ) ) {
$attribute_includes[] = $key;
}
}
}
$settings['product_attribute_includes'] = array_values( array_unique( $attribute_includes ) );
}
$image_context_mode = $this->plugin->get_image_context_mode( $settings );
$image_context_limit = $this->plugin->get_image_context_limit( $settings );
@@ -168,7 +185,7 @@ class Groq_AI_Ajax_Controller {
}
}
$product_context_text = $prompt_builder->build_product_context_block( $post_id, $context_fields, $prompt_image_mode, $image_context_limit );
$product_context_text = $prompt_builder->build_product_context_block( $post_id, $context_fields, $prompt_image_mode, $image_context_limit, $settings );
$image_context_payloads = [];
if ( $use_base64_payloads ) {
$image_context_payloads = $prompt_builder->get_product_image_payloads( $post_id, $image_context_limit );