CrewAI와 LLM 연결하기

CrewAI는 LiteLLM을 사용해 다양한 언어 모델(LLM)에 연결한다. 이 통합은 광범위한 유연성을 제공하며, 여러 프로바이더의 모델을 간단하고 통일된 인터페이스로 사용할 수 있게 한다.

기본적으로 CrewAI는 gpt-4o-mini 모델을 사용한다. 이는 OPENAI_MODEL_NAME 환경 변수에 의해 결정되며, 설정되지 않은 경우 기본값은 “gpt-4o-mini”이다. 이 가이드에서 설명하는 대로 에이전트가 다른 모델이나 프로바이더를 사용하도록 쉽게 설정할 수 있다.

지원하는 프로바이더

LiteLLM은 다양한 프로바이더를 지원한다. 주요 프로바이더는 다음과 같다:

  • OpenAI
  • Anthropic
  • Google (Vertex AI, Gemini)
  • Azure OpenAI
  • AWS (Bedrock, SageMaker)
  • Cohere
  • VoyageAI
  • Hugging Face
  • Ollama
  • Mistral AI
  • Replicate
  • Together AI
  • AI21
  • Cloudflare Workers AI
  • DeepInfra
  • Groq
  • SambaNova
  • NVIDIA NIMs
  • 그리고 더 많은 프로바이더!

지원하는 프로바이더의 최신 목록은 LiteLLM 프로바이더 문서를 참조한다.

LLM 교체하기

CrewAI 에이전트에서 다른 LLM을 사용하려면 여러 가지 방법이 있다:

에이전트를 초기화할 때 모델 이름을 문자열로 전달한다:

from crewai import Agent

# OpenAI의 GPT-4 사용
openai_agent = Agent(
    role='OpenAI 전문가',
    goal='GPT-4를 사용한 통찰 제공',
    backstory="OpenAI의 최신 모델로 구동되는 AI 어시스턴트.",
    llm='gpt-4'
)

# Anthropic의 Claude 사용
claude_agent = Agent(
    role='Anthropic 전문가',
    goal='Claude를 사용한 데이터 분석',
    backstory="Anthropic의 언어 모델을 활용한 AI 어시스턴트.",
    llm='claude-2'
)

설정 옵션

에이전트를 위해 LLM을 설정할 때 다양한 파라미터를 사용할 수 있다:

파라미터타입설명
modelstr사용할 모델 이름 (예: “gpt-4”, “claude-2”)
temperaturefloat출력의 무작위성을 조절 (0.0에서 1.0 사이)
max_tokensint생성할 최대 토큰 수
top_pfloat출력의 다양성을 조절 (0.0에서 1.0 사이)
frequency_penaltyfloat지금까지 텍스트에서 토큰의 빈도에 따라 새로운 토큰에 패널티를 부여
presence_penaltyfloat지금까지 텍스트에서 토큰의 존재 여부에 따라 새로운 토큰에 패널티를 부여
stopstr, List[str]생성을 멈출 시퀀스
base_urlstrAPI 엔드포인트의 기본 URL
api_keystr인증을 위한 API 키

전체 파라미터 목록과 설명은 LLM 클래스 문서를 참고한다.

OpenAI 호환 LLM 연결하기

환경 변수를 사용하거나 LLM 클래스의 특정 속성을 설정하여 OpenAI 호환 LLM에 연결할 수 있다:

import os

os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.your-provider.com/v1"
os.environ["OPENAI_MODEL_NAME"] = "your-model-name"

Ollama를 사용한 로컬 모델 활용

Ollama와 같은 로컬 모델을 사용하려면 다음 단계를 따라야 한다:

2

원하는 모델 가져오기

예를 들어, ollama pull llama3.2 명령어를 실행해 모델을 다운로드한다.

3

에이전트 설정

    agent = Agent(
        role='Local AI Expert',
        goal='Process information using a local model',
        backstory="An AI assistant running on local hardware.",
        llm=LLM(model="ollama/llama3.2", base_url="http://localhost:11434")
    )

기본 API URL 변경하기

LLM 프로바이더의 기본 API URL을 변경하려면 base_url 파라미터를 설정한다:

llm = LLM(
    model="custom-model-name",
    base_url="https://api.your-provider.com/v1",
    api_key="your-api-key"
)
agent = Agent(llm=llm, ...)

이 방법은 OpenAI 호환 API를 사용하거나 특정 프로바이더의 다른 엔드포인트를 지정해야 할 때 특히 유용하다.

결론

CrewAI는 LiteLLM을 활용해 다양한 LLM(대형 언어 모델)과 원활하게 통합한다. 이 유연성 덕분에 성능, 비용 효율성, 로컬 배포 등 특정 요구사항에 가장 적합한 모델을 선택할 수 있다. 지원되는 모델과 설정 옵션에 대한 최신 정보를 확인하려면 LiteLLM 문서를 참고한다.