프로바이더와 모델
프로바이더와 모델 (Providers and models · LangChain Python)
모델을 어느 프로바이더에서 가져오든, LangChain은 똑같은 하나의 API로 다루게 해 줘요. 프로바이더 패키지를 설치하고 모델 이름을 고르면 바로 시작할 수 있죠. OpenAI를 쓰든, Anthropic을 쓰든, Google을 쓰든, 지원되는 다른 어느 프로바이더를 쓰든 같은 코드가 그대로 동작해요.
출처: 공식문서
어떤 모델이든 하나의 API로
모든 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)
프로바이더란 뭘까요
프로바이더(provider) 는 AI 모델을 호스팅하고 API로 노출해 주는 회사나 플랫폼을 말해요. OpenAI, Anthropic, Google, AWS Bedrock이 대표적이에요.
LangChain에서는 프로바이더마다 전용 통합 패키지(예: langchain-openai, langchain-anthropic)가 있어요. 이 패키지가 그 프로바이더의 모델에 대해 표준 LangChain 인터페이스를 구현해 주죠. 그래서 이런 이점이 생겨요.
- 프로바이더별 전용 패키지라 버전 관리와 의존성 관리가 깔끔해요
- 필요할 때 프로바이더 고유 기능을 쓸 수 있어요 (예: OpenAI의 Responses API, Anthropic의 extended thinking)
- 환경변수로 API 키를 자동으로 처리해 줘요
uv add langchain-openai # For OpenAI models
uv add langchain-anthropic # For Anthropic models
uv add langchain-google-genai # For Google models
프로바이더 패키지의 전체 목록은 통합 페이지에서 확인할 수 있어요.
모델 이름 찾기
프로바이더마다 채팅 모델을 초기화할 때 넘겨줄 수 있는 모델 이름이 정해져 있어요. 모델을 지정하는 방법은 두 가지예요.
# Provider prefix 형식
from langchain.chat_models import init_chat_model
model = init_chat_model("openai:gpt-5.5")
# 클래스 직접 생성
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-5.5")
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 |
새 모델을 바로 쓰기
LangChain 프로바이더 패키지는 모델 이름을 그대로 프로바이더의 API에 넘겨줘요. 그래서 프로바이더가 새 모델을 출시하자마자 바로 쓸 수 있어요 (LangChain 업데이트는 필요 없어요). 새 모델 이름만 넘겨주면 돼요.
model = init_chat_model("google_genai:gemini-mythos")
패키지 버전이 그 모델이 요구하는 API 버전을 지원하기만 하면 새 모델 이름은 즉시 동작해요. 대부분의 경우 모델 출시는 하위 호환이라 패키지 업데이트가 필요 없어요.
모델 기능
프로바이더와 모델마다 지원하는 기능이 달라요. 채팅 모델 통합 목록과 각 기능 지원 여부는 채팅 모델 통합 페이지에서 확인할 수 있어요.
라우터와 프록시
라우터(router) (프록시나 게이트웨이라고도 불러요)는 여러 프로바이더의 모델을 하나의 API와 하나의 자격 증명(credential)으로 접근할 수 있게 해 줘요. 결제를 단순화하고, 통합을 바꾸지 않고도 모델을 전환할 수 있게 하며, 자동 폴백과 로드 밸런싱 같은 기능도 제공해요.
| 프로바이더 | 통합 | 설명 |
|---|---|---|
| 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의 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 스펙만을 대상으로 해요. 써드파티 프로바이더의 비표준 응답 필드는 추출되거나 보존되지 않아요. 비표준 기능이 필요하면 전용 프로바이더 패키지나 라우터를 쓰는 게 좋아요.