Extension WP - Call OpenAI with a form

With the help of the playground, I’m still looking for a solution to create a Wordpress extension to make promtps with the API.

For now, here’s what I’ve been able to get:

Plugin Name: Extension OpenAI
Description: Permet d'utiliser l'API OpenAI
Version: 1.0
Author: Votre Nom

// On définit le shortcode
function openai_shortcode() {

	// On définit la clé API
	$api_key = 'Authorization: Bearer ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■u8VB4UKN, $headers[] = 'application/json';
	// On définit le formulaire avec le champ pour rentrer le prompt et le bouton GO
	$form = '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post">';
	$form .= '<p>';
	$form .= 'Prompt : <br />';
	$form .= '<input type="text" name="prompt" size="50" />';
	$form .= '</p>';
	$form .= '<p><input type="submit" name="openai-submitted" value="GO"/></p>';
	$form .= '</form>';
	// On récupère le prompt rentré par l'utilisateur
	if ( isset( $_POST['openai-submitted'] ) ) {
		$prompt = sanitize_text_field( $_POST["prompt"] );
		// On définit l'URL avec la clé API et le prompt
		$url = 'https://api.openai.com/v1/engines/davinci/completions?prompt='.$prompt.'&max_tokens=50&temperature=0.7&top_p=1&n=1&stream=false&logprobs=0&stop=.&key='.$api_key;
		// On exécute la requête
		$response = wp_remote_get( $url );
		$responsebody = wp_remote_retrieve_body( $response );
		// Vérification du code de retour HTTP
		$status = wp_remote_retrieve_response_code( $response );
		if ( $status != 200 ) {
			$result = '<p>Erreur : le code de retour HTTP est '.$status.'</p>';
		} else {
			// On décode le JSON et on récupère le prompt
			$json = json_decode( $responsebody );
			$answer = $json->choices[0]->text;
			// On affiche le résultat du prompt
			$result = '<p>Résultat : '.$answer.'</p>';
		// Affichage du contenu de la réponse
		$result .= '<p>Contenu de la réponse : '.$responsebody.'</p>';
	// On affiche le formulaire et le résultat du prompt
	return $form . $result;

// On ajoute le shortcode
add_shortcode( 'openai', 'openai_shortcode' );

The error message is as follows : Erreur : le code de retour HTTP est 401

Contenu de la réponse : { “error”: { “message”: “You didn’t provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you’re accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://beta.openai.com.”, “type”: “invalid_request_error”, “param”: null, “code”: null } }

Can you help me to find the solution to this problem?

1 Like