Esta es una guía práctica sobre cómo optimizar las indicaciones de ChatGPT para la programación. Aquí, mi objetivo era brindar consejos y técnicas para ayudar a los desarrolladores a optimizar sus mensajes de chatgpt para evitar problemas comunes y mejorar su experiencia de generación de código. Esta guía es particularmente para aquellos que usan la suscripción chat.openai.com, lo que les permite optimizar sus 25 mensajes cada 3 horas para gpt4.
¡Bienvenido al repositorio de PromptMaster ! El propósito de este repositorio es brindar a los desarrolladores orientación práctica sobre cómo optimizar las indicaciones de ChatGPT para tareas de programación. Nuestro objetivo es compartir consejos, técnicas y mejores prácticas para ayudarlo a evitar errores comunes y mejorar su experiencia de generación de código con ChatGPT. Este repositorio también cubrirá el uso de ChatGPT con herramientas de desarrollo populares y cómo mantenerse actualizado con el modelo de IA. Alentamos la colaboración y las contribuciones de la comunidad de desarrolladores para que este recurso sea lo más completo y útil posible.
Para obtener los mejores resultados de ChatGPT, es esencial formatear las indicaciones correctamente. Asegúrese de que sus indicaciones sean claras, concisas y específicas. También puede utilizar técnicas de formato, como poner instrucciones en una línea separada o utilizar viñetas para mejorar la claridad.
ChatGPT es un poderoso modelo de inteligencia artificial con una amplia base de conocimientos. Asegúrese de aprovechar sus capacidades a su favor. Puede proporcionar contexto o pedirle al modelo que genere código para un lenguaje de programación, biblioteca o marco específico. Además, puede pedirle al modelo que piense paso a paso o genere un pseudocódigo antes de generar el código real.
Tenga en cuenta que ChatGPT, como todos los modelos de IA, no es perfecto y puede generar código con posibles errores o sesgos. Para evitar estos problemas, puede:
Problema: el código generado es demasiado largo y se corta, y cuando le pide a ChatGPT que continúe desde donde se detuvo, comienza de nuevo en lugar de continuar con el código. Para evitar esto, puedes:
Aviso perfecto:
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.
Problema: a veces, ChatGPT responde con código como texto sin formato en lugar de dentro de un bloque de código. Esto podría provocar errores de sangría y problemas de sintaxis cuando el código se copia y pega en un entorno de desarrollo. Para evitar esto, puede utilizar el siguiente mensaje para solicitar explícitamente código dentro de un bloque de código.
Aviso perfecto:
ChatGPT, please provide a solution to the problem in a properly formatted Python code block. The problem is:
< Insert problem description here >
Al solicitar explícitamente un bloque de código, es más probable que reciba el código generado en el formato correcto, lo que reduce las posibilidades de encontrar errores de sangría o de sintaxis al copiar el código.
Problema: dado que ChatGPT tiene una fecha límite de conocimiento de 2021, es posible que no tenga acceso a bibliotecas o marcos actualizados o a los cambios realizados en ellos. Por lo tanto, puede encontrar bibliotecas y marcos desconocidos.
Solución propuesta: para ayudar mejor a ChatGPT a comprender y adaptarse a bibliotecas y marcos desconocidos, puede:
-Proporcione el nombre de la biblioteca o marco. -Describir el propósito de la biblioteca o framework. -Dar un ejemplo de cómo se utiliza la biblioteca o el marco. -Mencione cualquier función o método específico que necesite utilizar. -Incluir cualquier documentación o recursos relevantes más recientes.
Aviso perfecto:
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 >
Al proporcionar contexto e información relevante, puede aumentar las posibilidades de que ChatGPT genere una solución útil que considere la biblioteca o el marco actualizado.
Mensaje de ejemplo:
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.
Problema: para optimizar la salida de ChatGPT, puede resultar útil proporcionar restricciones o requisitos específicos para el código generado. Por ejemplo, si le preocupa la velocidad o el uso de la memoria, puede incluir esta información en su mensaje para ayudar a ChatGPT a optimizar su salida.
Para optimizar la salida de ChatGPT, proporcione restricciones o requisitos específicos para el código generado. Esto podría incluir información sobre el lenguaje de programación, tipos de datos, velocidad o uso de memoria, orden de clasificación o cualquier otra restricción relevante.
Aviso perfecto:
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?
Mensaje de ejemplo:
"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?"
Problema: ChatGPT es un compañero valioso pero no el desarrollador perfecto. Al pedirle a ChatGPT que genere código o le ayude con su código, es esencial asegurarse de que haya un amplio manejo de errores y programación defensiva, lo que facilitará ver y abordar cualquier error. Para generar código que incluya técnicas de programación defensiva y manejo de errores, puede proporcionar contexto e información sobre los errores potenciales o casos extremos que deben manejarse en su mensaje. Para que sea más fácil identificar errores durante la depuración posterior, puede pedirle a ChatGPT que agregue declaraciones impresas que generen cualquier error que ocurra, junto con construcciones de programación defensiva como validación de entrada, bloques try-except y registro.
Aviso perfecto:
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 >
Ejemplo de antes y después de utilizar el mensaje perfecto:
Antes:
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)
Después de usar el mensaje perfecto:
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.
Código generado:
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.")
Al utilizar el mensaje perfecto, ChatGPT genera código que incluye manejo de errores y programación defensiva, lo que facilita la depuración y el mantenimiento.
Problema: cuando se trabaja con ChatGPT en un proyecto, es esencial informarle que ya instaló los requisitos y configuró las API relevantes. Esto ayuda a ChatGPT a evitar explicar en su respuesta lo que ya ha hecho y adaptar el resultado a sus necesidades específicas. Para optimizar el resultado de ChatGPT, puede proporcionar un diccionario del proyecto y API relevantes en su mensaje. Esto puede ayudar a ChatGPT a comprender el contexto y el propósito del código que necesita generar.
Aviso perfecto:
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 >
Ejemplo de antes y después de utilizar el mensaje perfecto:
Antes:
ChatGPT, I want to create a Telegram bot to track ERC20 tokens.
Respuesta de ChatGPT (antes):
Para crear un bot de Telegram para rastrear tokens ERC20, necesitas:
Configure un nuevo bot en Telegram hablando con BotFather. Obtenga su token API de bot. Instale la biblioteca python-telegram-bot. Configure el bot para comunicarse con la cadena de bloques Ethereum....
Usando el mensaje perfecto:
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.
Código generado (despué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()
Al proporcionar el diccionario del proyecto y la información de requisitos previos, ChatGPT genera código adaptado a sus necesidades específicas, teniendo en cuenta la configuración existente.
Problema: A veces, al generar código, ChatGPT puede incluir importaciones redundantes o innecesarias que ya tienes en tu proyecto, lo que genera desorden y repeticiones en el código generado. Para evitar esto, puede indicarle a ChatGPT que omita las declaraciones de importación en el código generado y se centre en la funcionalidad específica que necesita.
Aviso perfecto:
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 >
Problema: cuando solicita ayuda a ChatGPT con su código, a veces es posible que solo desee recibir sugerencias de cambios o mejoras para partes específicas de su código, en lugar de reescribir todo el código. Para lograr esto, puedes:
-Especificar las partes exactas del código que necesitan mejora o modificación. -Solicite a ChatGPT que proporcione una descripción de alto nivel de los cambios en lugar de reescribir el código completo.
Aviso perfecto:
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.
Problema: cuando solicite ayuda a ChatGPT con su código, es posible que desee que el código generado incluya solo las secciones editadas o mejoradas manteniendo intactos los encabezados y funciones originales. Además, es posible que desees que ChatGPT muestre la ubicación de las secciones editadas en tu código (después de qué línea y antes de qué línea). Para lograr esto, puede proporcionar instrucciones claras a ChatGPT sobre las secciones específicas que necesitan edición y la ubicación deseada de esas ediciones.
Aviso perfecto:
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.
Ejemplo (antes):
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
Usando el mensaje perfecto:
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.
Código generado (despué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()
Al utilizar el mensaje perfecto, ChatGPT genera solo las secciones editadas del código y proporciona instrucciones claras sobre dónde colocar los cambios dentro del código existente.
Problema: cuando se trabaja con código largo y complejo, puede resultar difícil localizar y consultar rápidamente secciones específicas. Agregar comentarios y dividir el código en secciones puede ayudar a mejorar la navegación y facilitar la referencia a ciertas partes cuando se solicita ayuda a ChatGPT.
-Utilice comentarios para dividir su código en secciones, etiquetando cada parte con un identificador descriptivo (por ejemplo, #Parte 1, #Parte 2, etc.) -Cuando solicite ayuda a ChatGPT, puede hacer referencia directamente a la parte específica por su etiqueta. facilitando que tanto usted como ChatGPT se concentren en la sección relevante.
Aviso perfecto:
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.
Problema: el conocimiento de ChatGPT se limita a información hasta septiembre de 2021, lo que significa que es posible que no esté al tanto de las actualizaciones o cambios en las bibliotecas que hayan ocurrido desde entonces. Cuando busque ayuda con una nueva biblioteca o una versión actualizada, es importante informar a ChatGPT de la situación y proporcionar fragmentos de código y documentación relevantes.
-Indique claramente que está utilizando una biblioteca o una versión específica que se ha actualizado más allá del límite de conocimiento de ChatGPT. -Comparta su código e incluya fragmentos de documentación pertinentes en recursos actualizados para ayudar a ChatGPT a comprender el contexto y brindar asistencia más precisa.
Aviso perfecto:
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)>
Problema: Es posible que ChatGPT no esté familiarizado con las funciones o métodos definidos por el usuario, lo que dificulta la comprensión del contexto cuando se analiza el código.
-Proporcionar detalles sobre las funciones o métodos personalizados, como su propósito, entradas, salidas y cualquier detalle de implementación relevante. Esto ayudará a ChatGPT a brindar mejor asistencia y recomendaciones.
Aviso perfecto:
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?
Problema Los usuarios pueden querer ayuda para optimizar su código o hacerlo más conciso.
-Solicite sugerencias a ChatGPT sobre cómo mejorar la eficiencia o la concisión de su código y proporcione cualquier inquietud o limitación específica que tenga.
Aviso perfecto:
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?
Problema: Es posible que ChatGPT no tenga acceso a su base de datos específica o a la estructura del conjunto de datos, lo que puede obstaculizar su capacidad para brindar orientación relevante.
-Comparta un fragmento de su base de datos o estructura de conjunto de datos, incluida información sobre tablas, columnas, tipos de datos y relaciones entre tablas o puntos de datos, para ayudar a ChatGPT a comprender mejor su consulta y brindar la orientación adecuada. -Utilice el ejemplo genérico como punto de partida y adáptelo a su situación específica.
Aviso perfecto:
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
Ejemplo:
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?
Problema: a veces chatgpt proporciona una respuesta de código que no funciona y se queda atascado y obsesionado con él. en este caso, solicite a chatgpt una solución alternativa o una lista de enfoques para resolver el problema, lo que le permitirá elegir la mejor opción según sus necesidades y limitaciones específicas.
Aviso perfecto:
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 >
Problema: los usuarios pueden necesitar ayuda con fragmentos de código largos o varios archivos, lo que puede resultar complicado de gestionar en un formato conversacional.
-Informa a chatgpt que compartirás varios archivos o archivos largos que se enviarán en más de 1 mensaje. -Pídale a chatgpt que comprenda, tome nota y rastree todos los mensajes y diga que le informará cuando termine de compartir y luego haga sus preguntas. -Pídale que responda que entiende. comparta el código o los archivos con ChatGPT y proporcione a chatgpt tantos detalles sobre qué archivos está compartiendo y qué partes.
Aviso perfecto:
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.>
IDE/Herramienta | Nombre de extensión/complemento | Descripción |
---|---|---|
Código de estudio visual | Extensión ChatGPT para VSCode | Le permite utilizar la API ChatGPT no oficial para generar respuestas en lenguaje natural desde ChatGPT de OpenAI dentro del editor. |
Código de estudio visual | Genio de la IA | Solicite los modelos GPT-4, GPT-3.5, GPT-3 y Codex de OpenAI dentro de Visual Studio Code. |
Código de estudio visual | pestaña nueve | Aunque no es ChatGPT, TabNine es una poderosa herramienta de finalización de código impulsada por IA. |
Cuaderno Jupyter | Extensión Chat-GPT Jupyter | Integra ChatGPT en Jupyter Notebook para generación de código y sugerencias. |
IDEA IntelliJ | Complemento ChatGPT IntelliJ | Integra ChatGPT en IntelliJ IDEA para generación de código, autocompletado y asistencia. |
Espero que esta guía haya sido útil para mejorar tu experiencia con ChatGPT para la generación de código. A medida que ChatGPT evolucione, también lo harán las mejores prácticas para su uso. Si tiene alguna sugerencia, contribución que desea agregar o comentarios, no dude en enviar una solicitud de extracción al repositorio GitHub de esta guía. ¡Feliz codificación e indicaciones! <3