Une boutique en ligne Prestashop multilingue utilisant ChatGPT

Boutique en ligne Prestashop multilingue avec ChatGPT

Aujourd’hui, nous allons examiner l’exemple du moteur gratuit Prestashop pour traduire le contenu à l’aide du réseau neuronal générateur ChatGPT4.

Pour l’exemple, nous utiliserons la version 1.7.8.6 de Prestashop.

Tout d’abord, dans le répertoire /modules/ , nous allons créer un répertoire avec le nom de notre module ; je vais nommer mon module “productlocal.”

Dans ce répertoire, créez un fichier .php avec le nom de notre module. Dans mon cas, c’est : productlocal.php.

Dans ce fichier, nous allons créer la classe du module :

C’est une classe modèle pour un module PrestaShop. Dans le constructeur de la classe, nous avons ajouté les paramètres “api_key” et “model,” où la clé API de OpenAI et la version du modèle ChatGPT choisi seront stockées. Si vous avez accès à ChatGPT 4, définissez la valeur de la variable $this->model = “gpt-4”. Si vous n’avez pas accès, utilisez le modèle “gpt-3.5-turbo“. Il traduit aussi bien le texte et est beaucoup moins cher.

Prix :

GPT-3.5-turbo 0,002 $/1 000 jetons

GPT-4 0,06 $/1 000 jetons de prompts 0,12 $/1 000 jetons de réponse

Pour obtenir une clé API, vous devez vous rendre sur ce lien et vous inscrire.

Après l’inscription, vous devez créer une nouvelle clé API et la sauvegarder. Cela sera spécifié dans les réglages du futur module.

Après la création de la clé, vous pouvez recharger votre solde OpenAI. Si vous utilisez le modèle GPT-3.5-turbo, 5 $ devraient suffire pour traduire environ 600 à 1 000 produits, selon la longueur de la description.

Pour effectuer une requête à l’API, nous devons envoyer une requête POST au format JSON à l’URL suivante :

Revenons à l’écriture du module. Nous allons le faire de sorte que vous puissiez traduire la description directement lors de l’édition du produit.

Pour tester notre module, je vais ajouter plusieurs langues à mon Prestashop. Pour ce faire, je vais dans le menu “International->Localization->India” puis cliquer sur le bouton “Import”.

Après cela, les langues tamoul, hindi et bengali seront ajoutées à votre système.

Maintenant, lors de l’édition d’un produit, vous avez le choix entre plusieurs langues :

Maintenant, nous devons ajouter un bouton à l’interface d’édition du produit. Lorsque ce bouton est pressé, notre module enverra une requête à l’API OpenAI. Tout d’abord, concevons notre bouton. Dans le répertoire de votre module, créez un fichier de modèle .tpl. Je l’appellerai translate_button.tpl.

Ensuite, ajoutez le code suivant :

Il s’agit d’un simple bouton qui, lorsqu’il est pressé, envoie une requête à l’adresse du contrôleur avec l’ID du produit et la langue sélectionnée, après quoi le contrôleur fournit une réponse. Nous n’avons pas encore de contrôleur ; nous le créerons un peu plus tard. Il prendra l’id_product et le language_code, enverra la description du produit à ChatGPT, puis enregistrera les données reçues et fournira une réponse.

Maintenant, pour que ce bouton apparaisse sur la page d’édition du produit, nous devons ajouter un hook à notre classe de module qui sera appelé lors de l’ouverture de la page d’édition du produit.

Pour cela, dans le fichier productlocal.php, dans la classe productlocal , ajoutez la méthode suivante :

Mais ce n’est pas suffisant. Pour définir correctement les droits d’accès à notre module pour différents utilisateurs, nous devons créer un nouvel onglet (élément de menu dans le panneau d’administration) pour notre module, et il n’est pas nécessaire que cet onglet soit affiché.

Pour créer un nouvel onglet lors de l’installation du module, vous devez ajouter les méthodes suivantes à la classe productlocal :

Nous devons également maintenant modifier les méthodes d’installation et de désinstallation :

Maintenant, après l’installation de notre module, sur la page d’édition du produit, nous devrions voir le hook de notre module :

Cliquez sur le bouton “Configurer”, et ensuite, notre bouton sera affiché :

Génial, nous avons le bouton. Au clic, JS envoie une requête au contrôleur. Maintenant, nous devons créer le contrôleur. Si vous étiez attentif, vous auriez remarqué au début de l’article que dans le code du constructeur de notre classe de module, j’ai créé un paramètre :

AdminProductlocal sera le nom de notre contrôleur. J’ai également spécifié ce contrôleur dans le code lors de la création de l’onglet.

Pour créer un nouveau contrôleur pour le panneau d’administration, nous devons créer un répertoire controllers/admin/ dans le répertoire de notre module.

Dans ce répertoire, nous créons un fichier avec le nom de notre contrôleur, AdminProductlocalController.php. Notez que le fichier du contrôleur doit avoir le même nom que le nom du contrôleur mais avec le mot “Controller” ajouté à la fin.

Le code de notre contrôleur sera :

Maintenant, dans notre classe de module, il ne reste plus qu’à créer la méthode translateDescription , qui prendra id_product et language_code comme paramètres d’entrée, traduira la description du produit et renverra la réponse.

Mais d’abord, créons une méthode qui échangera des données avec l’API OpenAI. Faisons en sorte que cette méthode prenne le texte, le type de texte et la langue pour le traduire en entrées et renvoie le texte traduit en sortie.

Pour traduire le nom du produit, nous utiliserons la requête de prompt suivante à ChatGPT :

Et pour traduire la description courte et complète du produit, nous utiliserons la requête de prompt suivante à ChatGPT :

Nous demandons spécifiquement à ChatGPT de répondre par {not-found} ou {already-done} en cas d’erreurs afin qu’il soit plus facile pour nous de traiter les réponses incorrectes ultérieurement.

Maintenant, notre méthode prend le texte et la langue en entrée et, selon le type de texte, construit une requête et envoie une requête à l’API. Elle renvoie ensuite le texte traduit.

Il est temps pour la méthode finale et principale à laquelle notre contrôleur fait référence, à savoir translateDescription.

Cette méthode prendra l’id_product du produit modifié et la langue, envoie des demandes de traduction pour le nom du produit et les descriptions courtes et complètes en utilisant la méthode requestTranslateToChatGPT , puis remplace le nom, enregistre le produit et fournit un résultat de son fonctionnement à notre contrôleur. Sinon, il renverra une erreur en réponse.

Le code de la méthode translateDescription dans notre cas ressemblera à ceci :

Notre module est prêt à être utilisé.

Il reste une petite touche facultative : nous pouvons ajouter la possibilité de configurer et de changer les paramètres de notre module via le panneau d’administration, en particulier l’api_key et le model. Pour cela, nous devons ajouter quelques méthodes à notre module : displayFormqui affiche le formulaire pour modifier les paramètres, et la méthode getContent , qui enregistre les paramètres lorsqu’ils sont modifiés.

Maintenant, à titre de test, installons notre module, sélectionnons la langue hindi et cliquons sur le bouton “Traduire la description“. Après une longue attente, vous verrez le message “Produit traduit avec succès“.

Il vous suffit maintenant de rafraîchir la page. Et après le rafraîchissement, vous verrez la description traduite.

Si vous ne voulez pas rafraîchir la page manuellement à chaque fois, vous pouvez ajouter le code JS pour rafraîchir, location.reload();, dans le fichier translate_button.tpl.

C’est tout. Et comme toujours, vous pouvez étendre les fonctionnalités de votre module en faisant vérifier votre texte par ChatGPT pour détecter les erreurs, ou en modifiant la description pour la rendre plus courte ou plus longue. Pour cela, vous devez simplement modifier les requêtes de prompt.

Vous pouvez voir le code complet du module dans le dépôt GitHub.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Célébrez les bons moments en 3D avec Kingsletter cette semaine Dans le Studio NVIDIA.

Note de l’éditeur : cet article fait partie de notre série hebdomadaire In the NVIDIA Studio, qui célèbre les a...

AI

Renouvelé, Remasterisé et Remixé 'Portal Prelude RTX' Rajeunit le Mod de Jeu Légendaire

Note de l’éditeur : Cet article fait partie de notre série hebdomadaire In the NVIDIA Studio, qui met en avant ...

AI

Arrivée cet automne NVIDIA DLSS 3.5 pour Chaos Vantage, D5 Render, Omniverse et les titres de jeux populaires

Note de l’éditeur : Cet article fait partie de notre série hebdomadaire In the NVIDIA Studio, qui célèbre les a...

AI

Le meilleur de sa catégorie est en session les nouveaux ordinateurs portables NVIDIA Studio boostent les contenus, les jeux et l'éducation

Note de l’éditeur : Cet article fait partie de notre série hebdomadaire In the NVIDIA Studio, qui célèbre les a...

AI

Avantage de l'IA des flux de travail créatifs améliorés dans NVIDIA Canvas, Blender, TikTok et CapCut

Note de l’éditeur : Cet article fait partie de notre série hebdomadaire In the NVIDIA Studio, qui met en valeur...

AI

Dans l'Omnivers Reallusion améliore les flux de travail d'animation de personnages avec la synchronisation en direct bidirectionnelle et le support OpenUSD.

Note de l’éditeur : Cet article fait partie d’Into the Omniverse, une série axée sur la manière dont les ...