다양한 모델 사용하기(Using different models)
다양한 모델 사용하기(Using different models)
smolagents는 다양한 프로바이더의 언어 모델을 쓸 수 있게 해 주는 유연한 프레임워크예요. 이 가이드에서는 에이전트에 여러 모델 타입을 어떻게 붙이는지 보여드릴게요.
사용 가능한 모델 타입
smolagents는 기본으로 여러 모델 타입을 지원해요.
- InferenceClientModel: Hugging Face의 Inference API로 모델에 접근해요.
- TransformersModel: Transformers 라이브러리로 모델을 로컬에서 실행해요.
- VLLMModel: 최적화된 서빙으로 빠른 추론을 위해 vLLM을 써요.
- MLXModel: MLX로 Apple 실리콘 기기에 최적화됐어요.
- LiteLLMModel: LiteLLM을 통해 수백 개의 LLM에 접근해요.
- LiteLLMRouterModel: 여러 모델 간에 요청을 분산해요.
- OpenAIModel: OpenAI 호환 API를 구현한 어떤 프로바이더든 접근할 수 있어요.
- AzureOpenAIModel: Azure의 OpenAI 서비스를 사용해요.
- AmazonBedrockModel: AWS Bedrock의 API에 연결해요.
모든 모델 클래스는 인스턴스화 시점에 temperature, max_tokens, top_p 같은 추가 키워드 인자를 직접 넘길 수 있어요. 이 파라미터는 자동으로 기반 모델의 완성 호출에 전달돼서, 창의성·응답 길이·샘플링 전략 같은 모델 동작을 구성할 수 있게 해 줘요.
Google Gemini 모델 사용하기
Google Gemini API 문서(https://ai.google.dev/gemini-api/docs/openai)에서 설명하듯, Google은 Gemini 모델용 OpenAI 호환 API를 제공해요. 그래서 OpenAIModel을 적절한 기본 URL과 함께 설정해 Gemini 모델에 쓸 수 있어요.
먼저 필요한 의존성을 설치해요.
pip install 'smolagents[openai]'
그다음 Gemini API 키를 받아 코드에 설정해요.
GEMINI_API_KEY = <YOUR-GEMINI-API-KEY>
이제 OpenAIModel 클래스로 api_base 파라미터를 Gemini API 기본 URL로 설정해 Gemini 모델을 초기화할 수 있어요.
from smolagents import OpenAIModel
model = OpenAIModel(
model_id="gemini-2.0-flash",
# Google Gemini OpenAI-compatible API base URL
api_base="https://generativelanguage.googleapis.com/v1beta/openai/",
api_key=GEMINI_API_KEY,
)
OpenRouter 모델 사용하기
OpenRouter는 통합된 OpenAI 호환 API로 다양한 언어 모델에 접근하게 해 줘요. OpenAIModel로 적절한 기본 URL을 설정해 OpenRouter에 연결할 수 있어요.
먼저 필요한 의존성을 설치해요.
pip install 'smolagents[openai]'
그다음 OpenRouter API 키를 받아 코드에 설정해요.
OPENROUTER_API_KEY = <YOUR-OPENROUTER-API-KEY>
이제 OpenAIModel 클래스로 OpenRouter에서 사용 가능한 어떤 모델이든 초기화할 수 있어요.
from smolagents import OpenAIModel
model = OpenAIModel(
# You can use any model ID available on OpenRouter
model_id="openai/gpt-4o",
# OpenRouter API base URL
api_base="https://openrouter.ai/api/v1",
api_key=OPENROUTER_API_KEY,
)
xAI의 Grok 모델 사용하기
xAI의 Grok 모델은 LiteLLMModel로 접근할 수 있어요.
일부 모델("grok-4", "grok-3-mini" 같은)은 stop 파라미터를 지원하지 않아서, API 호출에서 제외하려면 REMOVE_PARAMETER를 써야 해요.
먼저 필요한 의존성을 설치해요.
pip install smolagents[litellm]
그다음 xAI API 키를 받아 코드에 설정해요.
XAI_API_KEY = <YOUR-XAI-API-KEY>
이제 LiteLLMModel 클래스로 Grok 모델을 초기화하고, 해당하면 stop 파라미터를 제거하면 돼요.
from smolagents import LiteLLMModel, REMOVE_PARAMETER
# Using Grok-4
model = LiteLLMModel(
model_id="xai/grok-4",
api_key=XAI_API_KEY,
stop=REMOVE_PARAMETER, # Remove stop parameter as grok-4 model doesn't support it
temperature=0.7
)
# Or using Grok-3-mini
model_mini = LiteLLMModel(
model_id="xai/grok-3-mini",
api_key=XAI_API_KEY,
stop=REMOVE_PARAMETER, # Remove stop parameter as grok-3-mini model doesn't support it
max_tokens=1000
)
출처: 공식문서