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.
- Annonce du support des points d’accès Amazon S3 pour Amazon SageMaker Data Wrangler
- Promouvoir l’engagement des patients Comment les applications mobiles révolutionnent le développement de logiciels de santé
- Naviguer dans le paysage des LLM une analyse comparative des principaux grands modèles de langage
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 : displayForm
— qui 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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Créez des vidéos virales avec l’IA pour gagner de l’argent en ligne
- Sean Mullaney, Directeur de la technologie chez Algolia – Série d’interviews
- Découvrez SQLCoder un nouveau modèle open source de pointe pour convertir les questions en langage naturel en requêtes SQL.
- Nous avons désespérément besoin de composter davantage pour sauver le monde ; comment l’IA et les données peuvent nous aider
- Système d’apprentissage automatique basé sur la lumière pourrait donner des modèles de langage plus puissants et plus efficaces
- Google à Interspeech 2023
- La petite histoire sur l’IA générative le défi du dessin