---
title: 'LLMs'
description: 'CrewAI ํ๋ก์ ํธ์์ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ ๊ตฌ์ฑํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ข
ํฉ ์๋ด์'
icon: 'microchip-ai'
mode: "wide"
---
## ๊ฐ์
CrewAI๋ LiteLLM์ ํตํด ๋ค์ํ LLM ์ ๊ณต์
์ฒด์ ํตํฉ๋์ด, ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ๋ชจ๋ธ์ ์ ํํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ CrewAI ํ๋ก์ ํธ์์ ๋ค์ํ LLM ์ ๊ณต์
์ฒด๋ฅผ ๊ตฌ์ฑํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
## LLM์ด๋ ๋ฌด์์ธ๊ฐ์?
Large Language Models(LLM)๋ CrewAI ์์ด์ ํธ์ ํต์ฌ ์ง๋ฅ์
๋๋ค. ์์ด์ ํธ๊ฐ ๋ฌธ๋งฅ์ ์ดํดํ๊ณ , ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ฉฐ, ์ธ๊ฐ๊ณผ ์ ์ฌํ ์๋ต์ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค. ์์๋์ด์ผ ํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
<CardGroup cols={2}>
<Card title="LLM ๊ธฐ๋ณธ" icon="brain">
Large Language Models๋ ๋ฐฉ๋ํ ์์ ํ
์คํธ ๋ฐ์ดํฐ๋ก ํ์ต๋ AI ์์คํ
์
๋๋ค. CrewAI ์์ด์ ํธ์ ์ง๋ฅ์ ๊ตฌ๋ํ์ฌ, ์ธ๊ฐ๊ณผ ์ ์ฌํ ํ
์คํธ๋ฅผ ์ดํดํ๊ณ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค.
</Card>
<Card title="์ปจํ
์คํธ ์๋์ฐ" icon="window">
์ปจํ
์คํธ ์๋์ฐ๋ LLM์ด ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ ํ
์คํธ ์์ ๊ฒฐ์ ํฉ๋๋ค. ๋ ํฐ ์๋์ฐ(์: 128K ํ ํฐ)๋ ๋ ๋ง์ ๋ฌธ๋งฅ์ ๋ค๋ฃฐ ์ ์์ง๋ง, ๋น์ฉ๊ณผ ์๋ ๋ฉด์์ ๋ ๋ถ๋ด์ด ๋ ์ ์์ต๋๋ค.
</Card>
<Card title="Temperature" icon="temperature-three-quarters">
Temperature(0.0์์ 1.0)๋ ์๋ต์ ๋ฌด์์์ฑ์ ์กฐ์ ํฉ๋๋ค. ๋ฎ์ ๊ฐ(์: 0.2)์ ๋ ์ง์ค์ ์ด๊ณ ๊ฒฐ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ, ๋์ ๊ฐ(์: 0.8)์ ์ฐฝ์์ฑ๊ณผ ๋ค์์ฑ์ ๋์
๋๋ค.
</Card>
<Card title="์ ๊ณต์ ์ ํ" icon="server">
๊ฐ LLM ์ ๊ณต์(์: OpenAI, Anthropic, Google)๋ ๋ค์ํ ๊ธฐ๋ฅ, ๊ฐ๊ฒฉ, ํน์ฑ์ ๊ฐ์ง ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. ์ ํ์ฑ, ์๋, ๋น์ฉ ๋ฑ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ํํ์ธ์.
</Card>
</CardGroup>
## LLM ์ค์ ํ๊ธฐ
CrewAI ์ฝ๋ ๋ด์๋ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ง์ ํ ์ ์๋ ์ฌ๋ฌ ์์น๊ฐ ์์ต๋๋ค. ๋ชจ๋ธ์ ์ง์ ํ ํ์๋ ์ฌ์ฉํ๋ ๊ฐ ๋ชจ๋ธ ์ ๊ณต์์ ๋ํ ์ค์ (์: API ํค)์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๊ฐ ์ ๊ณต์์ ๋ง๋ [์ ๊ณต์ ์ค์ ์์ ](#provider-configuration-examples) ์น์
์ ์ฐธ๊ณ ํ์ธ์.
<Tabs>
<Tab title="1. ํ๊ฒฝ ๋ณ์">
๊ฐ์ฅ ๊ฐ๋จํ๊ฒ ์์ํ ์ ์๋ ๋ฐฉ๋ฒ์
๋๋ค. `.env` ํ์ผ์ด๋ ์ฑ ์ฝ๋์์ ํ๊ฒฝ ๋ณ์๋ก ์ง์ ๋ชจ๋ธ์ ์ค์ ํ ์ ์์ต๋๋ค. `crewai create`๋ฅผ ์ฌ์ฉํด ํ๋ก์ ํธ๋ฅผ ๋ถํธ์คํธ๋ฉํ๋ค๋ฉด ์ด๋ฏธ ์ค์ ๋์ด ์์ ์ ์์ต๋๋ค.
```bash .env
MODEL=model-id # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-...
# ๋ฐ๋์ ์ฌ๊ธฐ์์ API ํค๋ ์ค์ ํ์ธ์. ์๋ ์ ๊ณต์
# ์น์
์ ์ฐธ๊ณ ํ์ธ์.
```
<Warning>
API ํค๋ฅผ ์ ๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ์ปค๋ฐํ์ง ๋ง์ธ์. ํ๊ฒฝ ํ์ผ(.env)์ด๋ ์์คํ
์ ๋น๋ฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ธ์.
</Warning>
</Tab>
<Tab title="2. YAML ๊ตฌ์ฑ">
์์ด์ ํธ ๊ตฌ์ฑ์ ์ ์ํ๋ YAML ํ์ผ์ ๋ง๋์ธ์. ์ด ๋ฐฉ๋ฒ์ ๋ฒ์ ๊ด๋ฆฌ์ ํ ํ์
์ ์ ํฉํฉ๋๋ค:
```yaml agents.yaml {6}
researcher:
role: Research Specialist
goal: Conduct comprehensive research and analysis
backstory: A dedicated research professional with years of experience
verbose: true
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
# (์๋ ์ ๊ณต์ ๊ตฌ์ฑ ์์ ์ฐธ๊ณ )
```
<Info>
YAML ๊ตฌ์ฑ์ ์ฅ์ :
- ์์ด์ ํธ ์ค์ ์ ๋ฒ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ค์ํ ๋ชจ๋ธ ๊ฐ ์ ํ์ด ์ฝ์ต๋๋ค.
- ํ์๋ค๊ณผ ๊ตฌ์ฑ์ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ์ ํ๊ณผ ๋ชฉ์ ์ ๋ฌธ์ํํ ์ ์์ต๋๋ค.
</Info>
</Tab>
<Tab title="3. ์ง์ ์ฝ๋ ์์ฑ">
์ต๋ํ ์ ์ฐํ๊ฒ LLM์ Python ์ฝ๋์์ ์ง์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
```python {4,8}
from crewai import LLM
# ๊ธฐ๋ณธ ์ค์
llm = LLM(model="model-id-here") # gpt-4o, gemini-2.0-flash, anthropic/claude...
# ์์ธํ ํ๋ผ๋ฏธํฐ๋ก ๊ณ ๊ธ ์ค์
llm = LLM(
model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude...
temperature=0.7, # ๋์ฑ ์ฐฝ์์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ํ ๋ ๋๊ฒ ์ค์
timeout=120, # ์๋ต์ ๊ธฐ๋ค๋ฆด ์ต๋ ์ด
max_tokens=4000, # ์๋ต์ ์ต๋ ๊ธธ์ด
top_p=0.9, # ๋ํด๋ฆฌ์ด์ค ์ํ๋ง ํ๋ผ๋ฏธํฐ
frequency_penalty=0.1 , # ๋ฐ๋ณต ์ค์ด๊ธฐ
presence_penalty=0.1, # ์ฃผ์ ๋ค์์ฑ ๋์ด๊ธฐ
response_format={"type": "json"}, # ๊ตฌ์กฐํ๋ ์ถ๋ ฅ์ฉ
seed=42 # ๊ฒฐ๊ณผ ์ฌํ์ฑ ํ๋ณด์ฉ
)
```
<Info>
ํ๋ผ๋ฏธํฐ ์ค๋ช
:
- `temperature`: ๋๋ค์ฑ ์ ์ด (0.0-1.0)
- `timeout`: ์๋ต ๋๊ธฐ ์ต๋ ์๊ฐ
- `max_tokens`: ์๋ต ๊ธธ์ด ์ ํ
- `top_p`: ์ํ๋ง ์ temperature์ ๋์ฒด๊ฐ
- `frequency_penalty`: ๋จ์ด ๋ฐ๋ณต ๊ฐ์
- `presence_penalty`: ์๋ก์ด ์ฃผ์ ์์ฑ ์ ๋
- `response_format`: ์ถ๋ ฅ ๊ตฌ์กฐ ์ง์
- `seed`: ์ผ๊ด๋ ์ถ๋ ฅ ๋ณด์ฅ
</Info>
</Tab>
</Tabs>
## ๊ณต๊ธ์ ๊ตฌ์ฑ ์์
CrewAI๋ ๊ณ ์ ํ ๊ธฐ๋ฅ, ์ธ์ฆ ๋ฐฉ๋ฒ, ๋ชจ๋ธ ์ญ๋์ ์ ๊ณตํ๋ ๋ค์ํ LLM ๊ณต๊ธ์๋ฅผ ์ง์ํฉ๋๋ค.
์ด ์น์
์์๋ ํ๋ก์ ํธ์ ์๊ตฌ์ ๊ฐ์ฅ ์ ํฉํ LLM์ ์ ํ, ๊ตฌ์ฑ, ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋๋ ์์ธํ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
<AccordionGroup>
<Accordion title="OpenAI">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
# Required
OPENAI_API_KEY=sk-...
# Optional
OPENAI_API_BASE=<custom-base-url>
OPENAI_ORGANIZATION=<your-org-id>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
from crewai import LLM
llm = LLM(
model="openai/gpt-4", # call model by provider/model_name
temperature=0.8,
max_tokens=150,
top_p=0.9,
frequency_penalty=0.1,
presence_penalty=0.1,
stop=["END"],
seed=42
)
```
OpenAI๋ ๋ค์ํ ๋ชจ๋ธ๊ณผ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ํ์ ์ธ LLM ๊ณต๊ธ์ ์ค ํ๋์
๋๋ค.
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|-------------------|-------------------|-----------------------------------------------|
| GPT-4 | 8,192 ํ ํฐ | ๊ณ ์ ํ๋ ์์
, ๋ณต์กํ ์ถ๋ก |
| GPT-4 Turbo | 128,000 ํ ํฐ | ์ฅ๋ฌธ ์ฝํ
์ธ , ๋ฌธ์ ๋ถ์ |
| GPT-4o & GPT-4o-mini | 128,000 ํ ํฐ | ๋น์ฉ ํจ์จ์ ์ธ ๋์ฉ๋ ์ปจํ
์คํธ ์ฒ๋ฆฌ |
| o3-mini | 200,000 ํ ํฐ | ๋น ๋ฅธ ์ถ๋ก , ๋ณต์กํ ์ถ๋ก |
| o1-mini | 128,000 ํ ํฐ | ๋น ๋ฅธ ์ถ๋ก , ๋ณต์กํ ์ถ๋ก |
| o1-preview | 128,000 ํ ํฐ | ๋น ๋ฅธ ์ถ๋ก , ๋ณต์กํ ์ถ๋ก |
| o1 | 200,000 ํ ํฐ | ๋น ๋ฅธ ์ถ๋ก , ๋ณต์กํ ์ถ๋ก |
**Responses API:**
OpenAI๋ Chat Completions(๊ธฐ๋ณธ๊ฐ)์ ์๋ก์ด Responses API, ๋ ๊ฐ์ง API๋ฅผ ์ ๊ณตํฉ๋๋ค. Responses API๋ ๋ค์ดํฐ๋ธ ๋ฉํฐ๋ชจ๋ฌ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ฒ์๋ถํฐ ์ค๊ณ๋์์ผ๋ฉฐ, ํ
์คํธ, ์ด๋ฏธ์ง, ์ค๋์ค, ํจ์ ํธ์ถ์ด ๋ชจ๋ ์ผ๊ธ ๊ฐ์ฒด์
๋๋ค. ์ถ๋ก ๋ชจ๋ธ์์ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ๊ณ ์๋ ์ฒด์ด๋ ๋ฐ ๋ด์ฅ ๋๊ตฌ์ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
```python Code
from crewai import LLM
# Chat Completions ๋์ Responses API ์ฌ์ฉ
llm = LLM(
model="openai/gpt-4o",
api="responses", # Responses API ํ์ฑํ
store=True, # ๋ฉํฐํด์ ์ํ ์๋ต ์ ์ฅ (์ ํ์ฌํญ)
auto_chain=True, # ์ถ๋ก ๋ชจ๋ธ์ฉ ์๋ ์ฒด์ด๋ (์ ํ์ฌํญ)
)
```
**Responses API ํ๋ผ๋ฏธํฐ:**
- `api`: Responses API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด `"responses"`๋ก ์ค์ (๊ธฐ๋ณธ๊ฐ: `"completions"`)
- `instructions`: ์์คํ
๋ ๋ฒจ ์ง์นจ (Responses API ์ ์ฉ)
- `store`: ๋ฉํฐํด ๋ํ๋ฅผ ์ํ ์๋ต ์ ์ฅ ์ฌ๋ถ
- `previous_response_id`: ๋ฉํฐํด์ ์ํ ์ด์ ์๋ต ID
- `include`: ์๋ต์ ํฌํจํ ์ถ๊ฐ ๋ฐ์ดํฐ (์: `["reasoning.encrypted_content"]`)
- `builtin_tools`: OpenAI ๋ด์ฅ ๋๊ตฌ ๋ชฉ๋ก: `"web_search"`, `"file_search"`, `"code_interpreter"`, `"computer_use"`
- `parse_tool_outputs`: ํ์ฑ๋ ๋ด์ฅ ๋๊ตฌ ์ถ๋ ฅ๊ณผ ํจ๊ป ๊ตฌ์กฐํ๋ `ResponsesAPIResult` ๋ฐํ
- `auto_chain`: ๋ฉํฐํด ๋ํ๋ฅผ ์ํ ์๋ต ID ์๋ ์ถ์ ๋ฐ ์ฌ์ฉ
- `auto_chain_reasoning`: ZDR(์ ๋ก ๋ฐ์ดํฐ ๋ณด์กด) ์ค์๋ฅผ ์ํ ์ํธํ๋ ์ถ๋ก ํญ๋ชฉ ์ถ์
<Tip>
์ ํ๋ก์ ํธ, ํนํ ์ถ๋ก ๋ชจ๋ธ(o1, o3, o4)์ ์ฌ์ฉํ๊ฑฐ๋ [ํ์ผ](/ko/concepts/files)์ ๋ํ ๋ค์ดํฐ๋ธ ๋ฉํฐ๋ชจ๋ฌ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ Responses API๋ฅผ ์ฌ์ฉํ์ธ์.
</Tip>
</Accordion>
<Accordion title="Meta-Llama">
Meta์ Llama API๋ Meta์ ๋ํ ์ธ์ด ๋ชจ๋ธ ํจ๋ฐ๋ฆฌ ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค.
API๋ [Meta Llama API](https://llama.developer.meta.com?utm_source=partner-crewai&utm_medium=website)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
# Meta Llama API Key Configuration
LLAMA_API_KEY=LLM|your_api_key_here
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
from crewai import LLM
# Meta Llama LLM ์ด๊ธฐํ
llm = LLM(
model="meta_llama/Llama-4-Scout-17B-16E-Instruct-FP8",
temperature=0.8,
stop=["END"],
seed=42
)
```
https://llama.developer.meta.com/docs/models/ ์ ๊ธฐ์ฌ๋ ๋ชจ๋ ๋ชจ๋ธ์ด ์ง์๋ฉ๋๋ค.
| ๋ชจ๋ธ ID | ์
๋ ฅ ์ปจํ
์คํธ ๊ธธ์ด | ์ถ๋ ฅ ์ปจํ
์คํธ ๊ธธ์ด | ์
๋ ฅ ๋ชจ๋ฌ๋ฆฌํฐ | ์ถ๋ ฅ ๋ชจ๋ฌ๋ฆฌํฐ |
| ------- | ------------------ | ------------------ | ---------------- | ---------------- |
| `meta_llama/Llama-4-Scout-17B-16E-Instruct-FP8` | 128k | 4028 | ํ
์คํธ, ์ด๋ฏธ์ง | ํ
์คํธ |
| `meta_llama/Llama-4-Maverick-17B-128E-Instruct-FP8` | 128k | 4028 | ํ
์คํธ, ์ด๋ฏธ์ง | ํ
์คํธ |
| `meta_llama/Llama-3.3-70B-Instruct` | 128k | 4028 | ํ
์คํธ | ํ
์คํธ |
| `meta_llama/Llama-3.3-8B-Instruct` | 128k | 4028 | ํ
์คํธ | ํ
์คํธ |
</Accordion>
<Accordion title="Anthropic">
```toml Code
# Required
ANTHROPIC_API_KEY=sk-ant-...
# Optional
ANTHROPIC_API_BASE=<custom-base-url>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="anthropic/claude-3-sonnet-20240229-v1:0",
temperature=0.7
)
```
</Accordion>
<Accordion title="Google (Gemini API)">
`.env` ํ์ผ์ API ํค๋ฅผ ์ค์ ํ์ญ์์ค. ํค๊ฐ ํ์ํ๊ฑฐ๋ ๊ธฐ์กด ํค๋ฅผ ์ฐพ์ผ๋ ค๋ฉด [AI Studio](https://aistudio.google.com/apikey)๋ฅผ ํ์ธํ์ธ์.
```toml .env
# Gemini API ์ฌ์ฉ ์ (๋ค์ ์ค ํ๋)
GOOGLE_API_KEY=<your-api-key>
GEMINI_API_KEY=<your-api-key>
# Vertex AI Express ๋ชจ๋ ์ฌ์ฉ ์ (API ํค ์ธ์ฆ)
GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_API_KEY=<your-api-key>
# Vertex AI ์๋น์ค ๊ณ์ ์ฌ์ฉ ์
GOOGLE_CLOUD_PROJECT=<your-project-id>
GOOGLE_CLOUD_LOCATION=<location> # ๊ธฐ๋ณธ๊ฐ: us-central1
```
**๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ:**
```python Code
from crewai import LLM
llm = LLM(
model="gemini/gemini-2.0-flash",
temperature=0.7,
)
```
**Vertex AI Express ๋ชจ๋ (API ํค ์ธ์ฆ):**
Vertex AI Express ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋น์ค ๊ณ์ ์๊ฒฉ ์ฆ๋ช
๋์ ๊ฐ๋จํ API ํค ์ธ์ฆ์ผ๋ก Vertex AI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Vertex AI๋ฅผ ์์ํ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์
๋๋ค.
Express ๋ชจ๋๋ฅผ ํ์ฑํํ๋ ค๋ฉด `.env` ํ์ผ์ ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ชจ๋ ์ค์ ํ์ธ์:
```toml .env
GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_API_KEY=<your-api-key>
```
๊ทธ๋ฐ ๋ค์ ํ์์ฒ๋ผ LLM์ ์ฌ์ฉํ์ธ์:
```python Code
from crewai import LLM
llm = LLM(
model="gemini/gemini-2.0-flash",
temperature=0.7
)
```
<Info>
Express ๋ชจ๋ API ํค๋ฅผ ๋ฐ์ผ๋ ค๋ฉด:
- ์ ๊ท Google Cloud ์ฌ์ฉ์: [Express ๋ชจ๋ API ํค](https://cloud.google.com/vertex-ai/generative-ai/docs/start/quickstart?usertype=apikey) ๋ฐ๊ธฐ
- ๊ธฐ์กด Google Cloud ์ฌ์ฉ์: [์๋น์ค ๊ณ์ ์ ๋ฐ์ธ๋ฉ๋ Google Cloud API ํค](https://cloud.google.com/docs/authentication/api-keys) ๋ฐ๊ธฐ
์์ธํ ๋ด์ฉ์ [Vertex AI Express ๋ชจ๋ ๋ฌธ์](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/start/quickstart?usertype=apikey)๋ฅผ ์ฐธ์กฐํ์ธ์.
</Info>
### Gemini ๋ชจ๋ธ
Google์ ๋ค์ํ ์ฉ๋์ ์ต์ ํ๋ ๊ฐ๋ ฅํ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค.
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|----------------------------------|-----------------|------------------------------------------------------------------------|
| gemini-2.5-flash-preview-04-17 | 1M ํ ํฐ | ์ ์ํ ์ฌ๊ณ , ๋น์ฉ ํจ์จ์ฑ |
| gemini-2.5-pro-preview-05-06 | 1M ํ ํฐ | ํฅ์๋ ์ฌ๊ณ ๋ฐ ์ถ๋ก , ๋ฉํฐ๋ชจ๋ฌ ์ดํด, ๊ณ ๊ธ ์ฝ๋ฉ ๋ฑ |
| gemini-2.0-flash | 1M ํ ํฐ | ์ฐจ์ธ๋ ๊ธฐ๋ฅ, ์๋, ์ฌ๊ณ , ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ |
| gemini-2.0-flash-lite | 1M ํ ํฐ | ๋น์ฉ ํจ์จ์ฑ๊ณผ ๋ฎ์ ๋๊ธฐ ์๊ฐ |
| gemini-1.5-flash | 1M ํ ํฐ | ๋ฐธ๋ฐ์ค ์กํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, ๋๋ถ๋ถ์ ์์
์ ์ ํฉ |
| gemini-1.5-flash-8B | 1M ํ ํฐ | ๊ฐ์ฅ ๋น ๋ฅด๊ณ , ๋น์ฉ ํจ์จ์ , ๊ณ ๋น๋ ์์
์ ์ ํฉ |
| gemini-1.5-pro | 2M ํ ํฐ | ์ต๊ณ ์ ์ฑ๋ฅ, ๋
ผ๋ฆฌ์ ์ถ๋ก , ์ฝ๋ฉ, ์ฐฝ์์ ํ์
๋ฑ ๋ค์ํ ์ถ๋ก ์์
์ ์ ํฉ |
์ ์ฒด ๋ชจ๋ธ ๋ชฉ๋ก์ [Gemini ๋ชจ๋ธ ๋ฌธ์](https://ai.google.dev/gemini-api/docs/models)์์ ํ์ธํ ์ ์์ต๋๋ค.
### Gemma
Gemini API๋ฅผ ํตํด Google ์ธํ๋ผ์์ ํธ์คํ
๋๋ [Gemma ๋ชจ๋ธ](https://ai.google.dev/gemma/docs)๋ API ํค๋ฅผ ์ด์ฉํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ |
|----------------|----------------|
| gemma-3-1b-it | 32k ํ ํฐ |
| gemma-3-4b-it | 32k ํ ํฐ |
| gemma-3-12b-it | 32k ํ ํฐ |
| gemma-3-27b-it | 128k ํ ํฐ |
</Accordion>
<Accordion title="Google (Vertex AI)">
Google Cloud Console์์ ์๊ฒฉ์ฆ๋ช
์ ๋ฐ์ JSON ํ์ผ๋ก ์ ์ฅํ ํ, ๋ค์ ์ฝ๋๋ก ๋ก๋ํ์ธ์:
```python Code
import json
file_path = 'path/to/vertex_ai_service_account.json'
# Load the JSON file
with open(file_path, 'r') as file:
vertex_credentials = json.load(file)
# Convert the credentials to a JSON string
vertex_credentials_json = json.dumps(vertex_credentials)
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
from crewai import LLM
llm = LLM(
model="gemini-1.5-pro-latest", # or vertex_ai/gemini-1.5-pro-latest
temperature=0.7,
vertex_credentials=vertex_credentials_json
)
```
Google์ ๋ค์ํ ์ฉ๋์ ์ต์ ํ๋ ๊ฐ๋ ฅํ ๋ชจ๋ธ๋ค์ ์ ๊ณตํฉ๋๋ค:
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|----------------------------------|-----------------|------------------------------------------------------------------------|
| gemini-2.5-flash-preview-04-17 | 1M ํ ํฐ | ์ ์ํ ์ฌ๊ณ , ๋น์ฉ ํจ์จ์ฑ |
| gemini-2.5-pro-preview-05-06 | 1M ํ ํฐ | ํฅ์๋ ์ฌ๊ณ ๋ฐ ์ถ๋ก , ๋ฉํฐ๋ชจ๋ฌ ์ดํด, ๊ณ ๊ธ ์ฝ๋ฉ ๋ฑ |
| gemini-2.0-flash | 1M ํ ํฐ | ์ฐจ์ธ๋ ๊ธฐ๋ฅ, ์๋, ์ฌ๊ณ , ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ |
| gemini-2.0-flash-lite | 1M ํ ํฐ | ๋น์ฉ ํจ์จ์ฑ๊ณผ ๋ฎ์ ๋๊ธฐ ์๊ฐ |
| gemini-1.5-flash | 1M ํ ํฐ | ๋ฐธ๋ฐ์ค ์กํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, ๋๋ถ๋ถ์ ์์
์ ์ ํฉ |
| gemini-1.5-flash-8B | 1M ํ ํฐ | ๊ฐ์ฅ ๋น ๋ฅด๊ณ , ๋น์ฉ ํจ์จ์ , ๊ณ ๋น๋ ์์
์ ์ ํฉ |
| gemini-1.5-pro | 2M ํ ํฐ | ์ต๊ณ ์ ์ฑ๋ฅ, ๋
ผ๋ฆฌ์ ์ถ๋ก , ์ฝ๋ฉ, ์ฐฝ์์ ํ์
๋ฑ ๋ค์ํ ์ถ๋ก ์์
์ ์ ํฉ |
</Accordion>
<Accordion title="Azure">
```toml Code
# Required
AZURE_API_KEY=<your-api-key>
AZURE_API_BASE=<your-resource-url>
AZURE_API_VERSION=<api-version>
# Optional
AZURE_AD_TOKEN=<your-azure-ad-token>
AZURE_API_TYPE=<your-azure-api-type>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="azure/gpt-4",
api_version="2023-05-15"
)
```
</Accordion>
<Accordion title="AWS Bedrock">
```toml Code
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>
AWS_DEFAULT_REGION=<your-region>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="bedrock/anthropic.claude-3-sonnet-20240229-v1:0"
)
```
Amazon Bedrock์ ์ฌ์ฉํ๊ธฐ ์ ์, ํ๊ฒฝ์ boto3๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ญ์์ค.
[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html)์ ๋ํ์ ์ธ AI ํ์ฌ๋ค์ ์ฌ๋ฌ ํ์ด๋ฐ์ด์
๋ชจ๋ธ์ ํตํฉ API๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋ ๋งค๋์ง๋ ์๋น์ค๋ก, ์์ ํ๊ณ ์ฑ
์๊ฐ ์๋ AI ์์ฉํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ค๋๋ค.
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|-----------------------------|--------------------|------------------------------------------------------------------------|
| Amazon Nova Pro | ์ต๋ 300k ํ ํฐ | ๋ค์ํ ์์
์์ ์ ํ์ฑ, ์๋, ๋น์ฉ์ ๊ท ํ ์๊ฒ ์ ๊ณตํ๋ ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ |
| Amazon Nova Micro | ์ต๋ 128k ํ ํฐ | ํ
์คํธ ์ ์ฉ, ์ต์ ๋ ์ดํด์ ์๋ต์ ์ต์ ํ๋ ๋น์ฉ ํจ์จ์ ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ |
| Amazon Nova Lite | ์ต๋ 300k ํ ํฐ | ์ด๋ฏธ์ง, ๋น๋์ค, ํ
์คํธ๋ฅผ ์์ฐ๋ฅด๋ ์ค์๊ฐ ๋ฉํฐ๋ชจ๋ฌ ์ฒ๋ฆฌ |
| Claude 3.7 Sonnet | ์ต๋ 128k ํ ํฐ | ๋ณต์กํ ์ถ๋ก , ์ฝ๋ฉ ๋ฐ AI ์์ด์ ํธ์ ์ ํฉํ ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ |
| Claude 3.5 Sonnet v2 | ์ต๋ 200k ํ ํฐ | ์ํํธ์จ์ด ๊ณตํ, ์์ด์ ํธ ๊ธฐ๋ฅ, ์ปดํจํฐ ์ํธ์์ฉ์ ํนํ๋ ์ต์ ๋ชจ๋ธ |
| Claude 3.5 Sonnet | ์ต๋ 200k ํ ํฐ | ๋ค์ํ ์์
์ ํ์ํ ์ง๋ฅ ๋ฐ ์ถ๋ก ์ ๊ณต, ์ต์ ์ ์๋ยท๋น์ฉ ๋ชจ๋ธ |
| Claude 3.5 Haiku | ์ต๋ 200k ํ ํฐ | ๋น ๋ฅด๊ณ ์ปดํฉํธํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, ์ ์ํ๊ณ ์์ฐ์ค๋ฌ์ด ๋ํ์ ์ต์ |
| Claude 3 Sonnet | ์ต๋ 200k ํ ํฐ | ์ง๋ฅ๊ณผ ์๋์ ๊ท ํ ์กํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, ๋๊ท๋ชจ ๋ฐฐํฌ์ ์ ํฉ |
| Claude 3 Haiku | ์ต๋ 200k ํ ํฐ | ์ปดํฉํธํ ๊ณ ์ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, ์ ์ํ ์๋ต๊ณผ ์์ฐ์ค๋ฌ์ด ๋ํํ ์ํธ์์ฉ |
| Claude 3 Opus | ์ต๋ 200k ํ ํฐ | ์ธ๊ฐ ๊ฐ์ ์ถ๋ก ๊ณผ ์ฐ์ํ ๋ฌธ๋งฅ ์ดํด๋ก ๋ณต์กํ ์์
์ํ |
| Claude 2.1 | ์ต๋ 200k ํ ํฐ | ํ์ฅ๋ ์ปจํ
์คํธ, ์ ๋ขฐ๋ ๊ฐ์ , ๋ก๋ดํ ๊ฐ์, ์ฅ๋ฌธ ๋ฐ RAG ์ ์ฉ์ ์ ํฉ |
| Claude | ์ต๋ 100k ํ ํฐ | ๋ณต์กํ ๋ํ, ์ฐฝ์์ ์ฝํ
์ธ ์์ฑ, ์ ๊ตํ ์ง์ ์ํ์ ํ์ |
| Claude Instant | ์ต๋ 100k ํ ํฐ | ์ผ์ ๋ํ, ๋ถ์, ์์ฝ, ๋ฌธ์ Q&A ๋ฑ ๋น ๋ฅด๊ณ ๋น์ฉ ํจ์จ์ ์ธ ๋ชจ๋ธ |
| Llama 3.1 405B Instruct | ์ต๋ 128k ํ ํฐ | ์ฑ๋ด, ์ฝ๋ฉ, ๋๋ฉ์ธ ํนํ ์์
์ ์ํ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ ๋ฐ ์ถ๋ก ์ฉ ์ฒจ๋จ LLM |
| Llama 3.1 70B Instruct | ์ต๋ 128k ํ ํฐ | ๋ณต์กํ ๋ํ, ์ฐ์ํ ๋ฌธ๋งฅ ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ ๋ฅ๋ ฅ ๊ฐํ |
| Llama 3.1 8B Instruct | ์ต๋ 128k ํ ํฐ | ์ฐ์ํ ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ ๊ธฐ๋ฅ์ ์ต์ฒจ๋จ ๋ชจ๋ธ |
| Llama 3 70B Instruct | ์ต๋ 8k ํ ํฐ | ๋ณต์กํ ๋ํ, ์ฐ์ํ ๋ฌธ๋งฅ ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ ๊ธฐ๋ฅ ๊ฐํ |
| Llama 3 8B Instruct | ์ต๋ 8k ํ ํฐ | ์ฒจ๋จ ์ธ์ด ์ดํด๋ ฅ, ์ถ๋ก , ํ
์คํธ ์์ฑ์ด ๊ฐ๋ฅํ ์ต์ฒจ๋จ LLM |
| Titan Text G1 - Lite | ์ต๋ 4k ํ ํฐ | ์์ด ๊ณผ์ ๋ฐ ์์ฝ, ์ฝํ
์ธ ์์ฑ์ ์ต์ ํ๋ ๊ฒฝ๋ ๋น์ฉ ํจ์จ์ ๋ชจ๋ธ |
| Titan Text G1 - Express | ์ต๋ 8k ํ ํฐ | ์ผ๋ฐ ์ธ์ด, ๋ํ, RAG ์ง์, ์์ด ๋ฐ 100์ฌ ๊ฐ ์ธ์ด ์ง์ |
| Cohere Command | ์ต๋ 4k ํ ํฐ | ์ฌ์ฉ์์ ๋ช
๋ น ์ํ, ์ค์ง์ ๊ธฐ์
์๋ฃจ์
์ ๊ณต์ ํนํ๋ ๋ชจ๋ธ |
| Jurassic-2 Mid | ์ต๋ 8,191 ํ ํฐ | ๋ค์ํ ์ธ์ด ๊ณผ์ (Q&A, ์์ฝ, ์์ฑ ๋ฑ)์ ์ ํฉํ ํ์ง-๋น์ฉ ๊ท ํ ๋ชจ๋ธ |
| Jurassic-2 Ultra | ์ต๋ 8,191 ํ ํฐ | ๊ณ ๊ธ ํ
์คํธ ์์ฑ๊ณผ ์ดํด, ๋ถ์ ๋ฐ ์ฝํ
์ธ ์ ์ ๋ฑ ๋ณต์กํ ์์
์ํ |
| Jamba-Instruct | ์ต๋ 256k ํ ํฐ | ๋น์ฉ ํจ์จ์ ์ธ ๋์ฉ๋ ๋ฌธ๋งฅ ์ฐฝ์, ์์ฝ, Q&A์ ์ต์ ํ๋ ๋ชจ๋ธ |
| Mistral 7B Instruct | ์ต๋ 32k ํ ํฐ | ๋ช
๋ น์ ๋ฐ๋ฅด๊ณ , ์์ฒญ์ ์์ฑํ๋ฉฐ, ์ฐฝ์์ ํ
์คํธ๋ฅผ ์์ฑํ๋ LLM |
| Mistral 8x7B Instruct | ์ต๋ 32k ํ ํฐ | ๋ช
๋ น ๋ฐ ์์ฒญ ์์ฑ, ์ฐฝ์์ ํ
์คํธ ์์ฑ์ด ๊ฐ๋ฅํ MOE LLM |
</Accordion>
<Accordion title="Amazon SageMaker">
```toml Code
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>
AWS_DEFAULT_REGION=<your-region>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="sagemaker/<my-endpoint>"
)
```
</Accordion>
<Accordion title="Mistral">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
MISTRAL_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="mistral/mistral-large-latest",
temperature=0.7
)
```
</Accordion>
<Accordion title="Nvidia NIM">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
NVIDIA_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="nvidia_nim/meta/llama3-70b-instruct",
temperature=0.7
)
```
Nvidia NIM์ ์ผ๋ฐ ๋ชฉ์ ์์
๋ถํฐ ํน์ ๋ชฉ์ ์์ฉ๊น์ง ๋ค์ํ ์ฉ๋๋ฅผ ์ํ ๋ชจ๋ธ ์ ํ๊ตฐ์ ์ ๊ณตํฉ๋๋ค.
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|------------------------------------------------------------------------|----------------|---------------------------------------------------------------------|
| nvidia/mistral-nemo-minitron-8b-8k-instruct | 8,192 ํ ํฐ | ์ฑ๋ด, ๊ฐ์ ๋น์, ์ฝํ
์ธ ์์ฑ์ ์ํ ์ต์ ํ ์ํ ์ธ์ด ๋ชจ๋ธ |
| nvidia/nemotron-4-mini-hindi-4b-instruct | 4,096 ํ ํฐ | ํ๋-์์ด SLM, ํ๋ ์ธ์ด ์ ์ฉ ์จ๋๋ฐ์ด์ค ์ถ๋ก |
| nvidia/llama-3.1-nemotron-70b-instruct | 128k ํ ํฐ | ๋์ฑ ๋์์ด ๋๋ ๋ต๋ณ์ ์ํด ์ปค์คํฐ๋ง์ด์ฆ๋จ |
| nvidia/llama3-chatqa-1.5-8b | 128k ํ ํฐ | ์ฑ๋ด, ๊ฒ์์์ง์ฉ ๋งฅ๋ฝ ์ธ์ ์๋ต ์์ฑ์ ํ์ํ ๊ณ ๊ธ LLM |
| nvidia/llama3-chatqa-1.5-70b | 128k ํ ํฐ | ์ฑ๋ด, ๊ฒ์์์ง์ฉ ๋งฅ๋ฝ ์ธ์ ์๋ต ์์ฑ์ ํ์ํ ๊ณ ๊ธ LLM |
| nvidia/vila | 128k ํ ํฐ | ํ
์คํธ/์ด๋ฏธ์ง/๋น๋์ค ์ดํด ๋ฐ ์ ๋ณด์ฑ ์๋ต ์์ฑ์ ์ง์ํ๋ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ |
| nvidia/neva-22 | 4,096 ํ ํฐ | ํ
์คํธ/์ด๋ฏธ์ง ์ดํด ๋ฐ ์ ๋ณด์ฑ ์๋ต ์์ฑ์ ์ง์ํ๋ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ |
| nvidia/nemotron-mini-4b-instruct | 8,192 ํ ํฐ | ์ผ๋ฐ ๋ชฉ์ ์์
|
| nvidia/usdcode-llama3-70b-instruct | 128k ํ ํฐ | OpenUSD ์ง์ ์ง์ ์๋ต, USD-Python ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ ์ต์ LLM |
| nvidia/nemotron-4-340b-instruct | 4,096 ํ ํฐ | ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ฌํ๋ ๋ค์ํ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ |
| meta/codellama-70b | 100k ํ ํฐ | ์์ฐ์ด โ ์ฝ๋ ๋ฐ ์ฝ๋ โ ์์ฐ์ด ์ ํ ๊ฐ๋ฅํ LLM |
| meta/llama2-70b | 4,096 ํ ํฐ | ํ
์คํธ, ์ฝ๋ ์์ฑ์ ์ต์ ํ๋ ์ต์ฒจ๋จ ๋ํ ์ธ์ด ๋ชจ๋ธ |
| meta/llama3-8b-instruct | 8,192 ํ ํฐ | ์ต์ฒจ๋จ ์ธ์ด ์ดํด ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ ๊ธฐ๋ฅ ๋ชจ๋ธ |
| meta/llama3-70b-instruct | 8,192 ํ ํฐ | ๋ณต์กํ ๋ํ, ์ฐ์ํ ๋ฌธ๋งฅ ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ |
| meta/llama-3.1-8b-instruct | 128k ํ ํฐ | ์ต์ฒจ๋จ ์ธ์ด ์ดํด ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ ๊ธฐ๋ฅ์ ์ฒจ๋จ ๋ชจ๋ธ |
| meta/llama-3.1-70b-instruct | 128k ํ ํฐ | ๋ณต์กํ ๋ํ, ์ฐ์ํ ๋ฌธ๋งฅ ๋ฐ ์ถ๋ก , ํ
์คํธ ์์ฑ |
| meta/llama-3.1-405b-instruct | 128k ํ ํฐ | ์ฑ๋ด, ์ฝ๋ฉ, ๋๋ฉ์ธ ํนํ ์์
ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ ๋ฐ ์ถ๋ก |
| meta/llama-3.2-1b-instruct | 128k ํ ํฐ | ์ต์ฒจ๋จ ์ํ ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| meta/llama-3.2-3b-instruct | 128k ํ ํฐ | ์ต์ฒจ๋จ ์ํ ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ |
| meta/llama-3.2-11b-vision-instruct | 128k ํ ํฐ | ์ต์ฒจ๋จ ์ํ ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ |
| meta/llama-3.2-90b-vision-instruct | 128k ํ ํฐ | ์ต์ฒจ๋จ ์ํ ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ |
| google/gemma-7b | 8,192 ํ ํฐ | ๋ฌธ์์ด์ ์ดํด, ๋ณํ, ์ฝ๋ ์์ฑ์ ์ง์ํ๋ ์ต์ฒจ๋จ ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| google/gemma-2b | 8,192 ํ ํฐ | ๋ฌธ์์ด์ ์ดํด, ๋ณํ, ์ฝ๋ ์์ฑ์ ์ง์ํ๋ ์ต์ฒจ๋จ ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| google/codegemma-7b | 8,192 ํ ํฐ | ์ฝ๋ ์์ฑ ๋ฐ ๋ณด์์ ํนํ๋ Google Gemma-7B ๊ธฐ๋ฐ ๋ชจ๋ธ |
| google/codegemma-1.1-7b | 8,192 ํ ํฐ | ์ฝ๋ ์์ฑ, ๋ณด์, ์ถ๋ก , ๋ช
๋ น ์ํ์ ๊ฐ์ ์ ๊ฐ์ง ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ |
| google/recurrentgemma-2b | 8,192 ํ ํฐ | ๊ธด ์ํ์ค ์์ฑ ์ ๋น ๋ฅธ ์ถ๋ก ์ ๊ฐ๋ฅ์ผ ํ๋ ์ํ ์ํคํ
์ฒ LLM |
| google/gemma-2-9b-it | 8,192 ํ ํฐ | ๋ฌธ์์ด์ ์ดํด, ๋ณํ, ์ฝ๋ ์์ฑ์ ์ง์ํ๋ ์ต์ฒจ๋จ ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| google/gemma-2-27b-it | 8,192 ํ ํฐ | ๋ฌธ์์ด์ ์ดํด, ๋ณํ, ์ฝ๋ ์์ฑ์ ์ง์ํ๋ ์ต์ฒจ๋จ ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| google/gemma-2-2b-it | 8,192 ํ ํฐ | ๋ฌธ์์ด์ ์ดํด, ๋ณํ, ์ฝ๋ ์์ฑ์ ์ง์ํ๋ ์ต์ฒจ๋จ ํ
์คํธ ์์ฑ ๋ชจ๋ธ |
| google/deplot | 512 ํ ํฐ | ํ๋กฏ ์ด๋ฏธ์ง๋ฅผ ํ๋ก ๋ณํํ๋ ์์ท ๋น์ฃผ์ผ ์ธ์ด ์ดํด ๋ชจ๋ธ |
| google/paligemma | 8,192 ํ ํฐ | ํ
์คํธ, ์ด๋ฏธ์ง ์
๋ ฅ ์ดํด ๋ฐ ์ ๋ณด์ฑ ์๋ต ์์ฑ์ ๋ฅํ ๋น์ ์ธ์ด ๋ชจ๋ธ |
| mistralai/mistral-7b-instruct-v0.2 | 32k ํ ํฐ | ๋ช
๋ น์ ๋ฐ๋ฅด๊ณ , ์์ฒญ์ ์์ฑํ๋ฉฐ, ์ฐฝ์์ ํ
์คํธ ์์ฑ์ด ๊ฐ๋ฅํ LLM |
| mistralai/mixtral-8x7b-instruct-v0.1 | 8,192 ํ ํฐ | ๋ช
๋ น ๋ฐ ์์ฒญ ์์ฑ, ์ฐฝ์ ํ
์คํธ ์์ฑ์ด ๊ฐ๋ฅํ MOE LLM |
| mistralai/mistral-large | 4,096 ํ ํฐ | ์ค์ ๋ฐ์ดํฐ ํน์ฑ์ ๋ชจ๋ฐฉํ๋ ๋ค์ํ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ |
| mistralai/mixtral-8x22b-instruct-v0.1 | 8,192 ํ ํฐ | ์ค์ ๋ฐ์ดํฐ ํน์ฑ์ ๋ชจ๋ฐฉํ๋ ๋ค์ํ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ |
| mistralai/mistral-7b-instruct-v0.3 | 32k ํ ํฐ | ๋ช
๋ น์ ๋ฐ๋ฅด๊ณ , ์์ฒญ์ ์์ฑํ๋ฉฐ, ์ฐฝ์์ ํ
์คํธ ์์ฑ์ด ๊ฐ๋ฅํ LLM |
| nv-mistralai/mistral-nemo-12b-instruct | 128k ํ ํฐ | ์ถ๋ก , ์ฝ๋, ๋ค๊ตญ์ด ์์
์ ์ ํฉํ ์ต์ฒจ๋จ ์ธ์ด ๋ชจ๋ธ; ๋จ์ผ GPU์์ ๊ตฌ๋ |
| mistralai/mamba-codestral-7b-v0.1 | 256k ํ ํฐ | ๊ด๋ฒ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ์์
์์ ์ฝ๋ ์์ฑ ๋ฐ ์ํธ์์ฉ ์ ์ฉ ๋ชจ๋ธ |
| microsoft/phi-3-mini-128k-instruct | 128K ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3-mini-4k-instruct | 4,096 ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3-small-8k-instruct | 8,192 ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3-small-128k-instruct | 128K ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3-medium-4k-instruct | 4,096 ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3-medium-128k-instruct | 128K ํ ํฐ | ์ํยท๋
ผ๋ฆฌ ์ถ๋ก ์ ๊ฐํ ๊ฒฝ๋ ์ต์ ๊ณต๊ฐ LLM |
| microsoft/phi-3.5-mini-instruct | 128K ํ ํฐ | ์ง์ฐ, ๋ฉ๋ชจ๋ฆฌ/์ปดํจํธ ํ๊ณ ํ๊ฒฝ์์ AI ์์ฉํ๋ก๊ทธ๋จ ๊ตฌ๋ ๊ฐ๋ฅํ ๋ค๊ตญ์ด LLM |
| microsoft/phi-3.5-moe-instruct | 128K ํ ํฐ | ์ฐ์ฐ ํจ์จ์ ์ฝํ
์ธ ์์ฑ์ ์ํ Mixture of Experts ๊ธฐ๋ฐ ์ฒจ๋จ LLM |
| microsoft/kosmos-2 | 1,024 ํ ํฐ | ์ด๋ฏธ์ง์ ์๊ฐ์ ์์ ์ดํด ๋ฐ ์ถ๋ก ์ ์ํ ํ๊ธฐ์ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ |
| microsoft/phi-3-vision-128k-instruct | 128k ํ ํฐ | ์ด๋ฏธ์ง์์ ๊ณ ํ์ง ์ถ๋ก ์ด ๊ฐ๋ฅํ ์ต์ฒจ๋จ ๊ณต๊ฐ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ |
| microsoft/phi-3.5-vision-instruct | 128k ํ ํฐ | ์ด๋ฏธ์ง์์ ๊ณ ํ์ง ์ถ๋ก ์ด ๊ฐ๋ฅํ ์ต์ฒจ๋จ ๊ณต๊ฐ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ |
| databricks/dbrx-instruct | 12k ํ ํฐ | ์ธ์ด ์ดํด, ์ฝ๋ฉ, RAG์ ์ต์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๋ฒ์ฉ LLM |
| snowflake/arctic | 1,024 ํ ํฐ | SQL ์์ฑ ๋ฐ ์ฝ๋ฉ์ ์ง์คํ ๊ธฐ์
์ฉ ๊ณ ํจ์จ ์ถ๋ก ๋ชจ๋ธ |
| aisingapore/sea-lion-7b-instruct | 4,096 ํ ํฐ | ๋๋จ์ ์ธ์ด ๋ฐ ๋ฌธํ ๋ค์์ฑ์ ๋ฐ์ํ๋ LLM |
| ibm/granite-8b-code-instruct | 4,096 ํ ํฐ | ์ํํธ์จ์ด ํ๋ก๊ทธ๋๋ฐ LLM, ์ฝ๋ ์์ฑ, ์์ฑ, ์ค๋ช
, ๋ฉํฐํด ์ ํ |
| ibm/granite-34b-code-instruct | 8,192 ํ ํฐ | ์ํํธ์จ์ด ํ๋ก๊ทธ๋๋ฐ LLM, ์ฝ๋ ์์ฑ, ์์ฑ, ์ค๋ช
, ๋ฉํฐํด ์ ํ |
| ibm/granite-3.0-8b-instruct | 4,096 ํ ํฐ | RAG, ์์ฝ, ๋ถ๋ฅ, ์ฝ๋, ์์ด์ ํฑAI ์ง์ ์ฒจ๋จ ์ํ ์ธ์ด ๋ชจ๋ธ |
| ibm/granite-3.0-3b-a800m-instruct | 4,096 ํ ํฐ | RAG, ์์ฝ, ์ํฐํฐ ์ถ์ถ, ๋ถ๋ฅ์ ์ต์ ํ๋ ๊ณ ํจ์จ Mixture of Experts ๋ชจ๋ธ |
| mediatek/breeze-7b-instruct | 4,096 ํ ํฐ | ์ค์ ๋ฐ์ดํฐ ํน์ฑ์ ๋ชจ๋ฐฉํ๋ ๋ค์ํ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ |
| upstage/solar-10.7b-instruct | 4,096 ํ ํฐ | ์ง์ ๋ฐ๋ฅด๊ธฐ, ์ถ๋ก , ์ํ ๋ฑ์์ ๋ฐ์ด๋ NLP ์์
์ํ |
| writer/palmyra-med-70b-32k | 32k ํ ํฐ | ์๋ฃ ๋ถ์ผ์์ ์ ํํ๊ณ ๋ฌธ๋งฅ์ ๋ง๋ ์๋ต ์์ฑ์ ์ ๋์ ์ธ LLM |
| writer/palmyra-med-70b | 32k ํ ํฐ | ์๋ฃ ๋ถ์ผ์์ ์ ํํ๊ณ ๋ฌธ๋งฅ์ ๋ง๋ ์๋ต ์์ฑ์ ์ ๋์ ์ธ LLM |
| writer/palmyra-fin-70b-32k | 32k ํ ํฐ | ๊ธ์ต ๋ถ์, ๋ณด๊ณ , ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํนํ๋ LLM |
| 01-ai/yi-large | 32k ํ ํฐ | ์์ด, ์ค๊ตญ์ด๋ก ํ๋ จ, ์ฑ๋ด ๋ฐ ์ฐฝ์์ ๊ธ์ฐ๊ธฐ ๋ฑ ๋ค์ํ ์์
์ ์ฌ์ฉ |
| deepseek-ai/deepseek-coder-6.7b-instruct | 2k ํ ํฐ | ๊ณ ๊ธ ์ฝ๋ ์์ฑ, ์์ฑ, ์ธํ๋ง ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ์ฝ๋ฉ ๋ชจ๋ธ |
| rakuten/rakutenai-7b-instruct | 1,024 ํ ํฐ | ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ์ด ํ์ํ ์ต์ฒจ๋จ LLM |
| rakuten/rakutenai-7b-chat | 1,024 ํ ํฐ | ์ธ์ด ์ดํด, ์ถ๋ก , ํ
์คํธ ์์ฑ์ด ํ์ํ ์ต์ฒจ๋จ LLM |
| baichuan-inc/baichuan2-13b-chat | 4,096 ํ ํฐ | ์ค๊ตญ์ด ๋ฐ ์์ด ๋ํ, ์ฝ๋ฉ, ์ํ, ์ง์ ๋ฐ๋ฅด๊ธฐ, ํด์ฆ ํ์ด ์ง์ |
</Accordion>
<Accordion title="Local NVIDIA NIM Deployed using WSL2">
NVIDIA NIM์ ์ด์ฉํ๋ฉด Windows ๊ธฐ๊ธฐ์์ WSL2(Windows Subsystem for Linux)๋ฅผ ํตํด ๊ฐ๋ ฅํ LLM์ ๋ก์ปฌ๋ก ์คํํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ์์ Nvidia GPU๋ฅผ ํ์ฉํ์ฌ ํ๋ผ์ด๋นํ๊ณ , ์์ ํ๋ฉฐ, ๋น์ฉ ํจ์จ์ ์ธ AI ์ถ๋ก ์ ํด๋ผ์ฐ๋ ์๋น์ค์ ์์กดํ์ง ์๊ณ ๊ตฌํํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํ๋ผ์ด๋ฒ์, ์คํ๋ผ์ธ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฐ๋ฐ, ํ
์คํธ, ๋๋ ํ๋ก๋์
ํ๊ฒฝ์ ์ต์ ์
๋๋ค.
๋ก์ปฌ NVIDIA NIM ๋ชจ๋ธ ์ค์น ๋จ๊ณ๋ณ ๊ฐ์ด๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. [NVIDIA ํํ์ด์ง](https://docs.nvidia.com/nim/wsl2/latest/getting-started.html)์ ์ค์น ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
2. ๋ก์ปฌ ๋ชจ๋ธ์ ์ค์นํฉ๋๋ค. Llama 3.1-8b๋ [์ฌ๊ธฐ](https://build.nvidia.com/meta/llama-3_1-8b-instruct/deploy) ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์.
3. crewai ๋ก์ปฌ ๋ชจ๋ธ์ ๊ตฌ์ฑํ์ธ์:
```python Code
from crewai.llm import LLM
local_nvidia_nim_llm = LLM(
model="openai/meta/llama-3.1-8b-instruct", # it's an openai-api compatible model
base_url="http://localhost:8000/v1",
api_key="<your_api_key|any text if you have not configured it>", # api_key is required, but you can use any text
)
# ๊ทธ๋ฐ ๋ค์ crew์์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
@CrewBase
class MyCrew():
# ...
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config['researcher'], # type: ignore[index]
llm=local_nvidia_nim_llm
)
# ...
```
</Accordion>
<Accordion title="Groq">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
GROQ_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="groq/llama-3.2-90b-text-preview",
temperature=0.7
)
```
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|-----------------|-------------------|----------------------------------|
| Llama 3.1 70B/8B| 131,072 ํ ํฐ | ๊ณ ์ฑ๋ฅ, ๋์ฉ๋ ๋ฌธ๋งฅ ์์
|
| Llama 3.2 Series| 8,192 ํ ํฐ | ๋ฒ์ฉ ์์
|
| Mixtral 8x7B | 32,768 ํ ํฐ | ์ฑ๋ฅ๊ณผ ๋ฌธ๋งฅ์ ๊ท ํ |
</Accordion>
<Accordion title="IBM watsonx.ai">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
# Required
WATSONX_URL=<your-url>
WATSONX_APIKEY=<your-apikey>
WATSONX_PROJECT_ID=<your-project-id>
# Optional
WATSONX_TOKEN=<your-token>
WATSONX_DEPLOYMENT_SPACE_ID=<your-space-id>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="watsonx/meta-llama/llama-3-1-70b-instruct",
base_url="https://api.watsonx.ai/v1"
)
```
</Accordion>
<Accordion title="Ollama (Local LLMs)">
1. Ollama ์ค์น: [ollama.ai](https://ollama.ai/)
2. ๋ชจ๋ธ ์คํ: `ollama run llama3`
3. ๊ตฌ์ฑ:
```python Code
llm = LLM(
model="ollama/llama3:70b",
base_url="http://localhost:11434"
)
```
</Accordion>
<Accordion title="Fireworks AI">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
FIREWORKS_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct",
temperature=0.7
)
```
</Accordion>
<Accordion title="Perplexity AI">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
PERPLEXITY_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="llama-3.1-sonar-large-128k-online",
base_url="https://api.perplexity.ai/"
)
```
</Accordion>
<Accordion title="Hugging Face">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
HF_TOKEN=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct"
)
```
</Accordion>
<Accordion title="SambaNova">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
SAMBANOVA_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="sambanova/Meta-Llama-3.1-8B-Instruct",
temperature=0.7
)
```
| ๋ชจ๋ธ | ์ปจํ
์คํธ ์๋์ฐ | ์ต์ ์ฉ๋ |
|-----------------|---------------------|--------------------------------------|
| Llama 3.1 70B/8B| ์ต๋ 131,072 ํ ํฐ | ๊ณ ์ฑ๋ฅ, ๋์ฉ๋ ๋ฌธ๋งฅ ์์
|
| Llama 3.1 405B | 8,192 ํ ํฐ | ๊ณ ์ฑ๋ฅ, ๋์ ์ถ๋ ฅ ํ์ง |
| Llama 3.2 Series| 8,192 ํ ํฐ | ๋ฒ์ฉ, ๋ฉํฐ๋ชจ๋ฌ ์์
|
| Llama 3.3 70B | ์ต๋ 131,072 ํ ํฐ | ๊ณ ์ฑ๋ฅ, ๋์ ์ถ๋ ฅ ํ์ง |
| Qwen2 familly | 8,192 ํ ํฐ | ๊ณ ์ฑ๋ฅ, ๋์ ์ถ๋ ฅ ํ์ง |
</Accordion>
<Accordion title="Cerebras">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
# Required
CEREBRAS_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="cerebras/llama3.1-70b",
temperature=0.7,
max_tokens=8192
)
```
<Info>
Cerebras ํน์ง:
- ๋น ๋ฅธ ์ถ๋ก ์๋
- ๊ฒฝ์๋ ฅ ์๋ ๊ฐ๊ฒฉ
- ์๋์ ํ์ง์ ์ฐ์ํ ๋ฐธ๋ฐ์ค
- ๊ธด ์ปจํ
์คํธ ์๋์ฐ ์ง์
</Info>
</Accordion>
<Accordion title="Open Router">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
OPENROUTER_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="openrouter/deepseek/deepseek-r1",
base_url="https://openrouter.ai/api/v1",
api_key=OPENROUTER_API_KEY
)
```
<Info>
Open Router ๋ชจ๋ธ:
- openrouter/deepseek/deepseek-r1
- openrouter/deepseek/deepseek-chat
</Info>
</Accordion>
<Accordion title="Nebius AI Studio">
`.env` ํ์ผ์ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค:
```toml Code
NEBIUS_API_KEY=<your-api-key>
```
CrewAI ํ๋ก์ ํธ์์์ ์์ ์ฌ์ฉ๋ฒ:
```python Code
llm = LLM(
model="nebius/Qwen/Qwen3-30B-A3B"
)
```
<Info>
Nebius AI Studio ํน์ง:
- ๋๊ท๋ชจ ์คํ์์ค ๋ชจ๋ธ ๋ณด์
- ๋์ ์๋ ์ ํ
- ๊ฒฝ์๋ ฅ ์๋ ๊ฐ๊ฒฉ
- ์๋์ ํ์ง์ ์ฐ์ํ ๋ฐธ๋ฐ์ค
</Info>
</Accordion>
</AccordionGroup>
## ์คํธ๋ฆฌ๋ฐ ์๋ต
CrewAI๋ LLM์ ์คํธ๋ฆฌ๋ฐ ์๋ต์ ์ง์ํ์ฌ, ์ ํ๋ฆฌ์ผ์ด์
์ด ์ถ๋ ฅ๋ฌผ์ ์์ฑ๋๋ ์ฆ์ ์ค์๊ฐ์ผ๋ก ์์ ํ๊ณ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
<Tabs>
<Tab title="๊ธฐ๋ณธ ์ค์ ">
LLM์ ์ด๊ธฐํํ ๋ `stream` ํ๋ผ๋ฏธํฐ๋ฅผ `True`๋ก ์ค์ ํ์ฌ ์คํธ๋ฆฌ๋ฐ์ ํ์ฑํํฉ๋๋ค:
```python
from crewai import LLM
# ์คํธ๋ฆฌ๋ฐ์ด ํ์ฑํ๋ LLM ์์ฑ
llm = LLM(
model="openai/gpt-4o",
stream=True # ์คํธ๋ฆฌ๋ฐ ํ์ฑํ
)
```
์คํธ๋ฆฌ๋ฐ์ด ํ์ฑํ๋๋ฉด, ์๋ต์ด ์์ฑ๋๋ ๋๋ก ์ฒญํฌ ๋จ์๋ก ์ ๋ฌ๋์ด ๋ณด๋ค ๋ฐ์์ฑ ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ญ๋๋ค.
</Tab>
<Tab title="์ด๋ฒคํธ ์ฒ๋ฆฌ">
CrewAI๋ ์คํธ๋ฆฌ๋ฐ ์ค ์์ ๋๋ ๊ฐ ์ฒญํฌ์ ๋ํด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํต๋๋ค:
```python
from crewai.events import (
LLMStreamChunkEvent
)
from crewai.events import BaseEventListener
class MyCustomListener(BaseEventListener):
def setup_listeners(self, crewai_event_bus):
@crewai_event_bus.on(LLMStreamChunkEvent)
def on_llm_stream_chunk(self, event: LLMStreamChunkEvent):
# ๊ฐ ์ฒญํฌ๊ฐ ๋์ฐฉํ ๋๋ง๋ค ์ฒ๋ฆฌ
print(f"Received chunk: {event.chunk}")
my_listener = MyCustomListener()
```
<Tip>
[์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํ์ธ์](/ko/concepts/event-listener#event-listeners)
</Tip>
</Tab>
<Tab title="์์ด์ ํธ & ํ์คํฌ ์ถ์ ">
CrewAI์ ๋ชจ๋ LLM ์ด๋ฒคํธ์๋ ์์ด์ ํธ ๋ฐ ํ์คํฌ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ด, ํน์ ์์ด์ ํธ๋ ํ์คํฌ๋ณ๋ก LLM ์ํธ์์ฉ์ ์ถ์ ํ๊ณ ํํฐ๋งํ ์ ์์ต๋๋ค:
```python
from crewai import LLM, Agent, Task, Crew
from crewai.events import LLMStreamChunkEvent
from crewai.events import BaseEventListener
class MyCustomListener(BaseEventListener):
def setup_listeners(self, crewai_event_bus):
@crewai_event_bus.on(LLMStreamChunkEvent)
def on_llm_stream_chunk(source, event):
if researcher.id == event.agent_id:
print("\n==============\n Got event:", event, "\n==============\n")
my_listener = MyCustomListener()
llm = LLM(model="gpt-4o-mini", temperature=0, stream=True)
researcher = Agent(
role="About User",
goal="You know everything about the user.",
backstory="""You are a master at understanding people and their preferences.""",
llm=llm,
)
search = Task(
description="Answer the following questions about the user: {question}",
expected_output="An answer to the question.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[search])
result = crew.kickoff(
inputs={"question": "..."}
)
```
<Info>
์ด ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํนํ ์ ์ฉํฉ๋๋ค:
- ํน์ ์์ด์ ํธ ๋์์ ๋๋ฒ๊น
ํ ๋
- ํ์คํฌ ์ ํ๋ณ LLM ์ฌ์ฉ ๊ธฐ๋ก์ ๋จ๊ธธ ๋
- ์ด๋ค ์์ด์ ํธ๊ฐ ์ด๋ค ์ ํ์ LLM ํธ์ถ์ ํ๋์ง ๊ฐ์ฌํ ๋
- ํน์ ํ์คํฌ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ ๋
</Info>
</Tab>
</Tabs>
## ๊ตฌ์กฐํ๋ LLM ํธ์ถ
CrewAI๋ Pydantic ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ `response_format`์ ์ ์ํจ์ผ๋ก์จ LLM ํธ์ถ์์ ๊ตฌ์กฐํ๋ ์๋ต์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ๋ ์์ํฌ๊ฐ ์ถ๋ ฅ์ ์๋์ผ๋ก ํ์ฑํ๊ณ ๊ฒ์ฆํ ์ ์์ด, ์๋ ํ์ฒ๋ฆฌ ์์ด๋ ์๋ต์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์๋๋ ์๋ต ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ Pydantic ๋ชจ๋ธ์ ์ ์ํ๊ณ LLM์ ์ธ์คํด์คํํ ๋ `response_format`์ผ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋ธ์ LLM ์ถ๋ ฅ์ ๊ตฌ์กฐํ๋ Python ๊ฐ์ฒด๋ก ๋ณํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
```python Code
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)
# Output:
# Dog(name='Kona', age=3, breed='black german shepherd')
```
## ๊ณ ๊ธ ๊ธฐ๋ฅ ๋ฐ ์ต์ ํ
LLM ์ค์ ์ ์ต๋ํ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์:
<AccordionGroup>
<Accordion title="์ปจํ
์คํธ ์๋์ฐ ๊ด๋ฆฌ">
CrewAI๋ ์ค๋งํธํ ์ปจํ
์คํธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
```python
from crewai import LLM
# CrewAI๋ ์๋์ผ๋ก ๋ค์์ ์ฒ๋ฆฌํฉ๋๋ค:
# 1. ํ ํฐ ๊ณ์ฐ ๋ฐ ์ถ์
# 2. ํ์์ ์ฝํ
์ธ ์์ฝ
# 3. ํฐ ์ปจํ
์คํธ์ ๋ํ ์์
๋ถํ
llm = LLM(
model="gpt-4",
max_tokens=4000, # ์๋ต ๊ธธ์ด ์ ํ
)
```
<Info>
์ปจํ
์คํธ ๊ด๋ฆฌ ๋ชจ๋ฒ ์ฌ๋ก:
1. ์ ์ ํ ์ปจํ
์คํธ ์๋์ฐ๋ฅผ ๊ฐ์ง ๋ชจ๋ธ ์ ํ
2. ๊ฐ๋ฅํ๋ฉด ๊ธด ์
๋ ฅ๊ฐ์ ์ฌ์ ์ฒ๋ฆฌ
3. ํฐ ๋ฌธ์์๋ ์ฒญํน(chunking) ์ฌ์ฉ
4. ๋น์ฉ ์ต์ ํ๋ฅผ ์ํด ํ ํฐ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
</Info>
</Accordion>
<Accordion title="์ฑ๋ฅ ์ต์ ํ">
<Steps>
<Step title="ํ ํฐ ์ฌ์ฉ ์ต์ ํ">
์์
์ ๋ง๋ ์ปจํ
์คํธ ์๋์ฐ๋ฅผ ์ ํํ์ธ์:
- ์์ ์์
(์ต๋ 4K ํ ํฐ): ํ์ค ๋ชจ๋ธ
- ์ค๊ฐ ์์
(4K~32K ์ฌ์ด): ํ์ฅ ๋ชจ๋ธ
- ํฐ ์์
(32K ์ด์): ๋ํ ์ปจํ
์คํธ ๋ชจ๋ธ
```python
# ๋ชจ๋ธ์ ์ ์ ํ ์ค์ ์ผ๋ก ๊ตฌ์ฑ
llm = LLM(
model="openai/gpt-4-turbo-preview",
temperature=0.7, # ์์
์ ๋ฐ๋ผ ์กฐ์
max_tokens=4096, # ์ถ๋ ฅ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ค์
timeout=300 # ๋ณต์กํ ์์
์ ์ํ ๋ ๊ธด ํ์์์
)
```
<Tip>
- ์ฌ์ค ๊ธฐ๋ฐ ์๋ต์๋ ๋ฎ์ temperature(0.1~0.3)
- ์ฐฝ์์ ์ธ ์์
์๋ ๋์ temperature(0.7~0.9)
</Tip>
</Step>
<Step title="๋ชจ๋ฒ ์ฌ๋ก">
1. ํ ํฐ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
2. ์๋ ์ ํ(rate limiting) ๊ตฌํ
3. ๊ฐ๋ฅํ๋ฉด ์บ์ฑ ์ฌ์ฉ
4. ์ ์ ํ max_tokens ์ ํ ์ค์
</Step>
</Steps>
<Info>
๋น์ฉ ๋ฐ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ํ ํฐ ์ฌ์ฉ๋์ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ํ์์ ๋ฐ๋ผ ์ค์ ์ ์กฐ์ ํ์ธ์.
</Info>
</Accordion>
<Accordion title="์ถ๊ฐ ํ๋ผ๋ฏธํฐ ๋๋กญ">
CrewAI๋ ๋ด๋ถ์ ์ผ๋ก LLM ํธ์ถ์ Litellm์ ์ฌ์ฉํ๋ฉฐ, ์ด๋ฅผ ํตํด ํน์ ์ฌ์ฉ ์ฌ๋ก์ ํ์ํ์ง ์์ ์ถ๊ฐ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋๊ฐ ๊ฐ์ํ๋๋ฉฐ LLM ๊ตฌ์ฑ์ ๋ณต์ก์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, <code>stop</code> ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณด๋ผ ํ์๊ฐ ์๋ค๋ฉด LLM ํธ์ถ์์ ์ ์ธํ ์ ์์ต๋๋ค:
```python
from crewai import LLM
import os
os.environ["OPENAI_API_KEY"] = "<api-key>"
o3_llm = LLM(
model="o3",
drop_params=True,
additional_drop_params=["stop"]
)
```
</Accordion>
</AccordionGroup>
## ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
<Tabs>
<Tab title="์ธ์ฆ">
<Warning>
๋๋ถ๋ถ์ ์ธ์ฆ ๋ฌธ์ ๋ API ํค ํ์๊ณผ ํ๊ฒฝ ๋ณ์ ์ด๋ฆ์ ํ์ธํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
</Warning>
```bash
# OpenAI
OPENAI_API_KEY=sk-...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
```
</Tab>
<Tab title="๋ชจ๋ธ ์ด๋ฆ">
<Check>
ํญ์ ๋ชจ๋ธ ์ด๋ฆ์ provider ์ ๋์ฌ๋ฅผ ํฌํจํ์ธ์.
</Check>
```python
# ์ฌ๋ฐ๋ฅธ ์์
llm = LLM(model="openai/gpt-4")
# ์๋ชป๋ ์์
llm = LLM(model="gpt-4")
```
</Tab>
<Tab title="์ปจํ
์คํธ ๊ธธ์ด">
<Tip>
๋๊ท๋ชจ ์์
์๋ ๋ ํฐ ์ปจํ
์คํธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ธ์.
</Tip>
```python
# ๋์ฉ๋ ์ปจํ
์คํธ ๋ชจ๋ธ
llm = LLM(model="openai/gpt-4o") # 128K tokens
```
</Tab>
</Tabs>