제공자와 모델
제공자와 모델 (Providers and models)
LangChain의 매력 중 하나는, 어느 제공자(provider)의 모델이든 똑같은 하나의 API로 다룰 수 있다는 점이에요. OpenAI를 쓰든 Anthropic을 쓰든 Google을 쓰든, 설치하는 패키지 이름과 모델 이름만 바꾸면 나머지 코드는 그대로 돌아가죠. 이 페이지에서는 제공자가 무엇인지, 모델 이름을 어떻게 찾고 쓰는지, 그리고 라우터나 OpenAI 호환 엔드포인트 같은 고급 주제까지 살펴볼게요.
모든 모델을 위한 하나의 API (One API for any model)
LangChain의 모든 채팅 모델은 제공자가 누구든 동일한 인터페이스를 구현해요. 즉 이런 것들이 가능해집니다.
- 제공자 전환 — 애플리케이션 로직을 다시 작성하지 않고 공급자를 바꿀 수 있어요.
- 모델 비교 — 동일한 코드로 여러 모델을 나란히 비교해볼 수 있죠.
- 고급 기능 활용 — 도구 호출, 구조화된 출력, 스트리밍 같은 기능을 제공자와 무관하게 쓸 수 있어요.
from langchain.chat_models import init_chat_model
openai_model = init_chat_model("openai:gpt-5.5")
anthropic_model = init_chat_model("anthropic:claude-opus-4-8")
google_model = init_chat_model("google-genai:gemini-3.1-pro-preview")
for model in [openai_model, anthropic_model, google_model]:
response = model.invoke("Explain quantum computing in one sentence.")
print(response.text)
제공자란 무엇인가요? (What is a provider?)
제공자(provider) 는 AI 모델을 호스팅하고 API로 노출하는 회사나 플랫폼을 말해요. OpenAI, Anthropic, Google, AWS Bedrock 등이 대표적이죠. LangChain에서는 각 제공자마다 전용 통합 패키지(integration package) 가 있고, 그 패키지가 해당 제공자 모델에 대해 표준 LangChain 인터페이스를 구현해 줍니다. 덕분에 이런 장점이 생겨요.
- 전용 패키지 — 제공자마다 별도 버전 관리와 의존성 관리가 됩니다.
- 제공자 고유 기능 — 필요할 때만 쓰면 돼요. 예를 들어 OpenAI의 Responses API, Anthropic의 extended thinking 같은 것들이죠.
- 자동 API 키 처리 — 환경 변수를 통해 API 키를 알아서 처리해줘요.
uv add langchain-openai # For OpenAI models
uv add langchain-anthropic # For Anthropic models
uv add langchain-google-genai # For Google models
전체 제공자 패키지 목록은 통합 페이지에서 확인할 수 있어요.
모델 이름 찾기 (Find model names)
각 제공자는 채팅 모델을 초기화할 때 넘겨주는 특정 모델 이름을 지원해요. 모델을 지정하는 방법은 두 가지가 있습니다.
init_chat_model을 provider:model 형식으로 쓰면 LangChain이 자동으로 제공자를 판별해 올바른 통합 패키지를 불러와요. 모델 이름이 애매하지 않다면 제공자 접두사를 생략할 수도 있어요 (예: "gpt-5.5"는 OpenAI로 해석). 제공자별 모델 이름은 해당 제공자의 문서에서 확인하는 게 가장 정확합니다. 인기 있는 제공자 몇 개를 정리하면:
| 제공자 | 모델 이름 확인 방법 |
|---|---|
| OpenAI | OpenAI models page |
| Anthropic | Anthropic models page |
| Google AI models page | |
| AWS Bedrock | Bedrock supported models |
| Ollama | Ollama model library |
| Groq | Groq supported models |
새 모델 즉시 사용하기 (Use new models immediately)
LangChain 제공자 패키지는 모델 이름을 제공자의 API에 그대로 전달하기 때문에, 제공자가 새 모델을 출시하는 순간 LangChain 업데이트 없이 바로 쓸 수 있어요. 새 모델 이름만 넘기면 됩니다.
model = init_chat_model("google_genai:gemini-mythos")
새 모델 이름은 제공자 패키지 버전이 그 모델이 요구하는 API 버전을 지원하는 한 즉시 동작해요. 대부분의 경우 모델 출시는 하위 호환적이라 패키지 업데이트가 필요 없습니다.
모델 기능 (Model capabilities)
제공자와 모델마다 지원하는 기능이 달라요. 채팅 모델 통합 목록과 각 기능은 채팅 모델 통합 페이지에서 확인할 수 있어요.
라우터와 프록시 (Routers and proxies)
라우터(router), 또는 프록시·게이트웨이라고도 부르는 것들은 하나의 API와 하나의 자격 증명(credential) 으로 여러 제공자의 모델에 접근하게 해줘요. 결제를 단순화하고, 통합을 바꾸지 않고도 모델을 전환할 수 있게 하며, 자동 폴백(fallback)과 로드 밸런싱 같은 기능도 제공하죠.
| 제공자 | 통합 | 설명 |
|---|---|---|
| OpenRouter | ChatOpenRouter |
OpenAI, Anthropic, Google, Meta 등 여러 모델에 대한 통합 접근 |
| FuturMix | ChatOpenAI |
OpenAI 호환 API와 99.99% SLA를 갖춘 22+ 모델 통합 AI 게이트웨이 |
| LiteLLM | ChatLiteLLM |
라우팅·폴백·지출 추적을 지원하는 100+ 제공자 통합 인터페이스 |
라우터는 이런 상황에서 유용해요.
- 여러 제공자에 접근 — 단일 API 키와 단일 결제 계정으로 여러 제공자를 쓰고 싶을 때
- 동적 모델 전환 — 여러 제공자 자격 증명을 관리하지 않고 모델을 바꾸고 싶을 때
- 폴백 모델 사용 — 기본 모델이 실패하면 자동으로 다른 모델로 재시도하고 싶을 때
from langchain.chat_models import init_chat_model
model = init_chat_model("openrouter:anthropic/claude-sonnet-4-6")
response = model.invoke("Hello!")
OpenAI 호환 엔드포인트 (OpenAI-compatible endpoints)
많은 제공자가 OpenAI의 Chat Completions API와 호환되는 엔드포인트를 제공해요. ChatOpenAI에 커스텀 base_url을 지정해 연결하면 됩니다.
from langchain_openai import ChatOpenAI
model = ChatOpenAI(
base_url="https://your-provider.com/v1",
api_key="your-api-key",
model="provider-model-name",
)
참고로 ChatOpenAI는 오피셜 OpenAI API 스펙만을 대상으로 해요. 타사 제공자의 비표준 응답 필드는 추출되거나 보존되지 않으니, 비표준 기능이 필요하다면 전용 제공자 패키지나 라우터를 쓰는 게 좋아요.
다음 단계 (Next steps)
- 모델 가이드 — invoke, stream, batch, tool calling 등 모델 사용법을 배워보세요.
- 채팅 모델 통합 — 모든 채팅 모델 통합과 기능을 살펴보세요.
- 모든 제공자 — 전체 제공자 패키지와 통합 목록을 확인하세요.
- 에이전트 — 모델을 추론 엔진으로 사용하는 에이전트를 만들어보세요.