소개
효과적인 코드 생성은 프롬프트 엔지니어링을 마스터하는 데 달려 있습니다. 잘 만들어진 프롬프트는 LLM(대형 언어 모델)을 안내하여 애플리케이션 코드를 생성, 개선 및 최적화합니다. 이 가이드에서는 루트, 정제 기반, 분해 기반, 추론 기반 및 프라이밍 기법으로 분류된 15가지 입증된 프롬프트 기법을 살펴봅니다. 간단한 Flask 웹 애플리케이션을 사용하여 기본 "Hello World" 앱부터 시작하여 점진적으로 개선하는 방법을 각각 설명하겠습니다.
연구 노트: 우리는 새로운 프롬프트 기법에 대해 aixrv.org에 문의했습니다. 이 글을 쓰는 시점에는 여기에 제시된 것 이상의 새로운 접근 방식이 확인되지 않았습니다. 하지만 프롬프트엔지니어링은 빠르게 발전하는 분야이므로 지속적인 모니터링을 권장합니다.
1. 뿌리기술
이러한 기본 프롬프트 방법은 간단한 코드 출력에 대한 간단한 경로를 제공합니다.
1.1. 직접 지시 메시지
개요: 추가 세부사항 없이 간결한 명령입니다.
프롬프트 예: "'Hello World!'를 표시하는 최소 Python Flask 앱을 만듭니다. 루트 URL에 있습니다."
생성된 코드(개념): (원래 예와 유사한 코드 조각이 여기에 표시됩니다.)
작동 이유: 소규모 작업에 적합합니다. 후속 개선을 위한 기반을 제공합니다.
1.2. 쿼리 기반 프롬프트
개요: 설명 응답 및/또는 코드를 유도하기 위한 질문 제시
프롬프트 예: "'Hello World!'를 반환하는 기본 Flask 앱을 어떻게 빌드합니까? 홈페이지에?"
생성된 응답(개념): 모델은 각 단계에 대한 코드및설명
을 제공할 수 있습니다.작동 이유: LLM의 더욱 유익한 답변을 장려합니다.
1.3. 예시 기반 프롬프트
개요: 원하는 스타일이나 형식의 샘플을 제공합니다.
프롬프트 예: "다음은 간단한 Node.js Express 'Hello World' 서버입니다: [Node.js 코드]. 유사한 Flask 'Hello World' 서버를 생성합니다."
작동 이유: 모델은 구조와 스타일을 반영하여 일관성을 보장합니다. 직접 지시하는 것보다 더 정확합니다.
2. 정제 기반 기술
이러한 기술은 기존 코드를 반복적으로 개선하는 데 중점을 둡니다.
2.1. 반복적 개선 유도
개요: 초기 솔루션을 점진적으로 개선합니다.
프롬프트 순서:
/hello/<name>
엔드포인트를 포함하도록 이 앱을 수정하세요."세련된 코드 조각(개념): (추가된 끝점을 보여주는 코드 조각이 여기에 나타납니다.)
작동 이유: 기존 코드를 기반으로 구축되어 점진적인 개선이 가능합니다.
2.2. 내선 메시지
개요: 기존 코드에 새로운 기능 추가
프롬프트 예: "샘플 사용자 목록과 함께 JSON 응답을 반환하는 Flask 앱에 엔드포인트를 추가합니다."
세련된 코드 조각(개념): (새 엔드포인트에 대한 코드 조각이 여기에 표시됩니다.)
작동 이유: 특정 기능을 타겟팅하여 모델의 관심을 집중시킬 수 있습니다.
2.3. 스타일/서식 변환
개요: 코드 스타일 수정(예: PEP 8 준수)
프롬프트 예: "PEP 8 명명 규칙을 준수하고 줄 길이를 79자로 제한하도록 Flask 앱을 리팩터링합니다."
작동 이유: 선호하는 스타일을 체계적으로 적용합니다.
3. 분해 기반 기술
이러한 기술은 대규모 작업을 더 작고 관리하기 쉬운 단계로 세분화합니다.
3.1. 함수별 분해
개요: 작업을 하위 기능 또는 모듈로 분리
프롬프트 예:
init_db()
."insert_user(name)
을 생성하세요."get_all_users()
을 생성하세요."결과(개념):(세 가지 기능에 대한 코드 조각이 여기에 표시됨)
작동 이유: 대규모 작업을 유지 관리 가능한 모듈식 구성 요소로 구성합니다.
3.2. 청크 기반 프롬프트
개요: 부분 코드 제공 및 누락된 부분 완성을 모델에 요청
프롬프트 예: "사용자를 추가하고 검색하는 경로를 추가하여 아래 Flask 앱을 완성하세요: [부분 코드 조각]"
작동 이유: 특정 격차에 모델의 초점을 맞춰 코드 응집력을 보장합니다.
3.3. 단계별 지침
개요: 하위 작업 또는 논리적 단계를 열거합니다.
프롬프트 예:
insert_user()
을 사용하여 사용자를 추가하는 경로를 만듭니다."get_all_users()
을 사용하여 사용자를 나열하는 경로를 만듭니다."작동 이유: 코드 생성 프로세스를 투명하게 만들고 올바른 작업 순서를 보장합니다.
4. 추론 기반 기법
이러한 프롬프트는 모델이 코드를 제공하기 전에 추론 프로세스를 명확하게 설명하도록 권장합니다.
4.1. 생각의 사슬 유도
개요: 추론 과정에 대한 단계별 설명을 요청합니다.
프롬프트 예: "Flask 앱에 인증을 추가하는 방법을 단계별로 설명한 후 코드를 제공하세요."
작동 이유: 솔루션에 대한 명확한 경로를 장려하여 더욱 일관된 코드를 생성합니다.
4.2. 제로샷 사고연쇄
개요: 예가 없는 문제를 통해 모델에게 추론을 요청합니다.
프롬프트 예: "Flask용 비밀번호 해싱 라이브러리 선택을 설명하고 사용자 등록을 위해 이를 통합하는 코드를 표시합니다."
작동 이유: 라이브러리 선택 및 사용에 대한 철저한 접근 방식을 장려합니다.
4.3. 생각의 연쇄
개요: 새로운 문제를 제시하기 전에 추론 예시를 제공합니다.
프롬프트 예: "[로그인 시스템에 대한 단계별 추론의 예]. 이 접근 방식을 사용하여 새 사용자 자격 증명을 안전하게 저장하는 /register
경로를 추가합니다."
작동 이유: 새로운 문제에 일관된 논리적 적용을 위한 프레임워크를 제공합니다.
5. 프라이밍 기법
이러한 기술은 추가된 컨텍스트를 사용하여 코드 스타일과 도메인 지식에 영향을 미칩니다.
5.1. 페르소나 기반 프롬프트
개요: 모델에 특정 역할(예: 보안 전문가)을 채택하도록 지시합니다.
프롬프트 예: "귀하는 보안 전문 Python 백엔드 개발자입니다. 안전한 Flask 사용자 등록 경로를 생성하세요."
작동 이유: 보안 모범 사례를 포함하여 페르소나의 전문 지식에 맞게 솔루션을 조정합니다.
5.2. 뼈대(템플릿) 프라이밍
개요: 모델이 채울 자리 표시자가 포함된 템플릿 제공
프롬프트 예: "사용자 로그인 양식을 구현하려면 이 Flask 앱 템플릿을 완성하세요: [자리 표시자가 있는 Flask 템플릿]"
작동 이유: 모델을 특정 프레임워크로 제한합니다.
5.3. 레퍼런스 집중 프라이밍
개요: 활용할 모델에 대한 문서 또는 데이터 스키마 제공
프롬프트 예: "이 SQLAlchemy 문서[링크]를 사용하여 원시 SQL 대신 SQLAlchemy 모델을 사용하도록 Flask 앱 경로를 업데이트하세요."
작동 이유: 전문 지식 통합을 허용하여 정확한 최신 코드를 보장합니다.
결론
이 15가지 기술은 LLM을 사용하여 코드 개발 및 최적화를 체계적으로 안내합니다. 루트 기술은 기반을 설정하고, 정제 기술은 이를 향상시키며, 분해 기술은 복잡성을 관리하고, 추론 기술은 명확성을 향상시키며, 프라이밍 기술은 컨텍스트를 추가합니다. 최적의 결과를 얻으려면 조합을 실험해 보세요. 프롬프트 엔지니어링은 진화하는 분야이므로 지속적인 학습과 적응이 중요하다는 점을 기억하세요.
위 내용은 코드 생성을 위해 모든 개발자가 알아야 할 프롬프트 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!