검색
검색
공개 노트 검색
회원가입로그인

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의 메시지 형식과 응답 객체의 속성을 잘 활용하여 다양한 응용을 만들어 보세요.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 24
heart
T
페이지 기반 대답
AI Chat