부록 #4. Anthropic API 응답 받기

다양한 LLM API들이 있으며, 서비스의 목적에 맞는 LLM API들을 사용해야할 것입니다. 이에 Anthropic API를 추가로 지원해보겠습니다.

Anthropic의 Claude 모델은 OpenAI의 GPT 모델과 함께 가장 널리 사용되는 LLM 중 하나이며, 긴 컨텍스트 처리와 자연스러운 대화에 강점이 있습니다.

미리보기

../../_images/anthropic-response.png

같은 프롬프트의 claude-3-7-sonnet-20250219 모델 응답

라이브러리 설치

requirements.txt 파일 덮어쓰기
 1django-pyhub-rag
 2django-environ
 3django-extensions
 4django-lifecycle
 5openai
 6anthropic
 7
 8# sqlite 데이터베이스를 사용할 경우
 9sqlite-vec
10numpy
11
12# postgres 데이터베이스를 사용할 경우
13# psycopg2-binary
14# pgvector
15
16ipython

API_KEY 발급 및 등록

Anthropic API Key는 https://console.anthropic.com/settings/keys 페이지에서 발급받으실 수 있습니다.

발급받으신 api key를 복사하여 .env 파일에 ANTHROPIC_API_KEY 환경변수로서 등록해주세요.

.env 파일
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-api03-...

settings에서도 환경변수 참조를 위해 ANTHROPIC_API_KEY 설정을 추가합니다.

mysite/settings.py 파일에 추가
# Anthropic API Key
# default 값을 지정하지 않았기에 지정 환경변수가 없더라도 예외가 발생하지 않습니다.
ANTHROPIC_API_KEY = env.str("ANTHROPIC_API_KEY", default=None)

model 인자에 따른 API 호출 분기

chat/llm.py 파일의 LLM 클래스에서 model 인자에 따라 API 호출을 분기하여 응답을 생성합니다.

LLM 인스턴스 생성 시에 anthropic 모델 지정

이제 chat/models.py 파일에서 LLM 인스턴스 생성 시에 모델을 claude-3-7-sonnet-latest 로 변경하면 Claude API를 호출하여 응답을 생성합니다. anthropic에서 지원하는 모델은 https://docs.anthropic.com/en/docs/about-claude/models/all-models 공식문서에서 확인하실 수 있습니다.

chat/models.py 파일 중 일부
1llm = LLM(
2    # model="gpt-4o-mini",
3    # model="claude-3-7-sonnet-20250219",
4    model="claude-3-7-sonnet-latest",
5    temperature=1,
6    system_prompt=system_prompt,
7    initial_messages=messages,
8)