CrewAI는 LiteLLM을 통해 여러 LLM 프로바이더와 통합된다. 이를 통해 특정 사용 사례에 적합한 모델을 유연하게 선택할 수 있다. 이 가이드는 CrewAI 프로젝트에서 다양한 LLM 프로바이더를 설정하고 사용하는 방법을 이해하는 데 도움을 준다.

LLM이란 무엇인가?

대규모 언어 모델(LLM)은 CrewAI 에이전트의 핵심 지능을 담당한다. 에이전트가 문맥을 이해하고 결정을 내리며 인간과 유사한 응답을 생성할 수 있게 한다. 다음은 LLM에 대해 알아야 할 핵심 사항이다:

LLM 기본 개념

대규모 언어 모델은 방대한 텍스트 데이터로 학습된 AI 시스템이다. CrewAI 에이전트의 지능을 구동하여 인간과 유사한 텍스트를 이해하고 생성할 수 있게 한다.

컨텍스트 윈도우

컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 텍스트의 양을 결정한다. 더 큰 윈도우(예: 128K 토큰)는 더 많은 컨텍스트를 허용하지만, 비용이 더 들고 속도가 느려질 수 있다.

온도

온도(0.0에서 1.0 사이)는 응답의 무작위성을 조절한다. 낮은 값(예: 0.2)은 더 집중적이고 결정론적인 출력을 생성하며, 높은 값(예: 0.8)은 창의성과 다양성을 증가시킨다.

프로바이더 선택

각 LLM 프로바이더(예: OpenAI, Anthropic, Google)는 다양한 기능, 가격, 특징을 가진 모델을 제공한다. 정확도, 속도, 비용에 대한 요구 사항에 따라 선택한다.

지원 모델과 기능

지원되는 모델과 각각의 기능을 상세히 정리했다. lmarena.aiartificialanalysis.ai에서 성능을 비교할 수 있다.

모델컨텍스트 윈도우주요 용도
GPT-48,192 토큰고정확도 작업, 복잡한 추론
GPT-4 Turbo128,000 토큰장문 콘텐츠, 문서 분석
GPT-4o & GPT-4o-mini128,000 토큰비용 효율적인 대용량 컨텍스트 처리
o3-mini200,000 토큰빠른 추론, 복잡한 추론

1 토큰 ≈ 영어 4 문자. 예를 들어, 8,192 토큰 ≈ 32,768 문자 또는 약 6,000 단어.

LLM 설정하기

CrewAI에서 LLM을 설정하는 방법은 세 가지다. 여러분의 작업 흐름에 가장 적합한 방법을 선택하면 된다:

가장 간단한 시작 방법이다. 환경 변수를 다음과 같이 설정한다:

# 필수: 인증을 위한 API 키
OPENAI_API_KEY=<your-api-key>

# 선택: 기본 모델 선택
OPENAI_MODEL_NAME=gpt-4o-mini  # 설정하지 않으면 기본값

# 선택: 조직 ID (해당되는 경우)
OPENAI_ORGANIZATION_ID=<your-org-id>

API 키를 버전 관리 시스템에 커밋하지 말자. 환경 파일(.env)이나 시스템의 비밀 관리 기능을 사용한다.

고급 기능과 최적화

LLM 설정을 최대한 활용하는 방법을 알아본다:

프로바이더 설정 예제

구조화된 LLM 호출

CrewAI는 Pydantic 모델을 사용해 response_format을 정의할 수 있도록 지원한다. 이를 통해 프레임워크가 자동으로 출력을 파싱하고 검증할 수 있어, 응답을 수동으로 후처리하지 않고도 애플리케이션에 쉽게 통합할 수 있다.

예를 들어, 예상되는 응답 구조를 나타내는 Pydantic 모델을 정의하고, LLM을 인스턴스화할 때 response_format으로 전달할 수 있다. 이 모델은 LLM 출력을 구조화된 파이썬 객체로 변환하는 데 사용된다.

from crewai import LLM

class Dog(BaseModel):
    name: str
    age: int
    breed: str


llm = LLM(model="gpt-4o", response_format=Dog)

response = llm.call(
    "Analyze the following messages and return the name, age, and breed. "
    "Meet Kona! She is 3 years old and is a black german shepherd."
)
print(response)

일반적인 문제와 해결 방법

대부분의 인증 문제는 API 키 형식과 환경 변수 이름을 확인하면 해결할 수 있다.

# OpenAI
OPENAI_API_KEY=sk-...

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...

도움 받기

도움이 필요하다면 다음 리소스를 활용할 수 있다:

API 키 보안을 위한 모범 사례:

  • 환경 변수나 보안 볼트를 사용한다
  • 버전 관리 시스템에 키를 절대 커밋하지 않는다
  • 키를 정기적으로 교체한다
  • 개발과 프로덕션 환경에서 별도의 키를 사용한다
  • 키 사용 패턴에서 비정상적인 활동을 모니터링한다