Este é um guia prático sobre como otimizar os prompts do ChatGPT para programação. Aqui, meu objetivo foi fornecer dicas e técnicas para ajudar os desenvolvedores a otimizar seus prompts de chatgpt para evitar problemas comuns e melhorar sua experiência de geração de código. Este guia é especialmente para quem usa a assinatura chat.openai.com, permitindo otimizar suas 25 mensagens a cada 3 horas para gpt4.
Bem-vindo ao repositório PromptMaster ! O objetivo deste repositório é fornecer aos desenvolvedores orientações práticas sobre como otimizar os prompts do ChatGPT para tarefas de programação. Nosso objetivo é compartilhar dicas, técnicas e práticas recomendadas para ajudá-lo a evitar armadilhas comuns e melhorar sua experiência de geração de código com ChatGPT. Este repositório também abordará o uso do ChatGPT com ferramentas de desenvolvimento populares e a atualização do modelo de IA. Encorajamos a colaboração e contribuições da comunidade de desenvolvedores para tornar este recurso o mais abrangente e útil possível.
Para obter os melhores resultados do ChatGPT, é essencial formatar seus prompts corretamente. Certifique-se de que suas solicitações sejam claras, concisas e específicas. Você também pode usar técnicas de formatação, como colocar instruções em uma linha separada ou usar marcadores para melhorar a clareza.
ChatGPT é um modelo de IA poderoso com uma vasta base de conhecimento. Certifique-se de aproveitar seus recursos a seu favor. Você pode fornecer contexto ou pedir ao modelo para gerar código para uma linguagem de programação, biblioteca ou estrutura específica. Além disso, você pode pedir ao modelo que pense passo a passo ou gere pseudocódigo antes de gerar o código real.
Esteja ciente de que o ChatGPT, como todos os modelos de IA, não é perfeito e pode gerar código com potenciais armadilhas ou preconceitos. Para evitar esses problemas, você pode:
Problema: O código gerado é muito longo e fica cortado, e ao pedir ao ChatGPT para continuar de onde parou, ele reinicia em vez de continuar o código. Para evitar isso, você pode:
Alerta perfeito:
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: Às vezes, o ChatGPT responde com código como texto simples em vez de dentro de um bloco de código. Isto pode levar a erros de indentação e problemas de sintaxe quando o código é copiado e colado em um ambiente de desenvolvimento. Para evitar isso, você pode usar o prompt a seguir para solicitar explicitamente o código dentro de um bloco de código.
Alerta perfeito:
ChatGPT, please provide a solution to the problem in a properly formatted Python code block. The problem is:
< Insert problem description here >
Ao solicitar explicitamente um bloco de código, você terá mais chances de receber o código gerado no formato correto, reduzindo as chances de encontrar erros de indentação ou sintaxe ao copiar o código.
Problema: Como o ChatGPT tem data limite de conhecimento em 2021, ele pode não ter acesso a bibliotecas ou estruturas atualizadas ou alterações feitas nelas. Portanto, pode encontrar bibliotecas e estruturas desconhecidas.
Solução proposta: Para ajudar melhor o ChatGPT a compreender e se adaptar a bibliotecas e estruturas desconhecidas, você pode:
-Forneça o nome da biblioteca ou estrutura. -Descreva o propósito da biblioteca ou estrutura. -Dê um exemplo de como a biblioteca ou estrutura é usada. -Mencione quaisquer funções ou métodos específicos que você precisa usar. -Inclua qualquer documentação ou recursos relevantes mais recentes.
Alerta perfeito:
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 >
Ao fornecer contexto e informações relevantes, você pode aumentar as chances de o ChatGPT gerar uma solução útil que considere a biblioteca ou framework atualizado.
Exemplo de solicitação:
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 otimizar a saída do ChatGPT, pode ser útil fornecer restrições ou requisitos específicos para o código gerado. Por exemplo, se a velocidade ou o uso de memória forem uma preocupação, você pode incluir essas informações em seu prompt para ajudar o ChatGPT a otimizar sua saída.
Para otimizar a saída do ChatGPT, forneça restrições ou requisitos específicos para o código gerado. Isto pode incluir informações sobre a linguagem de programação, tipos de dados, velocidade ou uso de memória, ordem de classificação ou quaisquer outras restrições relevantes.
Alerta perfeito:
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?
Exemplo de solicitação:
"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 é um companheiro valioso, mas não o desenvolvedor perfeito. Ao solicitar ao ChatGPT a geração de código ou ajuda com seu código, é essencial garantir que haja amplo tratamento de erros e programação defensiva, tornando mais fácil ver e solucionar quaisquer erros. Para gerar código que inclua técnicas de programação defensivas e tratamento de erros, você pode fornecer contexto e informações sobre os possíveis erros ou casos extremos que precisam ser tratados em seu prompt. Para facilitar a identificação de erros durante a depuração posterior, você pode pedir ao ChatGPT para adicionar instruções de impressão que geram quaisquer erros que ocorram, junto com construções de programação defensivas, como validação de entrada, blocos try-except e registro.
Alerta perfeito:
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 >
Exemplo antes e depois de usar o prompt perfeito:
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)
Depois de usar o prompt perfeito:
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 gerado:
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.")
Ao usar o prompt perfeito, o ChatGPT gera código que inclui tratamento de erros e programação defensiva, facilitando a depuração e a manutenção.
Problema: Ao trabalhar com ChatGPT em um projeto, é essencial informar que você já instalou os requisitos e tem as APIs relevantes configuradas. Isso ajuda o ChatGPT a evitar explicar em sua resposta o que você já fez e a adaptar o resultado às suas necessidades específicas. Para otimizar a saída do ChatGPT, você pode fornecer um dicionário do projeto e APIs relevantes em seu prompt. Isso pode ajudar o ChatGPT a entender o contexto e a finalidade do código que você precisa gerar.
Alerta perfeito:
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 >
Exemplo antes e depois de usar o prompt perfeito:
Antes:
ChatGPT, I want to create a Telegram bot to track ERC20 tokens.
Resposta ChatGPT (antes):
Para criar um bot do Telegram para rastrear tokens ERC20, você precisa:
Configure um novo bot no Telegram conversando com o BotFather. Obtenha seu token de API de bot. Instale a biblioteca python-telegram-bot. Configure o bot para se comunicar com o blockchain Ethereum....
Usando o prompt perfeito:
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 gerado (depois):
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()
Ao fornecer o dicionário do projeto e informações de pré-requisitos, o ChatGPT gera código adaptado às suas necessidades específicas, levando em consideração a configuração existente.
Problema: Às vezes, ao gerar código, o ChatGPT pode incluir importações redundantes ou desnecessárias que você já possui em seu projeto, causando confusão e repetição no código gerado. Para evitar isso, você pode instruir o ChatGPT a omitir instruções de importação no código gerado e focar na funcionalidade específica necessária.
Alerta perfeito:
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: Ao pedir ajuda ao ChatGPT com seu código, às vezes você pode querer apenas receber sugestões de alterações ou melhorias para partes específicas de seu código, em vez de reescrever todo o código. Para conseguir isso, você pode:
-Especifique as partes exatas do código que precisam de melhorias ou modificações. -Peça ao ChatGPT para fornecer uma descrição de alto nível das alterações em vez de reescrever o código inteiro.
Alerta perfeito:
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: Ao pedir ajuda ao ChatGPT com seu código, você pode querer que o código gerado inclua apenas as seções editadas ou melhoradas, mantendo intactos os cabeçalhos e funções originais. Além disso, você pode querer que o ChatGPT mostre o posicionamento das seções editadas em seu código (depois de qual linha e antes de qual linha). Para conseguir isso, você pode fornecer instruções claras ao ChatGPT sobre as seções específicas que precisam de edição e o posicionamento desejado dessas edições.
Alerta perfeito:
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.
Exemplo (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 o prompt perfeito:
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 gerado (depois):
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()
Ao usar o prompt perfeito, o ChatGPT gera apenas as seções editadas do código e fornece instruções claras sobre onde colocar as alterações no código existente.
Problema: Ao trabalhar com código longo e complexo, pode ser difícil localizar e consultar rapidamente seções específicas. Adicionar comentários e dividir o código em seções pode ajudar a melhorar a navegação e facilitar a referência a determinadas partes ao solicitar ajuda ao ChatGPT.
-Use comentários para dividir seu código em seções, rotulando cada parte com um identificador descritivo (por exemplo, #Parte 1, #Parte 2, etc.) -Ao pedir ajuda ao ChatGPT, você pode consultar diretamente a parte específica por seu rótulo, tornando mais fácil para você e o ChatGPT se concentrarem na seção relevante.
Alerta perfeito:
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: O conhecimento do ChatGPT está limitado às informações até setembro de 2021, o que significa que ele pode não estar ciente das atualizações ou alterações nas bibliotecas ocorridas desde então. Ao buscar ajuda com uma nova biblioteca ou versão atualizada, é importante informar o ChatGPT sobre a situação e fornecer códigos relevantes e trechos de documentação.
-Declare claramente que você está usando uma biblioteca ou versão específica que foi atualizada além do limite de conhecimento do ChatGPT. -Compartilhe seu código e inclua trechos de documentação pertinentes em recursos atualizados para ajudar o ChatGPT a entender o contexto e fornecer assistência mais precisa.
Alerta perfeito:
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: ChatGPT pode não estar familiarizado com funções ou métodos definidos pelo usuário, dificultando a compreensão do contexto ao discutir código.
-Forneça detalhes sobre as funções ou métodos personalizados, como finalidade, entradas, saídas e quaisquer detalhes de implementação relevantes. Isso ajudará o ChatGPT a fornecer melhor assistência e recomendações.
Alerta perfeito:
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 Os usuários podem querer ajuda para otimizar seu código ou torná-lo mais conciso.
-Peça sugestões ao ChatGPT sobre como melhorar a eficiência ou concisão do seu código e forneça quaisquer preocupações ou restrições específicas que você tenha.
Alerta perfeito:
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: ChatGPT pode não ter acesso ao seu banco de dados específico ou estrutura de conjunto de dados, o que pode prejudicar sua capacidade de fornecer orientações relevantes.
-Compartilhe um trecho de seu banco de dados ou estrutura de conjunto de dados, incluindo informações sobre tabelas, colunas, tipos de dados e relacionamentos entre tabelas ou pontos de dados, para ajudar o ChatGPT a entender melhor sua consulta e fornecer orientação apropriada. -Use o exemplo genérico do prompt como ponto de partida e adapte-o à sua situação específica.
Alerta perfeito:
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
Exemplo:
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: às vezes o chatgpt fornece uma resposta de código que não funciona e fica preso e fixado nele. neste caso peça ao chatgpt uma solução alternativa ou lista de abordagens para resolver o problema, permitindo-lhe escolher a melhor opção com base nas suas necessidades e restrições específicas.
Alerta perfeito:
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: os usuários podem precisar de assistência com longos trechos de código ou vários arquivos, o que pode ser difícil de gerenciar em formato de conversação.
-Informe ao chatgpt que você compartilhará vários arquivos ou arquivos longos que serão enviados em mais de uma mensagem. -Peça ao chatgpt para entender, anotar e rastrear todas as mensagens e informar que você informará quando terminar de compartilhar e depois faça suas perguntas. -Peça para responder que entende. compartilhe o código ou arquivos com ChatGPT e forneça ao chatgpt o máximo de detalhes sobre quais arquivos você está compartilhando e quais partes.
Alerta perfeito:
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/ferramenta | Nome da extensão/plugin | Descrição |
---|---|---|
Código do Visual Studio | Extensão ChatGPT para VSCode | Permite que você use a API ChatGPT não oficial para gerar respostas em linguagem natural do ChatGPT da OpenAI dentro do editor. |
Código do Visual Studio | Gênio da IA | Solicita os modelos GPT-4, GPT-3.5, GPT-3 e Codex da OpenAI no Visual Studio Code. |
Código do Visual Studio | TabNine | Embora não seja o ChatGPT, o TabNine é uma poderosa ferramenta de conclusão de código com tecnologia de IA. |
Caderno Jupyter | Extensão Chat-GPT Jupyter | Integra ChatGPT ao Jupyter Notebook para geração de código e sugestões. |
IDEIA do IntelliJ | Plug-in ChatGPT IntelliJ | Integra ChatGPT ao IntelliJ IDEA para geração de código, preenchimento automático e assistência. |
Espero que este guia tenha sido útil para melhorar sua experiência com ChatGPT para geração de código. À medida que o ChatGPT evolui, também evoluem as melhores práticas para usá-lo. Se você tiver alguma sugestão, contribuição que deseja adicionar ou feedback, sinta-se à vontade para enviar uma solicitação pull para o repositório GitHub deste guia. Boa codificação e sugestões! <3