LangChain 모델

LangChain 모델 (Models)

LangChain에서 모델은 에이전트의 '추론 엔진' 역할을 해요. LLM은 사람처럼 텍스트를 만들고 해석할 수 있어서, 콘텐츠 작성이나 번역, 요약, 질문 답변 같은 걸 특별한 훈련 없이 처리할 수 있어요. 여기에 더해 많은 모델은 도구 호출(tool calling), 구조화 출력(structured output), 멀티모달(multimodal), 추론(reasoning) 같은 부가 기능까지 지원해요.

모델의 품질과 능력은 에이전트의 기본 신뢰성과 성능에 직접 영향을 줘요. 그래서 작업 특성에 맞는 모델을 고르는 게 중요하고, LangChain의 표준 모델 인터페이스 덕분에 프로바이더를 쉽게 바꿔 가며 실험할 수 있어요.

출처: LangChain Models 공식 문서

모델 사용 방법

모델은 크게 두 가지 방식으로 쓸 수 있어요.

  1. 에이전트와 함께 — 에이전트를 만들 때 모델을 지정하는 방식
  2. 독립적으로 — 텍스트 생성, 분류, 추출 같은 작업을 위해 에이전트 루프 밖에서 직접 호출하는 방식

같은 모델 인터페이스가 두 상황 모두에서 동작하니까, 단순하게 시작해서 복잡한 에이전트 워크플로까지 자연스럽게 확장할 수 있어요.

모델 초기화

독립형 모델은 init_chat_model로 가장 쉽게 시작해요. 프로바이더에 맞는 패키지와 API 키를 준비하면 돼요.

import os
from langchain.chat_models import init_chat_model

os.environ["OPENAI_API_KEY"] = "sk-..."
model = init_chat_model("gpt-5.5")

클래스 기반으로 쓰고 싶다면 ChatOpenAI, ChatAnthropic, ChatGoogleGenerativeAI 같은 프로바이더별 클래스를 쓸 수도 있어요.

from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-5.5")

도구 호출 (Tool calling)

많은 채팅 모델은 도구 호출을 지원해서, 외부 데이터베이스 조회나 API 호출 같은 일을 대신 처리하고 그 결과를 응답에 활용할 수 있어요. 모델이 도구를 '언제' 부를지, '어떤 인자를' 넘길지는 대화 맥락을 보고 결정해요.

구조화 출력 (Structured output)

모델의 응답을 정의된 포맷에 맞추고 싶을 때 써요. Pydantic 스키마나 JSON 스키마를 지정하면 모델이 그 규격을 지키는 결과를 돌려줘요. 에이전트에서는 response_format=로 지정할 수 있어요.

멀티모달 (Multimodal)

일부 모델은 이미지, 오디오, 비디오 같은 텍스트가 아닌 데이터를 주고받을 수 있어요. LangChain 채팅 모델은 크로스 프로바이더 표준 포맷, OpenAI 채팅 컴플리션 포맷, 그리고 해당 프로바이더 고유 포맷을 모두 지원해요.

모델 프로파일 (Model profiles)

모델 파라미터와 메타데이터는 models.dev 프로젝트에서 주로 관리돼요. 최신 데이터를 당기고 싶다면 langchain-model-profiles CLI를 쓸 수 있어요.

pip install -U langchain-model-profiles
langchain-profiles refresh --provider <provider> --data-dir <data_dir>

이 명령은 프로바이더별 최신 데이터를 models.dev에서 내려받고, profile_augmentations.toml의 오버라이드를 합쳐 profiles.py로 저장해요. 다만 모델 프로파일은 아직 베타 기능이라 포맷이 바뀔 수 있다는 점만 기억해 두세요.

더 알아보기