Claude API로 대화형 챗봇 구축하는 방법: 메시지 형식 및 응답 처리 튜토리얼
이 튜토리얼에서는 Claude API를 사용하여 대화형 챗봇을 구축하는 방법을 배웁니다. 각 단계는 메시지 형식을 이해하고, 모델 응답 객체를 다루는 방법을 배우는 데 중점을 둡니다.
1. 기본 설정
시작하기 전에 필요한 패키지를 임포트하고 클라이언트 객체를 초기화합니다. API 키를 얻고 올바르게 저장하는 방법은 이전 튜토리얼을 참조하세요.
from dotenv import load_dotenv
from anthropic import Anthropic
# 환경 변수 로드
load_dotenv()
# 자동으로 "ANTHROPIC_API_KEY" 환경 변수를 찾습니다.
client = Anthropic()
2. 메시지 형식 이해하기
Claude API와 상호작용할 때 client.messages.create()
를 사용하여 메시지를 보내고 응답을 받을 수 있습니다.
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1000,
messages=[
{"role": "user", "content": "Dr. Pepper에는 어떤 맛들이 사용되나요?"}
]
)
print(response)
메시지 형식
messages
매개변수는 Claude와의 대화에서 문맥을 제공합니다. 메시지 리스트는 각 대화의 메시지를 나타내는 딕셔너리를 포함해야 합니다. 각 메시지 딕셔너리는 다음의 키를 포함해야 합니다.
role: 메시지 발신자의 역할을 나타내는 문자열입니다. "user" (사용자가 보낸 메시지) 또는 "assistant" (Claude가 보낸 메시지)의 값을 가질 수 있습니다.
content: 메시지의 실제 내용을 나타내는 문자열입니다.
예:
messages = [
{"role": "user", "content": "안녕 Claude! 오늘 어떻게 지내시나요?"},
{"role": "assistant", "content": "안녕하세요! 저는 잘 지내고 있습니다. 오늘 어떻게 도와드릴까요?"},
{"role": "user", "content": "페럿에 대한 재미있는 사실을 알려주세요."},
{"role": "assistant", "content": "물론입니다! 흥분한 페럿은 '두킹'이라고 불리는 쿵쾅거리는 울음소리를 냅니다."},
]
3. 메시지 응답 탐색하기
Claude의 메시지 응답 객체는 여러 속성을 포함합니다. 예를 들어:
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1000,
messages=[
{"role": "user", "content": "hello를 프랑스어로 번역해주세요. 한 단어로만 응답하세요"}
]
)
print(response.content[0].text)
주요 속성
content: 모델이 생성한 실제 내용. 리스트 형식으로 되어 있으며, 텍스트와 타입이 포함된 객체입니다.
id: 고유 객체 식별자
usage: 사용 통계 정보 (예: 입력/출력 토큰 수)
4. 번역 함수 작성하기
이제 Claude에게 단어를 특정 언어로 번역하도록 요청하는 translate
함수를 작성해 보겠습니다.
def translate(word, language):
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
messages=[
{"role": "user", "content": f"{word}를 {language}로 번역하세요. 번역된 단어만 응답하세요."}
]
)
return response.content[0].text
예제:
print(translate("hello", "Spanish")) # 'Hola'
print(translate("chicken", "Italian")) # 'pollo'
이 튜토리얼을 통해 Claude API를 활용하여 대화형 챗봇을 구축하는 기본적인 흐름을 이해할 수 있습니다. API의 메시지 형식과 응답 객체의 속성을 잘 활용하여 다양한 응용을 만들어 보세요.


