안녕하세요, 저는 HolySheep AI의 기술 엔지니어입니다. AI 앱을 만들 때마다 같은 프롬프트를 반복 작성하셨나요? 오늘은 이 문제를 한 번에 해결하는 프롬프트 템플릿 만드는 방법을 알려드리겠습니다. 코드를 한 줄도 모르는 분도 따라할 수 있도록 설명할게요.

프롬프트 템플릿이란?

프롬프트 템플릿을 쉽게 설명하면, 편지 쓸 때 사용하는 万能 양식이라고 생각하시면 됩니다.

이것이 프롬프트 템플릿의 핵심입니다. AI에게 보내는 질문도 미리 틀을 만들어두고, 필요한 부분만 바꾸는 거예요.

준비물 설치하기

먼저 필요한 도구를 설치하겠습니다. 터미널(명령 프롬프트)을 열고 다음 명령어를 입력하세요.

pip install langchain langchain-openai

화면에서 ▶ 모양이 뜨면서 설치가 진행됩니다. 잠시 기다려주세요.

기본 프롬프트 템플릿 만들기

가장 간단한 예제부터 시작하겠습니다. 어떤 상황에서도 쓸 수 있는 만능 템플릿을 만들어볼게요.

from langchain.prompts import PromptTemplate

1단계: 템플릿 만들기

my_template = PromptTemplate.from_template( "안녕하세요, {이름}님! 오늘 날씨가 {날씨}네요." )

2단계: 실제 값 넣기

result = my_template.format(이름="민수", 날씨="맑음") print(result)

실행 결과:

안녕하세요, 민수님! 오늘 날씨가 맑음네요.

코드 설명을 드리면요:

HolySheep AI와 연결하기

자, 이제 실제로 AI가 대답하게 만들어볼게요. 지금 가입하면 무료 크레딧을 받을 수 있으니 아직 계정이 없으신 분은 먼저 만들어주세요.

import os
from langchain_openai import ChatOpenAI

HolySheep AI API 키 설정

os.environ["OPENAI_API_KEY"] = "YOUR_HOLYSHEEP_API_KEY" os.environ["OPENAI_API_BASE"] = "https://api.holysheep.ai/v1"

AI 모델 선택 (gpt-4o-mini: 싸고 빠른 모델)

llm = ChatOpenAI( model="gpt-4o-mini", temperature=0.7 )

번역 템플릿 만들기

translator_template = PromptTemplate.from_template( "다음 문서를 {목적어}어로 번역해주세요:\n\n{원문}" )

템플릿에 값 넣기

user_input = translator_template.format( 목적어="영국", 원문="오늘 기분이 정말 좋습니다!" )

AI에게 보내기

response = llm.invoke(user_input) print(response.content)

실행 결과 (예시):

I'm feeling really great today!

대화 체인 만들어보기

여러 번의 대화를 한 번에 처리하는 것도 가능합니다. 예를 들어 고객 상담 챗봇을 만든다고 가정해볼게요.

from langchain.prompts import ChatPromptTemplate
from langchain.schema import HumanMessage, SystemMessage

시스템 메시지: AI의 역할을 정해줍니다

system_template = "당신은 친절한 {업종} 상담원입니다. 항상敬語를 사용해주세요."

사용자 메시지 템플릿

user_template = "고객님: 안녕하세요, {질문}?"

템플릿 합치기

full_prompt = ChatPromptTemplate.from_messages([ ("system", system_template), ("human", user_template) ])

실제 값 넣기

formatted = full_prompt.format_messages( 업종="전자제품", 질문="이 노트북 배터리가 오래 안 갑니다" )

AI 응답 받기

response = llm.invoke(formatted) print(response.content)

실전 예제: 블로그 글 작성기

제가 실제로 사용하는 템플릿을 공유드릴게요. 블로그 글을 자동으로 만들어주는 도구예요.

from langchain.prompts import PromptTemplate

블로그 글 작성 템플릿

blog_template = PromptTemplate.from_template(""" 당신은 전문 블로그 작가입니다. 다음 주제에 대한 블로그 글을 작성해주세요. 【주제】: {topic} 【스타일】: {style} 【목표 독자】: {audience} 【글 길이】: {length}자 이내 규칙: 1. 첫 문장은读者的 주목을 끌어야 합니다 2. 실제 사례를 포함해주세요 3. 마지막에 행동 유도 문장을 추가해주세요 """)

여러 블로그 글 한번에 작성

topics = [ {"topic": "집에서 하는 유산소 운동", "style": "친근함", "audience": "운동 초보자", "length": "800"}, {"topic": "파이썬 기본 문법", "style": "전문적", "audience": "코딩 입문자", "length": "1000"}, {"topic": "집꾸미기 팁", "style": "감성적", "audience": "20대 직장인", "length": "600"}, ]

템플릿 재사용!

for i, info in enumerate(topics, 1): prompt = blog_template.format(**info) print(f"--- 블로그 {i} ---\n") # 실제로는 llm.invoke(prompt)로 AI 응답을 받습니다 print(f"[여기에 AI 응답이 옵니다]\n")

자주 발생하는 오류와 해결책

오류 1: KeyError - 템플릿 변수 이름이 틀릴 때

# ❌ 잘못된 코드
template = PromptTemplate.from_template("안녕하세요, {이름}님!")
result = template.format(사용자="민수")  # '이름'이 아니라 '사용자'

✅ 올바른 코드

result = template.format(이름="민수") print(result)

원인: 템플릿에서 정한 이름({이름})과 실제 넣는 이름(사용자)이 다를 때 발생합니다.

해결: 중괄호 {} 안의 이름과 format()에서 쓰는 이름을 꼭 똑같이 맞춰주세요.

오류 2: API 연결 실패 - base_url 설정问题时

# ❌ 이 코드 사용 금지
os.environ["OPENAI_API_BASE"] = "https://api.openai.com/v1"

✅ HolySheep AI는 이렇게 설정

os.environ["OPENAI_API_BASE"] = "https://api.holysheep.ai/v1"

원인: 잘못된 URL을 입력하면 연결이 안 됩니다.

해결: 반드시 https://api.holysheep.ai/v1을 사용해주세요. 저의 경우 HolySheep AI로 바꾸고 나서 연결이 바로恢复正常됐어요.

오류 3: 빈 칸이 남을 때

# ❌ 모든 변수를 채우지 않으면 오류 발생
template = PromptTemplate.from_template("{이름}님, {날짜}에 만나요!")
result = template.format(이름="민수")  # '날짜'가 비어있음!

✅ 모든 변수 채우기

result = template.format(이름="민수", 날짜="다음 주 월요일") print(result)

원인: 템플릿에 정의된 모든 변수에 값을 넣어야 합니다.

해결: format() 안에 모든 변수를 빠짐없이 채워주세요.

오류 4: 따옴표 안의 중괄호

# ❌ JSON 같은 데이터에서 중괄호가 문제될 때
template = PromptTemplate.from_template(
    '다음 JSON을 파싱해주세요: {"name": "{이름}"}'
)

✅ PromptTemplate에 변수 넣는 방식 사용

template = PromptTemplate.from_template( "다음 이름을 JSON 형식으로 출력해주세요: {이름}" )

원인: 템플릿 안에서 중괄호 {}를 다른 용도로 쓰면 충돌이 발생합니다.

해결: AI에게 지시하는 부분과 사용자 입력 부분을 분리해주세요.

핵심 정리

프롬프트 템플릿을 쓰면 같은结构的 질문도 변수를 바꾸기만 하면 돼서 정말 편합니다. 특히 여러 언어로 번역하거나, 다양한 고객에게 다른 내용의 이메일을 보내야 할 때 유용하죠.

저도 이 방법을 적용한 뒤 프롬프트 작성 시간이 매번 5분씩 절약되고 있어요. 처음엔 복잡해 보여도 한 번 만들어두면 평생 쓸 수 있으니 도전해보세요!

👉 HolySheep AI 가입하고 무료 크레딧 받기