
LangChain의 ChatAnthropic: 가져오기, base_url, 스트리밍, 도구 및 오류
ChatAnthropic 다음 패키지의 langchain-anthropic 패키지에서 제공하는 LangChain의 Claude 채팅 모델입니다. 공식 Anthropic Python SDK를 래핑하므로, 게이트웨이에 연결하려면 인수 하나만 지정하면 됩니다. base_url을 호스트 루트로 설정하세요. 체인, 에이전트, 도구의 나머지 부분은 모두 그대로 유지됩니다.
설치 및 가져오기
pip install -U langchain-anthropicfrom langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://aiprimetech.io", # host root: the SDK adds /v1/messages
api_key="your_gateway_key", # or set ANTHROPIC_API_KEY
)
print(llm.invoke("Say hello in one word.").text)/v1 에서 base_url 를 여기에 사용하세요. 기반 Anthropic SDK가 다음을 추가합니다. /v1/messages 을 자체적으로 추가하므로, 다음을 추가하면 /v1 다음이 생성됩니다. /v1/v1/messages 및 404 page not found.환경 변수로 구성하기
base_url 은 다음의 별칭입니다. anthropic_api_url및 api_key 은 다음의 별칭입니다. anthropic_api_key. 이를 전달하지 않으면 ChatAnthropic은 다음을 읽습니다. ANTHROPIC_API_URL 을 먼저 읽고, 그다음에는 ANTHROPIC_BASE_URL을 읽으며, 키는 다음에서 가져옵니다. ANTHROPIC_API_KEY. 명시적으로 전달한 인수가 항상 우선합니다.
export ANTHROPIC_API_KEY=your_gateway_key
export ANTHROPIC_API_URL=https://aiprimetech.iofrom langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(model="claude-sonnet-5") # picks up the gateway from the environment스트리밍
for chunk in llm.stream("Explain backpressure in two sentences."):
print(chunk.text, end="", flush=True).text 은 각 청크의 텍스트 블록만 수집하므로, 모델이 사고 블록이나 도구 사용 블록을 함께 출력해도 결과가 깔끔하게 유지됩니다. 긴 답변에는 스트리밍을 사용하세요. 긴 비스트리밍 요청은 시간 초과의 일반적인 원인입니다.
도구 및 구조화된 출력
from langchain_core.tools import tool
@tool
def get_time(city: str) -> str:
"""Return the current local time in a city."""
return "12:00"
msg = llm.bind_tools([get_time]).invoke("What time is it in Tokyo?")
print(msg.tool_calls)from pydantic import BaseModel
class Weather(BaseModel):
city: str
temperature_c: float
print(llm.with_structured_output(Weather).invoke("It is 21 degrees in Lisbon today."))재시도, 시간 제한 및 max_tokens
max_retries 기본값은 2으로, Anthropic SDK와 동일합니다. 연결 오류, 429 및 5xx 응답에 대해 재시도합니다. timeout (다음의 별칭: default_request_timeout)의 단위는 초입니다. max_tokens 을 설정하지 않으면 모델 프로필의 값을 사용합니다.
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://aiprimetech.io",
max_retries=4,
timeout=120,
max_tokens=8000,
)배치 처리에서는 키의 동시 실행 한도를 넘지 않도록 병렬 실행 수를 제한하세요: llm.batch(inputs, config={"max_concurrency": 3}).
ChatOpenAI를 사용하는 대안
코드를 다음으로 표준화했다면 ChatOpenAI, 게이트웨이의 OpenAI 호환 엔드포인트로 Claude도 사용할 수 있습니다. 이 방식에서는 끝에 다음을 붙여야 합니다: /v1 . ChatAnthropic과는 반대입니다.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")Claude에는 ChatAnthropic 사용을 권장합니다. 프롬프트 캐싱과 사고 블록 같은 네이티브 기능을 유지할 수 있습니다.
문제 해결
| 표시되는 내용 | 원인 | 해결 방법 |
|---|---|---|
404 page not found | /v1 ChatAnthropic의 다음 항목에 base_url | 호스트 루트를 사용하세요: https://aiprimetech.io |
Model "..." is not supported | 키가 속한 그룹에서 제공하지 않는 ID 또는 날짜가 포함된 이전 이름 | 아래 표의 최신 ID를 사용하세요 |
AuthenticationError | ANTHROPIC_API_KEY 실행 중인 프로세스에서 비어 있거나 다른 엔드포인트용 키인 경우 | 전달하세요: api_key= 을 명시적으로 전달하여 테스트하세요 |
RateLimitError: Concurrency limit exceeded | 병렬 호출이 너무 많음(batch, 비동기 gather) | max_concurrency 배치 설정에서 |
APITimeoutError | 스트리밍을 사용하지 않는 긴 생성 작업 | 스트리밍을 사용하거나 다음 값을 늘리세요: timeout |
| 모델 ID | 권장 용도 |
|---|---|
claude-sonnet-5 | 코딩과 에이전트 작업의 기본 선택: 빠르고 성능이 뛰어나며 가격은 중간 수준입니다. |
claude-opus-5-5 | 더 어려운 추론, 대규모 리팩터링, 장시간 에이전트 실행. |
claude-fable-5-1 | 성능이 가장 뛰어나고 가격도 가장 높습니다. 가장 어려운 작업에 사용하세요. |
claude-haiku-4-5 | 저렴하고 빠름: 제목, 요약, 분류, 간단한 단계. |
자주 묻는 질문
ChatAnthropic은 어떻게 가져오나요?
ChatAnthropic의 base_url에 /v1이 필요한가요?
ChatAnthropic은 어떤 환경 변수를 읽나요?
base_url은 anthropic_api_url과 같은가요?
API 키를 발급받으세요 — Anthropic 계정이나 대기자 명단 등록이 필요하지 않습니다.
API 키 발급받기AI Prime Tech는 독립적인 API 게이트웨이입니다. Anthropic과 제휴 관계가 없으며, Anthropic의 보증을 받거나 Anthropic의 리셀러로 활동하지 않습니다. Claude 및 관련 모델 이름은 각 소유자의 상표입니다.