본문으로 건너뛰기

[pydantic-ai] AnthropicProvider에 AsyncAnthropicVertex 클라이언트 지원 추가

PR 링크: pydantic/pydantic-ai#3292 상태: Merged | 변경: +2 / -2

들어가며

Pydantic AI의 Anthropic 프로바이더는 AsyncAnthropicAsyncAnthropicBedrock 클라이언트를 지원했지만, Google Cloud Vertex AI를 통해 Anthropic 모델에 접근하는 AsyncAnthropicVertex 클라이언트는 타입 정의에서 빠져 있었습니다. 이 PR은 2줄 변경으로 이를 해결합니다.

핵심 코드 분석

Before (anthropic.py):

from anthropic import AsyncAnthropic, AsyncAnthropicBedrock

AsyncAnthropicClient: TypeAlias = AsyncAnthropic | AsyncAnthropicBedrock

After:

from anthropic import AsyncAnthropic, AsyncAnthropicBedrock, AsyncAnthropicVertex

AsyncAnthropicClient: TypeAlias = AsyncAnthropic | AsyncAnthropicBedrock | AsyncAnthropicVertex

import에 AsyncAnthropicVertex를 추가하고, AsyncAnthropicClient 타입 별칭의 Union에 포함시킵니다. 이로써 AnthropicProvider(anthropic_client=AsyncAnthropicVertex(...)) 형태로 Vertex AI 클라이언트를 전달할 수 있습니다.

왜 이게 좋은가

  • Vertex AI를 통한 Anthropic 모델 사용이 가능해져, GCP 환경의 엔터프라이즈 사용자가 Pydantic AI를 바로 활용할 수 있습니다.
  • Vertex AI는 SLA, 데이터 처리 위치 보장, 프로비저닝된 처리량 등 엔터프라이즈 기능을 제공합니다.
  • 2줄 변경으로 새로운 배포 환경을 지원하는 효율적인 수정입니다.

정리

  • 클라이언트 타입 별칭은 지원 범위를 결정한다: Union 타입에 포함되지 않으면 타입 체커가 거부하므로, 새 클라이언트 타입은 반드시 추가해야 합니다.
  • 동일 API를 가진 클라이언트는 Union으로 묶어라: AsyncAnthropic, AsyncAnthropicBedrock, AsyncAnthropicVertex 모두 동일한 메시지 API를 제공하므로, Union 타입으로 다형성을 구현할 수 있습니다.

참고 자료

⚠️ 알림: 이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.

댓글

관련 포스트

PR Analysis 의 다른글