Learn AI with Python · 강의

프로덕션 LLM 앱을 위한 프롬프트 엔지니어링

시스템 프롬프트 설계, 퓨샷 예시, 출력 형식 지정, 재시도 로직, 비용 최적화를 다룹니다.

레슨 4/413개 단계

프로덕션 LLM 앱을 위한 프롬프트 엔지니어링은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

프로덕션 환경에서 프롬프트 작성하기

실제 앱에서 프롬프트는 코드입니다. 따라서 구조, 테스트, 신뢰성이 필요합니다. 좋은 프롬프트 엔지니어링은 환각을 줄이고, 출력 형식을 강제하며, 비용을 제어합니다. 이 단원에서는 프로덕션 환경에서 중요한 기법을 다룹니다.

시스템 프롬프트 설계

system 프롬프트는 모델의 역할, 어조, 제약 조건, 규칙을 설정합니다. 구체적으로 작성하세요. assistant가 무엇인지, 무엇을 해야 하고 무엇을 하면 안 되는지, 답변 형식은 무엇인지 명시합니다. 명확한 system 프롬프트는 가장 강력한 조정 도구입니다.

system = (
    "You are a support agent for an e-commerce store. "
    "Answer only questions about orders and shipping. "
    "If asked anything else, politely decline. "
    "Keep replies under 3 sentences."
)

퓨샷 예시

퓨샷 프롬프트 작성은 모델에 입력/출력 쌍의 예시를 보여 주어 패턴을 학습하게 하는 방법입니다. 실제 요청 전에 user/assistant 메시지를 번갈아 배치합니다.

messages = [
    {"role": "system", "content": system},
    {"role": "user", "content": "Classify: I love this!"},
    {"role": "assistant", "content": "positive"},
    {"role": "user", "content": "Classify: This broke instantly."},
    {"role": "assistant", "content": "negative"},
    {"role": "user", "content": "Classify: It is okay I guess."}
]

퓨샷이 작동하는 이유

예시는 지시 사항만 제공하는 것보다 의도를 더 명확하게 전달합니다. 정확한 출력 스타일(한 단어, JSON, 레이블)을 고정하고, 분류, 추출, 형식 지정 작업의 일관성을 크게 높입니다.

JSON 출력 강제하기

기계가 읽을 수 있는 응답을 받으려면 response_format으로 JSON 모드를 요청합니다. {"type": "json_object"}를 사용하면 모델이 유효한 JSON만 출력하도록 제한되므로, 이후 안전하게 분석할 수 있습니다.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)

tiktoken으로 토큰 수 세기

비용과 문맥 한도는 토큰으로 측정합니다. tiktoken 라이브러리는 로컬에서 토큰을 세므로 전송하기 전에 예산을 관리할 수 있습니다. pip install tiktoken으로 설치합니다.

import tiktoken

enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))

토큰 수를 세는 이유

각 모델에는 문맥 창(최대 토큰 수)이 있으며 토큰 단위로 비용을 지불합니다. 미리 토큰을 세면 기록을 줄이고, 지나치게 큰 입력을 거부하며, 호출이 서버를 떠나기 전에 비용을 예측할 수 있습니다.

def cost_estimate(text, price_per_1k=0.005):
    enc = tiktoken.encoding_for_model("gpt-4o")
    n = len(enc.encode(text))
    return n, n / 1000 * price_per_1k

요청 제한 처리하기

프로덕션 트래픽에서는 요청 제한(HTTP 429)과 일시적인 오류가 발생합니다. 충돌하는 대신 지수 백오프로 재시도하세요. tenacity 라이브러리를 사용하면 한 줄짜리 데코레이터로 처리할 수 있습니다.

pip install tenacity

from tenacity import retry, wait_exponential, stop_after_attempt

tenacity로 재시도하기

API 호출에 @retry를 적용합니다. wait_exponential으로 시도 사이의 지연 시간을 늘리고, stop_after_attempt으로 전체 시도 횟수의 상한을 설정합니다. 이렇게 하면 일시적인 장애가 발생해도 안정적으로 계속 동작합니다.

@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
    return client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )

출력용 JSON 스키마 정의하기

JSON 모드를 강제할 때는 원하는 정확한 형태를 프롬프트 안에 항상 설명하여 키를 예측할 수 있게 하세요. 일반 텍스트로 스키마를 명시하고 JSON 모드를 함께 사용하면 매번 분석 가능하고 유효한 결과를 얻을 수 있습니다.

system = (
    "Return ONLY JSON with this shape: "
    "{\"sentiment\": \"positive|negative|neutral\", "
    "\"confidence\": number between 0 and 1}"
)

종합하기

프로덕션 프롬프트의 순서는 다음과 같습니다. 엄격한 system 프롬프트를 설계하고, 퓨샷 예시를 추가하며, 필요할 때 JSON 출력을 강제하고, 비용과 문맥을 관리하기 위해 토큰을 세고, 호출을 재시도 로직으로 감쌉니다. 이 기능들을 함께 사용하면 LLM 기능의 신뢰성이 높아집니다.

빠른 확인

프로덕션 프롬프트 작성에 대한 지식을 확인해 보세요.

복습: 프로덕션 프롬프트 작성

엄격한 시스템 프롬프트를 작성하고, 퓨샷 예시로 동작을 유도하며, response_format JSON 모드로 구조화된 응답을 보장하는 방법을 배웠습니다. tiktoken으로 토큰을 계산해 컨텍스트와 비용을 관리하고, 속도 제한에 대응하기 위해 tenacity 재시도를 추가해 안정성도 높였습니다.

무료로 시작

AI 튜터와 함께 Python을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
53
레슨
225

자주 묻는 질문

“프로덕션 LLM 앱을 위한 프롬프트 엔지니어링” 강의는 무료인가요?

네 — “프로덕션 LLM 앱을 위한 프롬프트 엔지니어링” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“프로덕션 LLM 앱을 위한 프롬프트 엔지니어링”에서 뭘 배우나요?

시스템 프롬프트 설계, 퓨샷 예시, 출력 형식 지정, 재시도 로직, 비용 최적화를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“프로덕션 LLM 앱을 위한 프롬프트 엔지니어링” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. OpenAI API: chat.completions와 스트리밍
  2. Python에서 Anthropic Claude API 사용하기
  3. LLM의 함수 호출과 도구 사용
  4. 프로덕션 LLM 앱을 위한 프롬프트 엔지니어링
← Learn AI with Python(으)로 돌아가기