Это практическое руководство по оптимизации подсказок ChatGPT для программирования. Здесь я стремился предоставить советы и методы, которые помогут разработчикам оптимизировать запросы чата, чтобы избежать распространенных проблем и улучшить процесс создания кода. Это руководство специально предназначено для тех, кто использует подписку наchat.openai.com, что позволяет им оптимизировать свои 25 сообщений в течение 3 часов для gpt4.
Добро пожаловать в репозиторий PromptMaster ! Цель этого репозитория — предоставить разработчикам практические рекомендации по оптимизации подсказок ChatGPT для задач программирования. Мы стремимся поделиться советами, методами и передовым опытом, которые помогут вам избежать распространенных ошибок и улучшить процесс создания кода с помощью ChatGPT. В этом репозитории также будет описано использование ChatGPT с популярными инструментами разработки и актуальность модели искусственного интеллекта. Мы поощряем сотрудничество и вклад сообщества разработчиков, чтобы сделать этот ресурс максимально полным и полезным.
Чтобы получить наилучшие результаты от ChatGPT, важно правильно форматировать запросы. Убедитесь, что ваши подсказки ясны, кратки и конкретны. Вы также можете использовать методы форматирования, такие как размещение инструкций на отдельной строке или использование маркеров для повышения ясности.
ChatGPT — это мощная модель искусственного интеллекта с обширной базой знаний. Убедитесь, что вы используете его возможности в своих интересах. Вы можете предоставить контекст или попросить модель сгенерировать код для определенного языка программирования, библиотеки или платформы. Кроме того, вы можете попросить модель подумать шаг за шагом или сгенерировать псевдокод перед созданием фактического кода.
Имейте в виду, что ChatGPT, как и все модели искусственного интеллекта, не идеален и может генерировать код с потенциальными ошибками или ошибками. Чтобы избежать этих проблем, вы можете:
Проблема: сгенерированный код слишком длинный и обрезается, а при запросе ChatGPT продолжить с того места, где он остановился, вместо продолжения кода он начинает заново. Чтобы предотвратить это, вы можете:
Идеальная подсказка:
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.
Проблема. Иногда ChatGPT отвечает кодом в виде обычного текста, а не внутри блока кода. Это может привести к ошибкам отступов и проблемам с синтаксисом при копировании и вставке кода в среду разработки. Чтобы избежать этого, вы можете использовать следующую подсказку для явного запроса кода в блоке кода.
Идеальная подсказка:
ChatGPT, please provide a solution to the problem in a properly formatted Python code block. The problem is:
< Insert problem description here >
Явно запрашивая блок кода, вы с большей вероятностью получите сгенерированный код в правильном формате, что снижает вероятность возникновения отступов или синтаксических ошибок при копировании кода.
Проблема: поскольку ChatGPT имеет дату окончания сбора знаний в 2021 году, у него может не быть доступа к обновленным библиотекам или платформам или изменениям, внесенным в них. Поэтому он может столкнуться с незнакомыми библиотеками и платформами.
Предлагаемое решение. Чтобы лучше помочь ChatGPT понять и адаптироваться к незнакомым библиотекам и платформам, вы можете:
-Укажите название библиотеки или фреймворка. -Опишите назначение библиотеки или фреймворка. -Приведите пример использования библиотеки или фреймворка. -Упомяните любые конкретные функции или методы, которые вам нужно использовать. -Включите любую последнюю соответствующую документацию или ресурсы.
Идеальная подсказка:
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 >
Предоставляя контекст и соответствующую информацию, вы можете повысить вероятность того, что ChatGPT создаст полезное решение, учитывающее обновленную библиотеку или платформу.
Пример запроса:
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.
Проблема. Чтобы оптимизировать выходные данные ChatGPT, может быть полезно указать конкретные ограничения или требования для сгенерированного кода. Например, если вас беспокоит скорость или использование памяти, вы можете включить эту информацию в приглашение, чтобы помочь ChatGPT оптимизировать вывод.
Чтобы оптимизировать выходные данные ChatGPT, укажите конкретные ограничения или требования для сгенерированного кода. Сюда может входить информация о языке программирования, типах данных, скорости или использовании памяти, порядке сортировки или любых других соответствующих ограничениях.
Идеальная подсказка:
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?
Пример запроса:
"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?"
Проблема: ChatGPT — ценный помощник, но не идеальный разработчик. Когда вы просите ChatGPT сгенерировать код или помочь с вашим кодом, важно обеспечить достаточную обработку ошибок и защитное программирование, что упрощает обнаружение и устранение любых ошибок. Чтобы сгенерировать код, включающий методы защитного программирования и обработку ошибок, вы можете предоставить в приглашении контекст и информацию о потенциальных ошибках или крайних случаях, которые необходимо обработать. Чтобы упростить выявление ошибок во время последующей отладки, вы можете попросить ChatGPT добавить операторы печати, которые выводят любые возникающие ошибки, а также конструкции защитного программирования, такие как проверка ввода, блоки try-Exception и ведение журнала.
Идеальная подсказка:
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 >
Пример до и после использования Perfect Prompt:
До:
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)
После использования идеальной подсказки:
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.
Сгенерированный код:
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.")
Используя идеальную подсказку, ChatGPT генерирует код, включающий обработку ошибок и защитное программирование, что упрощает отладку и обслуживание.
Проблема: при работе с ChatGPT в проекте важно сообщить ему, что вы уже установили требования и настроили соответствующие API. Это помогает ChatGPT избежать объяснения в ответе того, что вы уже сделали, и адаптировать вывод к вашим конкретным потребностям. Чтобы оптимизировать вывод ChatGPT, вы можете предоставить в приглашении словарь проекта и соответствующие API. Это может помочь ChatGPT понять контекст и цель сгенерированного кода.
Идеальная подсказка:
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 >
Пример до и после использования Perfect Prompt:
До:
ChatGPT, I want to create a Telegram bot to track ERC20 tokens.
Ответ ChatGPT (до):
Чтобы создать Telegram-бот для отслеживания токенов ERC20, вам необходимо:
Настройте нового бота в Telegram, поговорив с BotFather. Получите токен API вашего бота. Установите библиотеку python-telegram-bot. Настройте бота для связи с блокчейном Ethereum....
Используя идеальную подсказку:
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.
Сгенерированный код (После):
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()
Предоставляя словарь проекта и необходимую информацию, ChatGPT генерирует код, адаптированный к вашим конкретным потребностям, с учетом существующих настроек.
Проблема. Иногда при создании кода ChatGPT может включать избыточный или ненужный импорт, который уже есть в вашем проекте, что приводит к беспорядку и повторению в сгенерированном коде. Чтобы предотвратить это, вы можете указать ChatGPT пропускать операторы импорта в сгенерированном коде и сосредоточиться на конкретных функциях, которые вам нужны.
Идеальная подсказка:
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 >
Проблема: обращаясь к ChatGPT за помощью с вашим кодом, иногда вы можете захотеть получить предлагаемые изменения или улучшения только для определенных частей вашего кода, а не переписывать весь код. Чтобы добиться этого, вы можете:
-Укажите точные части кода, которые нуждаются в улучшении или модификации. -Попросите ChatGPT предоставить подробное описание изменений вместо того, чтобы переписывать весь код.
Идеальная подсказка:
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.
Проблема: обращаясь к ChatGPT за помощью с вашим кодом, вы можете захотеть, чтобы сгенерированный код включал только отредактированные или улучшенные разделы, сохраняя при этом исходные заголовки и функции. Кроме того, вы можете захотеть, чтобы ChatGPT показывал расположение отредактированных разделов в вашем коде (после какой строки и перед какой строкой). Для этого вы можете предоставить ChatGPT четкие инструкции о конкретных разделах, которые необходимо редактировать, и о желаемом размещении этих изменений.
Идеальная подсказка:
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.
Пример (до):
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
Используя идеальную подсказку:
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.
Сгенерированный код (После):
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()
Используя идеальную подсказку, ChatGPT генерирует только отредактированные разделы кода и предоставляет четкие инструкции о том, где разместить изменения в существующем коде.
Проблема: при работе с длинным и сложным кодом может быть сложно быстро найти определенные разделы и обратиться к ним. Добавление комментариев и разделение кода на разделы могут помочь улучшить навигацию и упростить обращение к определенным частям при обращении за помощью в ChatGPT.
- Используйте комментарии, чтобы разделить код на разделы, помечая каждую часть описательным идентификатором (например, #Часть 1, #Часть 2 и т. д.). - Обращаясь за помощью в ChatGPT, вы можете напрямую ссылаться на конкретную часть по ее метке. что позволяет вам и ChatGPT сосредоточиться на соответствующем разделе.
Идеальная подсказка:
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.
Проблема: знания ChatGPT ограничены информацией до сентября 2021 года, а это означает, что он может не знать об обновлениях или изменениях в библиотеках, произошедших с тех пор. При обращении за помощью по новой библиотеке или обновленной версии важно сообщить ChatGPT о ситуации и предоставить соответствующие фрагменты кода и документации.
-Четко укажите, что вы используете библиотеку или конкретную версию, которая была обновлена за пределами ограничений ChatGPT. -Поделитесь своим кодом и включите соответствующие фрагменты документации в обновленные ресурсы, чтобы помочь ChatGPT понять контекст и предоставить более точную помощь.
Идеальная подсказка:
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)>
Проблема: ChatGPT может быть не знаком с определяемыми пользователем функциями и методами, что затрудняет понимание контекста при обсуждении кода.
-Предоставьте подробную информацию о пользовательских функциях или методах, таких как их назначение, входные и выходные данные, а также любые соответствующие детали реализации. Это поможет ChatGPT предоставлять более качественную помощь и рекомендации.
Идеальная подсказка:
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?
Проблема Пользователям может потребоваться помощь в оптимизации их кода или упрощении его.
-Спросите ChatGPT о том, как повысить эффективность или краткость вашего кода, а также сообщите о любых конкретных проблемах или ограничениях, которые у вас есть.
Идеальная подсказка:
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?
Проблема: ChatGPT может не иметь доступа к вашей конкретной базе данных или структуре набора данных, что может помешать ему предоставлять соответствующие рекомендации.
-Поделитесь фрагментом своей базы данных или структуры набора данных, включая информацию о таблицах, столбцах, типах данных и связях между таблицами или точками данных, чтобы помочь ChatGPT лучше понять ваш запрос и предоставить соответствующие рекомендации. -Используйте общий пример подсказки в качестве отправной точки и адаптируйте его к своей конкретной ситуации.
Идеальная подсказка:
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
Пример:
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?
Проблема: иногда чатгпт выдает код ответа, который не работает, и застревает на нем. в этом случае запросите в чатгпт альтернативное решение или список подходов к решению проблемы, что позволит вам выбрать лучший вариант с учетом ваших конкретных потребностей и ограничений.
Идеальная подсказка:
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 >
Проблема. Пользователям может потребоваться помощь с длинными фрагментами кода или несколькими файлами, которыми может быть сложно управлять в диалоговом формате.
-Сообщите чату, что вы будете делиться несколькими файлами или длинными файлами, которые будут отправлены в более чем одном сообщении. -Попросите чатгпт понимать, записывать и отслеживать все сообщения и сообщить, что вы сообщите ему, когда закончите делиться, а затем задайте свои вопросы. -Попросите его ответить, что он понимает. поделитесь кодом или файлами с ChatGPT и предоставьте в Chatgpt как можно больше подробностей о том, какими файлами вы делитесь и какими частями.
Идеальная подсказка:
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/инструмент | Имя расширения/плагина | Описание |
---|---|---|
Код Visual Studio | Расширение ChatGPT для VSCode | Позволяет использовать неофициальный API ChatGPT для генерации ответов на естественном языке из ChatGPT OpenAI в редакторе. |
Код Visual Studio | ИИ Джинн | Подскажите модели OpenAI GPT-4, GPT-3.5, GPT-3 и Codex в Visual Studio Code. |
Код Visual Studio | TabNine | TabNine — это не ChatGPT, но мощный инструмент завершения кода на базе искусственного интеллекта. |
Блокнот Юпитера | Расширение Jupyter Chat-GPT | Интегрирует ChatGPT в Jupyter Notebook для генерации кода и предложений. |
IntelliJ ИДЕЯ | Плагин ChatGPT IntelliJ | Интегрирует ChatGPT в IntelliJ IDEA для генерации кода, автозаполнения и помощи. |
Я надеюсь, что это руководство помогло вам улучшить ваш опыт использования ChatGPT для генерации кода. По мере развития ChatGPT будут развиваться и лучшие практики его использования. Если у вас есть какие-либо предложения, вклад, который вы хотите добавить, или отзыв, отправьте запрос на включение в репозиторий GitHub этого руководства. Приятного кодирования и подсказок! <3