Edit File by line
/home/zeestwma/ceyloniy.../wp-conte.../plugins/wpforms-.../src/Integrat.../AI/API
File: Choices.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace WPForms\Integrations\AI\API;
[2] Fix | Delete
[3] Fix | Delete
use WPForms\Integrations\AI\Helpers;
[4] Fix | Delete
[5] Fix | Delete
/**
[6] Fix | Delete
* Choices class.
[7] Fix | Delete
*
[8] Fix | Delete
* @since 1.9.1
[9] Fix | Delete
*/
[10] Fix | Delete
class Choices extends API {
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Get choices from the API.
[14] Fix | Delete
*
[15] Fix | Delete
* @since 1.9.1
[16] Fix | Delete
*
[17] Fix | Delete
* @param string $prompt Prompt to get choices for.
[18] Fix | Delete
* @param string $session_id Session ID.
[19] Fix | Delete
*
[20] Fix | Delete
* @return array
[21] Fix | Delete
*/
[22] Fix | Delete
public function choices( string $prompt, string $session_id = '' ): array {
[23] Fix | Delete
[24] Fix | Delete
$args = [
[25] Fix | Delete
'userPrompt' => $this->prepare_prompt( $prompt ),
[26] Fix | Delete
'limit' => $this->get_limit(),
[27] Fix | Delete
];
[28] Fix | Delete
[29] Fix | Delete
if ( ! empty( $session_id ) ) {
[30] Fix | Delete
$args['sessionId'] = $session_id;
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
$endpoint = '/ai-choices';
[34] Fix | Delete
[35] Fix | Delete
$response = $this->request->post( $endpoint, $args );
[36] Fix | Delete
[37] Fix | Delete
if ( $response->has_errors() ) {
[38] Fix | Delete
$error_data = $response->get_error_data();
[39] Fix | Delete
[40] Fix | Delete
Helpers::log_error( $response->get_log_message( $error_data ), $endpoint, $args );
[41] Fix | Delete
[42] Fix | Delete
return $error_data;
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
$result = $response->get_body();
[46] Fix | Delete
[47] Fix | Delete
// Limit the number of choices.
[48] Fix | Delete
// In some cases, the API may return more choices than requested.
[49] Fix | Delete
$choices = array_slice( $result['choices'], 0, $this->get_limit() );
[50] Fix | Delete
[51] Fix | Delete
// Remove numeration from choices.
[52] Fix | Delete
$choices = array_map(
[53] Fix | Delete
static function ( $choice ) {
[54] Fix | Delete
[55] Fix | Delete
return preg_replace( '/^\d+\.\s+/', '', $choice );
[56] Fix | Delete
},
[57] Fix | Delete
$choices
[58] Fix | Delete
);
[59] Fix | Delete
[60] Fix | Delete
$result['choices'] = $choices;
[61] Fix | Delete
[62] Fix | Delete
return $result;
[63] Fix | Delete
}
[64] Fix | Delete
}
[65] Fix | Delete
[66] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function