> ## Documentation Index
> Fetch the complete documentation index at: https://crewai.burt.pe.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# 다양한 LLM 연결하기

> LiteLLM을 사용하여 CrewAI와 다양한 대규모 언어 모델(LLM)을 통합하는 방법을 다룬 포괄적인 가이드. 지원되는 프로바이더와 설정 옵션을 포함한다.

## CrewAI와 LLM 연결하기

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

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

## 지원하는 프로바이더

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](https://docs.api.nvidia.com/nim/reference/models-1)
* 그리고 더 많은 프로바이더!

지원하는 프로바이더의 최신 목록은 [LiteLLM 프로바이더 문서](https://docs.litellm.ai/docs/providers)를 참조한다.

## LLM 교체하기

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

<Tabs>
  <Tab title="문자열 식별자 사용하기">
    에이전트를 초기화할 때 모델 이름을 문자열로 전달한다:

    <CodeGroup>
      ```python theme={null}
      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'
      )
      ```
    </CodeGroup>
  </Tab>

  <Tab title="LLM 클래스 사용하기">
    더 상세한 설정을 위해 LLM 클래스를 사용한다:

    <CodeGroup>
      ```python theme={null}
      from crewai import Agent, LLM

      llm = LLM(
          model="gpt-4",
          temperature=0.7,
          base_url="https://api.openai.com/v1",
          api_key="your-api-key-here"
      )

      agent = Agent(
          role='커스텀 LLM 전문가',
          goal='맞춤형 응답 제공',
          backstory="커스텀 LLM 설정을 가진 AI 어시스턴트.",
          llm=llm
      )
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## 설정 옵션

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

| 파라미터                   |         타입         | 설명                                       |
| :--------------------- | :----------------: | :--------------------------------------- |
| **model**              |        `str`       | 사용할 모델 이름 (예: "gpt-4", "claude-2")       |
| **temperature**        |       `float`      | 출력의 무작위성을 조절 (0.0에서 1.0 사이)              |
| **max\_tokens**        |        `int`       | 생성할 최대 토큰 수                              |
| **top\_p**             |       `float`      | 출력의 다양성을 조절 (0.0에서 1.0 사이)               |
| **frequency\_penalty** |       `float`      | 지금까지 텍스트에서 토큰의 빈도에 따라 새로운 토큰에 패널티를 부여    |
| **presence\_penalty**  |       `float`      | 지금까지 텍스트에서 토큰의 존재 여부에 따라 새로운 토큰에 패널티를 부여 |
| **stop**               | `str`, `List[str]` | 생성을 멈출 시퀀스                               |
| **base\_url**          |        `str`       | API 엔드포인트의 기본 URL                        |
| **api\_key**           |        `str`       | 인증을 위한 API 키                             |

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

## OpenAI 호환 LLM 연결하기

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

<Tabs>
  <Tab title="환경 변수 사용">
    <CodeGroup>
      ```python theme={null}
      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"
      ```
    </CodeGroup>
  </Tab>

  <Tab title="LLM 클래스 속성 사용">
    <CodeGroup>
      ```python theme={null}
      llm = LLM(
          model="custom-model-name",
          api_key="your-api-key",
          base_url="https://api.your-provider.com/v1"
      )
      agent = Agent(llm=llm, ...)
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## Ollama를 사용한 로컬 모델 활용

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

<Steps>
  <Step title="Ollama 다운로드 및 설치">
    [Ollama를 다운로드하고 설치하려면 여기를 클릭](https://ollama.com/download)
  </Step>

  <Step title="원하는 모델 가져오기">
    예를 들어, `ollama pull llama3.2` 명령어를 실행해 모델을 다운로드한다.
  </Step>

  <Step title="에이전트 설정">
    <CodeGroup>
      ```python Code theme={null}
          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")
          )
      ```
    </CodeGroup>
  </Step>
</Steps>

## 기본 API URL 변경하기

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

```python theme={null}
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 문서](https://docs.litellm.ai/docs/)를 참고한다.
