Il s'agit d'un guide pratique sur la façon d'optimiser les invites ChatGPT pour la programmation. Ici, mon objectif était de fournir des conseils et des techniques pour aider les développeurs à optimiser leurs invites chatgpt afin d'éviter les problèmes courants et d'améliorer leur expérience de génération de code. Ce guide s'adresse particulièrement à ceux qui utilisent un abonnement chat.openai.com, leur permettant d'optimiser leurs 25 messages toutes les 3 heures pour gpt4.
Bienvenue dans le référentiel PromptMaster ! Le but de ce référentiel est de fournir aux développeurs des conseils pratiques sur l'optimisation des invites ChatGPT pour les tâches de programmation. Notre objectif est de partager des conseils, des techniques et des bonnes pratiques pour vous aider à éviter les pièges courants et à améliorer votre expérience de génération de code avec ChatGPT. Ce référentiel couvrira également l'utilisation de ChatGPT avec des outils de développement populaires et la mise à jour du modèle d'IA. Nous encourageons la collaboration et les contributions de la communauté des développeurs pour rendre cette ressource aussi complète et utile que possible.
Pour obtenir les meilleurs résultats de ChatGPT, il est essentiel de formater correctement vos invites. Assurez-vous que vos invites sont claires, concises et spécifiques. Vous pouvez également utiliser des techniques de formatage, comme placer les instructions sur une ligne distincte ou utiliser des puces pour améliorer la clarté.
ChatGPT est un modèle d'IA puissant doté d'une vaste base de connaissances. Assurez-vous d’exploiter ses capacités à votre avantage. Vous pouvez fournir du contexte ou demander au modèle de générer du code pour un langage de programmation, une bibliothèque ou un framework spécifique. De plus, vous pouvez demander au modèle de réfléchir étape par étape ou de générer un pseudocode avant de générer le code réel.
Sachez que ChatGPT, comme tous les modèles d’IA, n’est pas parfait et peut générer du code présentant des pièges ou des biais potentiels. Pour éviter ces problèmes, vous pouvez :
Problème : Le code généré est trop long et est coupé, et lorsque l'on demande à ChatGPT de continuer là où il s'est arrêté, il recommence au lieu de continuer le code. Pour éviter cela, vous pouvez soit :
Invite parfaite :
ChatGPT, your answer got truncated. Please continue the previously generated code without repeating any part of it.
The last part of the previous code snippet was:
< Insert the last few lines of the generated code here >
Continue generating the remaining code from this point onwards, ensuring that the solution picks up where it left off and does not start over.
Problème : Parfois, ChatGPT répond avec du code sous forme de texte brut plutôt que dans un bloc de code. Cela peut entraîner des erreurs d'indentation et des problèmes de syntaxe lorsque le code est copié et collé dans un environnement de développement. Pour éviter cela, vous pouvez utiliser l'invite suivante pour demander explicitement du code dans un bloc de code.
Invite parfaite :
ChatGPT, please provide a solution to the problem in a properly formatted Python code block. The problem is:
< Insert problem description here >
En demandant explicitement un bloc de code, vous avez plus de chances de recevoir le code généré dans le format correct, réduisant ainsi les risques de rencontrer des erreurs d'indentation ou de syntaxe lors de la copie du code.
Problème : étant donné que ChatGPT a une date limite de connaissance fixée à 2021, il se peut qu'il n'ait pas accès aux bibliothèques ou aux frameworks mis à jour ni aux modifications qui y sont apportées. Par conséquent, il peut rencontrer des bibliothèques et des frameworks inconnus.
Solution proposée : pour mieux aider ChatGPT à comprendre et à s'adapter aux bibliothèques et frameworks inconnus, vous pouvez :
-Fournissez le nom de la bibliothèque ou du framework. -Décrire le but de la bibliothèque ou du framework. -Donnez un exemple de la façon dont la bibliothèque ou le framework est utilisé. -Mentionnez toutes les fonctions ou méthodes spécifiques que vous devez utiliser. -Inclure toute dernière documentation ou ressource pertinente.
Invite parfaite :
ChatGPT, I need help with a problem using the <library/framework> version <version_number>, which is a <brief description of the library/framework>.
Here is a code snippet or documentation that demonstrates its usage:
< Insert code snippet or documentation link here >
Please provide a solution to the following problem, taking into account the updated version and any changes in the library/framework:
< Insert problem description here >
En fournissant du contexte et des informations pertinentes, vous pouvez augmenter les chances que ChatGPT génère une solution utile prenant en compte la bibliothèque ou le framework mis à jour.
Exemple d'invite :
ChatGPT, I am working on a project that requires the use of the Dask library in Python.
Dask is a library for parallel and distributed computing that allows processing of large datasets,
and provides support for computations on multi-dimensional arrays, data frames, and machine learning tasks.
I need to perform parallel computation on large datasets efficiently.
Specifically, I need to use Dask's DataFrame API to perform a groupby operation followed by aggregation.
Here are snippets of the latest documentation and resources:
- Dask documentation: https://docs.dask.org/en/latest/ < provide the snippets that has been updated and chatgpt might not be familair with >
Please provide a Python script that uses the Dask library to achieve the following tasks:
1 . Load a large dataset with millions of rows and columns.
2 . Perform a groupby operation based on a specific column.
3 . Aggregate the results using a sum operation.
4 . Output the resulting dataset.
Problème : Pour optimiser la sortie de ChatGPT, il peut être utile de fournir des contraintes ou des exigences spécifiques pour le code généré. Par exemple, si la vitesse ou l'utilisation de la mémoire sont un problème, vous pouvez inclure ces informations dans votre invite pour aider ChatGPT à optimiser sa sortie.
Pour optimiser la sortie de ChatGPT, fournissez des contraintes ou des exigences spécifiques pour le code généré. Cela peut inclure des informations sur le langage de programmation, les types de données, la vitesse ou l'utilisation de la mémoire, l'ordre de tri ou toute autre contrainte pertinente.
Invite parfaite :
ChatGPT, I need help generating code that meets the following constraints and requirements:
- < Insert constraint or requirement >
- < Insert constraint or requirement >
- < Insert constraint or requirement >
- < Insert constraint or requirement >
- < Insert constraint or requirement >
Can you help me generate code that meets these requirements?
Exemple d'invite :
"ChatGPT, I need to generate a C++ program that sorts a large array of integers, but the program needs to meet the following constraints:
- The program needs to be optimized for speed and should be able to handle large arrays efficiently.
- The program should be memory-efficient and should use a sorting algorithm that minimizes memory usage.
- The program should be able to handle both ascending and descending sorts and should allow the user to specify the sorting order.
- The program should be able to handle arrays with duplicate values and should sort them in a stable manner.
- The program should be easy to read and maintain, with clear variable names and comments.
Can you help me write a C++ program that meets these requirements?"
Problème : ChatGPT est un compagnon précieux mais pas un développeur parfait. Lorsque vous demandez à ChatGPT de générer du code ou de vous aider avec votre code, il est essentiel de garantir qu'il existe une gestion suffisante des erreurs et une programmation défensive, ce qui facilite la visualisation et la résolution des erreurs. Pour générer du code incluant des techniques de programmation défensive et de gestion des erreurs, vous pouvez fournir un contexte et des informations sur les erreurs potentielles ou les cas extrêmes qui doivent être traités dans votre invite. Pour faciliter l'identification des erreurs lors d'un débogage ultérieur, vous pouvez demander à ChatGPT d'ajouter des instructions d'impression qui génèrent toutes les erreurs qui se produisent, ainsi que des constructions de programmation défensives telles que la validation des entrées, les blocs try-sauf et la journalisation.
Invite parfaite :
ChatGPT, I need a Python script that < describes the task >.
Please ensure that the code is robust and implements defensive programming techniques, such as input validation, error handling,
and appropriate exception handling with print statements to output any errors that occur.
The script should:
< list the specific tasks or requirements of the script >
Exemple avant et après l'utilisation de l'invite parfaite :
Avant:
def process_data(data):
result = data_processing_function(data)
return result
data = input("Enter the data: ")
result = process_data(data)
print("The processed data is:", result)
Après avoir utilisé l'invite parfaite :
ChatGPT, I need a Python script that takes user input for data, processes it using a custom 'data_processing_function', and prints the result.
Please ensure that the code is robust and implements defensive programming techniques,
such as input validation, error handling, and appropriate exception handling with print statements to output any errors that occur.
Code généré :
def validate_input(data):
# Implement validation logic according to your requirements
return True
def process_data(data):
try:
if not validate_input(data):
raise ValueError("Invalid input data")
result = data_processing_function(data)
return result
except ValueError as ve:
print("Error: Invalid input data:", ve)
return None
except Exception as e:
print("Error:", e)
return None
data = input("Enter the data: ")
result = process_data(data)
if result is not None:
print("The processed data is:", result)
else:
print("An error occurred during data processing.")
En utilisant l'invite parfaite, ChatGPT génère du code qui inclut la gestion des erreurs et la programmation défensive, ce qui facilite le débogage et la maintenance.
Problème : lorsque vous travaillez avec ChatGPT sur un projet, il est essentiel de lui faire savoir que vous avez déjà installé la configuration requise et que les API pertinentes sont configurées. Cela permet à ChatGPT d'éviter d'expliquer dans sa réponse ce que vous avez déjà fait et d'adapter le résultat à vos besoins spécifiques. Pour optimiser le résultat de ChatGPT, vous pouvez fournir un dictionnaire de projet et des API pertinentes dans votre invite. Cela peut aider ChatGPT à comprendre le contexte et le but du code que vous devez générer.
Invite parfaite :
ChatGPT, I am working on a project that involves < project description >.
I have already set up the required libraries, APIs, and dependencies. My project's structure looks like this:
< Describe your project structure here >
Please help me with the following task, taking into consideration the existing setup:
< Insert task description here >
Exemple avant et après l'utilisation de l'invite parfaite :
Avant:
ChatGPT, I want to create a Telegram bot to track ERC20 tokens.
Réponse ChatGPT (avant) :
Pour créer un bot Telegram pour suivre les jetons ERC20, vous devez :
Configurez un nouveau bot sur Telegram en parlant au BotFather. Obtenez votre jeton API de bot. Installez la bibliothèque python-telegram-bot. Configurez le bot pour communiquer avec la blockchain Ethereum....
Utiliser l'invite parfaite :
ChatGPT, I am working on a project that involves creating a Telegram bot to track ERC20 tokens.
I have already set up the required libraries (python-telegram-bot), created a bot on Telegram, and obtained an API token.
My project's structure looks like this:
- main.py < share code >
- config.py (API token stored here)
- erc20_tracker.py < share code >
Please help me with the following task, taking into consideration the existing setup:
Implement the functionality in the erc20_tracker.py file to track ERC20 tokens.
Code généré (Après) :
import requests
from config import TELEGRAM_API_TOKEN
def get_erc20_balance(address, contract_address):
# Implement the function to get the balance of ERC20 tokens for a given address
def track_erc20_tokens(update, context):
# Implement the function to track ERC20 tokens using the Telegram bot
if __ name __ == " __ main __ ":
from telegram.ext import Updater, CommandHandler
updater = Updater(token=TELEGRAM_API_TOKEN, use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler("track", track_erc20_tokens))
updater.start_polling()
updater.idle()
En fournissant le dictionnaire du projet et les informations préalables, ChatGPT génère un code adapté à vos besoins spécifiques, en tenant compte de la configuration existante.
Problème : Parfois, lors de la génération de code, ChatGPT peut inclure des importations redondantes ou inutiles que vous avez déjà dans votre projet, entraînant un encombrement et une répétition dans le code généré. Pour éviter cela, vous pouvez demander à ChatGPT d'omettre les instructions d'importation dans le code généré et de vous concentrer sur les fonctionnalités spécifiques dont vous avez besoin.
Invite parfaite :
ChatGPT, I am working on a project that involves < project description >.
I have already imported all the required libraries and dependencies in my project.
Please help me with the following task, but do not include any import statements in the generated code:
< Insert task description here >
Problème : lorsque vous demandez de l'aide à ChatGPT pour votre code, vous souhaiterez parfois recevoir uniquement des suggestions de modifications ou d'améliorations pour des parties spécifiques de votre code, plutôt que de réécrire l'intégralité du code. Pour y parvenir, vous pouvez :
-Spécifiez les parties exactes du code qui nécessitent une amélioration ou une modification. -Demandez à ChatGPT de fournir une description générale des modifications au lieu de réécrire l'intégralité du code.
Invite parfaite :
ChatGPT, I have a piece of code that I think can be improved or modified in some way.
I would like you to provide suggestions for changes or improvements to only the following specific part(s) of the code:
<Insert the specific part(s) of your code here>
Please provide a high-level description of the changes you suggest, without rewriting the whole code from the beginning.
Problème : lorsque vous demandez de l'aide à ChatGPT pour votre code, vous souhaiterez peut-être que le code généré n'inclue que les sections modifiées ou améliorées tout en conservant intacts les en-têtes et les fonctions d'origine. De plus, vous souhaiterez peut-être que ChatGPT affiche l'emplacement des sections modifiées dans votre code (après quelle ligne et avant quelle ligne). Pour y parvenir, vous pouvez fournir des instructions claires à ChatGPT sur les sections spécifiques qui doivent être modifiées et l'emplacement souhaité de ces modifications.
Invite parfaite :
ChatGPT, I have a piece of code that I think can be improved or modified in some way.
I would like you to provide suggestions for changes or improvements to only the following specific part(s) of the code:
<Insert the specific part(s) of your code here>
Please generate only the edited sections of the code while keeping the original headers and functions intact.
Also, indicate the placement of the edited sections by specifying after which line and before which line the changes should be inserted in the existing code.
Exemple (avant) :
def load_data(file_path):
# Load data from a file
pass
def process_data(data):
# Process the data
pass
def save_data(data, file_path):
# Save the processed data to a file
pass
Utiliser l'invite parfaite :
ChatGPT, I have a piece of code that I think can be improved or modified in some way.
I would like you to provide suggestions for changes or improvements to only the following specific part(s) of the code:
def process_data(data):
# Process the data
pass
Please generate only the edited sections of the code while keeping the original headers and functions intact.
Also, indicate the placement of the edited sections by specifying after which line and before which line the changes should be inserted in the existing code.
Code généré (Après) :
Edited section:
Replace the pass statement in the process_data function with the following lines
Place after line: 5
Place before line: 6
data = data.upper()
result = data.strip()
En utilisant l'invite parfaite, ChatGPT génère uniquement les sections modifiées du code et fournit des instructions claires sur l'endroit où placer les modifications dans le code existant.
Problème : lorsque vous travaillez avec du code long et complexe, il peut être difficile de localiser et de consulter rapidement des sections spécifiques. L'ajout de commentaires et la division du code en sections peuvent contribuer à améliorer la navigation et faciliter la référence à certaines parties lorsque vous demandez de l'aide à ChatGPT.
-Utilisez des commentaires pour diviser votre code en sections, en étiquetant chaque partie avec un identifiant descriptif (par exemple, #Part 1, #Part 2, etc.) -Lorsque vous demandez de l'aide à ChatGPT, vous pouvez directement faire référence à la partie spécifique par son étiquette, ce qui permet à vous et à ChatGPT de vous concentrer plus facilement sur la section pertinente.
Invite parfaite :
ChatGPT, I have a piece of code that is divided into sections using comments. Here is a brief overview of the sections:
#Part 1: <Description of Part 1>
#Part 2: <Description of Part 2>
...
#Part N: < Description of Part N >
I would like you to provide suggestions or assistance for the following part(s) of the code:
<Specify which part(s) you want ChatGPT to focus on>
Please provide your suggestions or assistance with reference to the specified part(s) without rewriting the whole code from the beginning.
Problème : les connaissances de ChatGPT sont limitées aux informations jusqu'en septembre 2021, ce qui signifie qu'il peut ne pas être au courant des mises à jour ou des modifications apportées aux bibliothèques depuis lors. Lorsque vous recherchez de l'aide pour une nouvelle bibliothèque ou une version mise à jour, il est important d'informer ChatGPT de la situation et de fournir des extraits de code et de documentation pertinents.
-Indiquez clairement que vous utilisez une bibliothèque ou une version spécifique qui a été mise à jour au-delà du seuil de connaissances de ChatGPT. -Partagez votre code et incluez des extraits de documentation pertinents dans des ressources mises à jour pour aider ChatGPT à comprendre le contexte et à fournir une assistance plus précise.
Invite parfaite :
ChatGPT, I am working with a library (or a specific version of a library) that has been updated since your knowledge cutoff in September 2021.
I understand that you may not be aware of the changes, so I will provide you with the relevant code and some documentation snippets to help you assist me.
Here's my code:
< Your code here >
Here are the documentation snippets related to the library or the specific version I am using:
< Documentation snippet >
Considering the provided code and documentation, could you please help me with the following issue(s) or question(s):
<Specify your issue(s) or question(s)>
Problème : ChatGPT n'est peut-être pas familier avec les fonctions ou méthodes définies par l'utilisateur, ce qui rend difficile la compréhension du contexte lors de la discussion du code.
-Fournir des détails sur les fonctions ou méthodes personnalisées, telles que leur objectif, leurs entrées, leurs sorties et tous les détails de mise en œuvre pertinents. Cela aidera ChatGPT à fournir une meilleure assistance et des recommandations.
Invite parfaite :
I have a custom function called function_name(arguments), which performs a specific task.
The function takes these arguments: arg1 (type), arg2 (type), and so on. It returns the result of the operation as a specific type.
Can you suggest improvements or potential issues with this function?
Problème Les utilisateurs voudront peut-être de l'aide pour optimiser leur code ou le rendre plus concis.
-Demandez à ChatGPT des suggestions sur la façon d'améliorer l'efficacité ou la concision de votre code, et faites part de vos préoccupations ou contraintes spécifiques.
Invite parfaite :
I have a piece of code that performs a specific task, but I'd like to make it more efficient or concise.
Here's my current implementation:
def function_name(arguments):
< Your code here >
Can you suggest an alternative way to implement this functionality?
Problème : ChatGPT peut ne pas avoir accès à votre base de données spécifique ou à la structure de votre ensemble de données, ce qui peut entraver sa capacité à fournir des conseils pertinents.
-Partagez un extrait de votre base de données ou de la structure de votre ensemble de données, y compris des informations sur les tables, les colonnes, les types de données et les relations entre les tables ou les points de données, pour aider ChatGPT à mieux comprendre votre requête et à fournir des conseils appropriés. -Utilisez l'exemple d'invite générique comme point de départ et adaptez-le à votre situation spécifique.
Invite parfaite :
I'm working with a database or dataset that has the following structure:
(provide information on tables, columns, data types, and relationships).
Can you help me with a query or data manipulation task related to this structure?
heres the first 10 rows in my dataset_1.csv
... paste here
Exemple:
I'm working with a database that has the following structure:
Table orders: order_id (integer), customer_id (integer), order_date (date), total_amount (float)
Table customers: customer_id (integer), customer_name (varchar), email (varchar)
The tables are related by the customer_id field.
Sample data (first 10 lines):
orders:
1, 1, 2023-01-01, 100.00
2, 2, 2023-01-02, 150.00
3, 3, 2023-01-02, 200.00
customers:
1, Alice, [email protected]
2, Bob, [email protected]
3, Carol, [email protected]
I want to retrieve a list of all orders with the customer's name and email.
Can you help me write a SQL query for this task?
Problème : parfois, chatgpt fournit une réponse de code qui ne fonctionnera pas et reste bloqué et obsédé par celui-ci. dans ce cas, demandez à chatgpt une solution alternative ou une liste d'approches pour résoudre le problème, vous permettant de choisir la meilleure option en fonction de vos besoins et contraintes spécifiques.
Invite parfaite :
I need help solving a specific problem in my code, but I'm looking for multiple alternative solutions or approaches.
Can you provide a list of different ways to solve this problem, considering my specific needs and constraints?
Here's my code:
< Your code here >
Problème : les utilisateurs peuvent avoir besoin d'aide pour gérer de longs extraits de code ou plusieurs fichiers, ce qui peut être difficile à gérer dans un format conversationnel.
-Informez chatgpt que vous partagerez plusieurs fichiers ou fichiers longs qui seront envoyés dans plus d'un message. -Demandez à chatgpt de comprendre, de noter et de suivre tous les messages et déclarez que vous l'informerez lorsque vous aurez terminé le partage, puis poserez vos questions. -Demandez-lui de répondre qu'il comprend. partagez le code ou les fichiers avec ChatGPT et fournissez à chatgpt autant de détails sur les fichiers que vous partagez et quelles parties.
Invite parfaite :
I will be sharing multiple files or long files that span across more than one message.
Please understand, keep note of, and track all the messages.
I will inform you when I finish sharing the files, and then I will ask my questions.
Please respond back that you understand.
<Share the code or files with ChatGPT sequentially or as needed, providing as many details as possible about which files you are sharing and which parts they pertain to.>
EDI / Outil | Nom de l'extension/du plugin | Description |
---|---|---|
Code de Visual Studio | Extension ChatGPT pour VSCode | Vous permet d'utiliser l'API ChatGPT non officielle pour générer des réponses en langage naturel à partir de ChatGPT d'OpenAI dans l'éditeur. |
Code de Visual Studio | Génie IA | Invitez les modèles GPT-4, GPT-3.5, GPT-3 et Codex d'OpenAI dans Visual Studio Code. |
Code de Visual Studio | OngletNeuf | Bien qu'il ne s'agisse pas de ChatGPT, TabNine est un puissant outil de complétion de code alimenté par l'IA. |
Carnet Jupyter | Extension Jupyter Chat-GPT | Intègre ChatGPT dans Jupyter Notebook pour la génération de code et les suggestions. |
IDÉE IntelliJ | Plugin ChatGPT IntelliJ | Intègre ChatGPT dans IntelliJ IDEA pour la génération de code, la saisie semi-automatique et l'assistance. |
J'espère que ce guide vous a été utile pour améliorer votre expérience avec ChatGPT pour la génération de code. À mesure que ChatGPT évolue, les meilleures pratiques pour l'utiliser évolueront également. Si vous avez des suggestions, une contribution à ajouter ou des commentaires, n'hésitez pas à envoyer une pull request au référentiel GitHub de ce guide. Bon codage et invite ! <3