이것은 프로그래밍을 위해 ChatGPT 프롬프트를 최적화하는 방법에 대한 실용적인 가이드입니다. 여기서는 개발자가 chatgpt 프롬프트를 최적화하여 일반적인 문제를 방지하고 코드 생성 경험을 향상시키는 데 도움이 되는 팁과 기술을 제공하는 것을 목표로 했습니다. 이 가이드는 특히 chat.openai.com 구독을 사용하는 사람들을 위한 것으로, gpt4에 대해 3시간당 25개의 메시지를 최적화할 수 있습니다.
PromptMaster 저장소에 오신 것을 환영합니다! 이 저장소의 목적은 개발자에게 프로그래밍 작업을 위한 ChatGPT 프롬프트 최적화에 대한 실용적인 지침을 제공하는 것입니다. 우리는 ChatGPT를 사용하여 일반적인 함정을 피하고 코드 생성 경험을 개선하는 데 도움이 되는 팁, 기술 및 모범 사례를 공유하는 것을 목표로 합니다. 이 저장소에서는 널리 사용되는 개발 도구와 함께 ChatGPT를 사용하고 AI 모델을 최신 상태로 유지하는 방법도 다룹니다. 우리는 이 리소스를 최대한 포괄적이고 유용하게 만들기 위해 개발자 커뮤니티의 협력과 기여를 장려합니다.
ChatGPT에서 최상의 결과를 얻으려면 프롬프트 형식을 올바르게 지정하는 것이 중요합니다. 프롬프트가 명확하고 간결하며 구체적인지 확인하세요. 지침을 별도의 줄에 넣거나 글머리 기호를 사용하여 명확성을 높이는 등의 서식 지정 기술을 사용할 수도 있습니다.
ChatGPT는 방대한 지식 기반을 갖춘 강력한 AI 모델입니다. 그 기능을 유리하게 활용하십시오. 컨텍스트를 제공하거나 모델에 특정 프로그래밍 언어, 라이브러리 또는 프레임워크에 대한 코드를 생성하도록 요청할 수 있습니다. 또한 실제 코드를 생성하기 전에 모델에 단계별로 생각하거나 의사 코드를 생성하도록 요청할 수 있습니다.
모든 AI 모델과 마찬가지로 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 >
완벽한 프롬프트 사용 전과 후의 예:
전에:
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 >
완벽한 프롬프트 사용 전과 후의 예:
전에:
ChatGPT, I want to create a Telegram bot to track ERC20 tokens.
ChatGPT 응답(이전):
ERC20 토큰을 추적하기 위한 Telegram 봇을 생성하려면 다음을 수행해야 합니다.
BotFather와 대화하여 Telegram에 새 봇을 설정하세요. 봇 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에 프로젝트에 이미 있는 중복되거나 불필요한 가져오기가 포함되어 생성된 코드가 복잡해지고 반복될 수 있습니다. 이를 방지하려면 생성된 코드에서 import 문을 생략하고 필요한 특정 기능에 집중하도록 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에 도움을 요청할 때 특정 부분을 더 쉽게 참조할 수 있습니다.
- 주석을 사용하여 코드를 섹션으로 나누고 각 부분에 설명 식별자(예: #Part 1, #Part 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년 9월까지의 정보로 제한되어 있습니다. 즉, 그 이후에 발생한 라이브러리의 업데이트나 변경 사항을 인식하지 못할 수도 있습니다. 새 라이브러리나 업데이트된 버전에 대한 도움을 구할 때는 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?
문제: 때때로 chatgpt가 작동하지 않는 코드 답변을 제공하고 멈춰서 고정되는 경우가 있습니다. 이 경우 chatgpt에 문제 해결을 위한 대체 솔루션이나 접근 방식 목록을 요청하여 특정 요구 사항과 제약 조건에 따라 최상의 옵션을 선택할 수 있습니다.
완벽한 프롬프트:
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에 1개 이상의 메시지를 통해 전송될 여러 파일 또는 긴 파일을 공유할 것이라고 알립니다. -chatgpt에게 모든 메시지를 이해하고, 메모하고, 추적하도록 요청하고, 공유가 끝나면 알려준다고 말한 다음 질문하세요. - 이해했다고 답장을 달라고 요청하세요. 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/도구 | 확장자/플러그인 이름 | 설명 |
---|---|---|
비주얼 스튜디오 코드 | VSCode용 ChatGPT 확장 | 비공식 ChatGPT API를 사용하여 편집기 내 OpenAI의 ChatGPT에서 자연어 응답을 생성할 수 있습니다. |
비주얼 스튜디오 코드 | AI 지니 | Visual Studio Code 내에서 OpenAI의 GPT-4, GPT-3.5, GPT-3 및 Codex 모델을 프롬프트합니다. |
비주얼 스튜디오 코드 | 탭나인 | ChatGPT는 아니지만 TabNine은 강력한 AI 기반 코드 완성 도구입니다. |
주피터 노트북 | Chat-GPT Jupyter 확장 | 코드 생성 및 제안을 위해 ChatGPT를 Jupyter Notebook에 통합합니다. |
IntelliJ 아이디어 | ChatGPT IntelliJ 플러그인 | 코드 생성, 자동 완성 및 지원을 위해 ChatGPT를 IntelliJ IDEA에 통합합니다. |
이 가이드가 코드 생성을 위한 ChatGPT 경험을 개선하는 데 도움이 되었기를 바랍니다. ChatGPT가 발전함에 따라 이를 사용하는 모범 사례도 발전할 것입니다. 제안 사항, 추가하고 싶은 기여 또는 피드백이 있는 경우 언제든지 이 가이드의 GitHub 저장소에 끌어오기 요청을 보내주세요. 즐거운 코딩과 메시지를 보내세요! <3