Google

Google

이 문서에서는 pydantic-ai에서 GoogleModel을 설치하고 설정하는 방법을 알려드려요. GoogleModel은 내부적으로 google-genai 패키지를 사용해 Gemini API와 Google Cloud(구 Vertex AI)를 통해 Google의 Gemini 모델에 접근해요.

출처: 문서

본문

GoogleModel은 내부적으로 google-genai 패키지를 사용해 Gemini API와 Google Cloud(구 Vertex AI)를 통해 Google의 Gemini 모델에 접근하는 모델이에요.

두 프로바이더가 그 엔드포인트를 감싸요:

  • GoogleProvider -- Gemini API(Google AI Studio), 'google:' 접두사 아래 표면화.
  • GoogleCloudProvider -- Google Cloud(구 Vertex AI), 'google-cloud:' 접두사 아래 표면화.

Install

GoogleModel을 사용하려면 pydantic-ai를 설치하거나, google 옵션 그룹과 함께 pydantic-ai-slim을 설치해야 해요:

Terminal

pip install "pydantic-ai-slim[google]"

Terminal

uv add "pydantic-ai-slim[google]"

Configuration

GoogleModel은 그들의 Gemini API(generativelanguage.googleapis.com) 또는 Google Cloud(*-aiplatform.googleapis.com, 구 Vertex AI)를 통해 Google의 Gemini 모델을 사용하게 해요.

API Key (Gemini API)

Gemini API를 통해 Gemini를 사용하려면 aistudio.google.com으로 가서 API 키를 만드세요.

API 키를 확보했다면 환경 변수로 설정하세요:

Terminal

export GOOGLE_API_KEY=your-api-key

그 다음 이름으로 GoogleModel을 사용할 수 있어요:

from pydantic_ai import Agent

agent = Agent('google:gemini-3.7-flash')
...

또는 명시적으로 프로바이더를 만들 수 있어요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider

provider = GoogleProvider(api_key='your-api-key')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

Google Cloud (Enterprise)

엔터프라이즈 사용자라면 GoogleModel을 사용해 Google Cloud(구 Vertex AI)를 통해 Gemini에 접근할 수도 있어요.

이 인터페이스는 Gemini API보다 몇 가지 장점이 있어요:

  1. Google Cloud API는 더 많은 엔터프라이즈 준비 보장을 지녀요.
  2. Google Cloud로 프로비저닝된 처리량을 구매해 용량을 보장할 수 있어요.
  3. Google Cloud 안에서 Pydantic AI를 실행한다면 인증을 설정할 필요가 없어요. "그냥 동작"해야 하죠.
  4. 사용할 리전을 결정할 수 있으며, 규제 관점에서 중요할 수 있고 지연 시간을 개선할 수 있어요.

애플리케이션 기본 자격 증명, 서비스 계정, 또는 API 키로 인증할 수 있어요.

어떤 방식으로 인증하든, Google Cloud 계정에 Vertex AI API(현재 Google Cloud AI로 브랜딩)가 활성화되어 있어야 해요.

Application Default Credentials

gcloud CLI가 설치·구성되어 있다면 이름으로 GoogleCloudProvider를 사용할 수 있어요:

from pydantic_ai import Agent

agent = Agent('google-cloud:gemini-3.7-flash')
...

또는 프로바이더와 모델을 명시적으로 만들 수 있어요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider()
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

Service Account

서비스 계정 JSON 파일을 사용하려면 프로바이더와 모델을 명시적으로 만드세요:

google_model_service_account.py

from google.oauth2 import service_account

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

credentials = service_account.Credentials.from_service_account_file('path/to/service-account.json')
provider = GoogleCloudProvider(credentials=credentials, project='your-project-id')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

자격 증명 스코프

GoogleCloudProvider는 스코프가 필요한 자격 증명에 https://www.googleapis.com/auth/cloud-platform을 자동으로 적용해요. 기존 스코프는 보존돼요.

API Key

API 키로 Google Cloud를 사용하려면 키를 만들고 환경 변수로 설정하세요:

Terminal

export GOOGLE_API_KEY=your-api-key

그 다음 GoogleCloudProvider를 통해 이름으로 GoogleModel을 사용할 수 있어요:

from pydantic_ai import Agent

agent = Agent('google-cloud:gemini-3.7-flash')
...

또는 프로바이더와 모델을 명시적으로 만들 수 있어요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider(api_key='your-api-key')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

인증 우선순위

명시적 credentials는 자격 증명 기반 인증을 선택해요. 명시적 project 또는 location애플리케이션 기본 자격 증명을 선택해요. GOOGLE_APPLICATION_CREDENTIALS도 환경의 API 키보다 우선해요. GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION은 ADC 경로를 구성하지만 자체로 환경 API 키를 재정의하지 않아요. 명시적 ADC 인자가 없으면 명시적 api_key가 Express Mode를 선택해요.

Customizing Location or Project

Google Cloud를 사용할 때 위치 및/또는 프로젝트를 지정할 수 있어요:

google_model_location.py

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider(location='global', project='your-google-cloud-project-id')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

GoogleCloudLocation에 나열된 단일 리전 값 외에, GoogleCloudProvider'global' 위치와 'us'/'eu' 다중 리전을 받아들여요. 다중 리전 값은 aiplatform.{us,eu}.rep.googleapis.com 데이터 상주 엔드포인트로 라우팅돼요 — 조직 정책이 데이터 상주를 위해 전역 엔드포인트를 차단하거나, 모델이 처음에 단일 리전보다 global과 다중 리전에서만 사용 가능할 때 사용하세요. 모델 가용성은 단일 리전, 다중 리전, global 사이에서 다릅니다. Vertex AI 위치 문서를 참고하세요.

google_model_multi_region.py

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider(location='us', project='your-google-cloud-project-id')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)
...

Service tier (service_tier, google_cloud_service_tier)

통합 service_tier 필드는 Google의 양쪽 하위 시스템 모두에서 동작하며, 더 세밀한 Google Cloud 라우팅 제어를 위해 google_cloud_service_tier가 있어요. 둘 다 설정되면 프로바이더별 필드가 이겨요.

Gemini API -- 요청의 service_tier 필드로 전송:

service_tier

Gemini API로 전송

'auto'

(생략 -- 서버 기본값)

'default'

'standard'

'flex'

'flex'

'priority'

'priority'

Google Cloud -- HTTP 라우팅 헤더로 전송. 'flex''priority'는 항상 PT-with-spillover 변형을 선택하므로 Provisioned Throughput(PT) 고객이 먼저 예약된 용량을 계속 사용해요:

service_tier

Google Cloud 라우팅 헤더

Effective behavior

'auto' / 'default'

(none)

PT 먼저, 그 다음 표준 on-demand spillover

'flex'

X-Vertex-AI-LLM-Shared-Request-Type: flex

PT 먼저, 그 다음 Flex PayGo spillover

'priority'

X-Vertex-AI-LLM-Shared-Request-Type: priority

PT 먼저, 그 다음 Priority PayGo spillover

PT를 완전히 우회하려면(또는 전적으로 사용하거나, 다른 Google Cloud 특정 라우팅 조합을 사용하려면) google_cloud_service_tier를 직접 설정하세요 — 통합 필드는 의도적으로 안전한 PT-with-spillover 변형으로 제한돼요.

Google Cloud -- 전체 라우팅 값 집합

전체 google_cloud_service_tier 값은 다음 HTTP 헤더로 매핑돼요:

  • 'pt_only': PT 전용(X-Vertex-AI-LLM-Request-Type: dedicated).
  • 'pt_then_flex': 할당량이 허용하면 PT, 그 다음 Flex PayGo spillover(X-Vertex-AI-LLM-Shared-Request-Type: flex).
  • 'pt_then_priority': 할당량이 허용하면 PT, 그 다음 Priority PayGo spillover(X-Vertex-AI-LLM-Shared-Request-Type: priority).
  • 'on_demand': 표준 on-demand 전용(X-Vertex-AI-LLM-Request-Type: shared).
  • 'flex_only': Flex PayGo 전용(X-Vertex-AI-LLM-Request-Type: sharedX-Vertex-AI-LLM-Shared-Request-Type: flex).
  • 'priority_only': Priority PayGo 전용(X-Vertex-AI-LLM-Request-Type: sharedX-Vertex-AI-LLM-Shared-Request-Type: priority).

Example

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider(location='global')
model = GoogleModel('gemini-3.7-flash', provider=provider)
agent = Agent(model)

result = agent.run_sync(
    'Hello!',
    model_settings=GoogleModelSettings(google_cloud_service_tier='pt_then_flex'),
)

'pt_then_flex'를 어떤 GoogleCloudServiceTier 값으로 바꾸세요 — 예: Priority PayGo spillover에는 'pt_then_priority', 또는 PT를 완전히 우회하려면 'flex_only'/'priority_only'.

요청 후 ModelResponse provider_details.get('traffic_type')(예: ON_DEMAND_FLEX, ON_DEMAND_PRIORITY)을 검사해, API가 반환할 때 어느 tier가 서빙했는지 볼 수 있어요.

Model Garden

Model Garden의 모델 중 generateContent API를 지원하고 Google Cloud 프로젝트 아래에서 사용 가능한 모델(Gemini 포함하되 제한되지 않음)에 다음 model_name 패턴 중 하나로 접근할 수 있어요:

  • Gemini 모델용 {model_id}
  • {publisher}/{model_id}
  • publishers/{publisher}/models/{model_id}
  • projects/{project}/locations/{location}/publishers/{publisher}/models/{model_id}
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

provider = GoogleCloudProvider(
    project='your-google-cloud-project-id',
    location='us-central1',  # the region where the model is available
)
model = GoogleModel('meta/llama-3.3-70b-instruct-maas', provider=provider)
agent = Agent(model)
...

Custom HTTP Client

Google 프로바이더는 기본적으로 httpx2를 사용해요. 전송 설정을 제어하려면 커스텀 httpx2.AsyncClient를 전달할 수 있어요:

from httpx2 import AsyncClient

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider

custom_http_client = AsyncClient(timeout=30)
model = GoogleModel(
    'gemini-3.7-flash',
    provider=GoogleProvider(api_key='your-api-key', http_client=custom_http_client),
)
agent = Agent(model)
...

Google 프로바이더는 Pydantic AI v2 동안 레거시 httpx.AsyncClient도 허용하지만, deprecation 경고를 발생시켜요. 새 코드에는 httpx2.AsyncClient를 사용하세요. 레거시 HTTPX 클라이언트 지원은 Pydantic AI v3에서 제거될 예정이에요.

HTTP Retries

Note

대부분의 사용 사례에서는 모델 비의존적 전송 재시도 접근이 선호돼요. 모든 프로바이더에서 같은 방식으로 동작하니까요. 아래 retry_options 인자는 재시도를 google-genai SDK의 자체 HTTP 계층에 위임하는 Google 특정 대안이에요. SDK 수준 재시도가 어디에 위치하는지는 재시도 가이드의 The layers를, 에이전트의 자체 재시도 예산과 어떻게 복합되는지는 Retry multiplication을 참고하세요.

기본적으로 google-genai SDK는 일시적인 HTTP 오류로 실패한 요청을 재시도하지 않아요. GoogleProvider 또는 GoogleCloudProviderretry_options 인자에 HttpRetryOptions 인스턴스를 전달해 재시도를 활성화할 수 있어요:

from google.genai.types import HttpRetryOptions

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider

retry_options = HttpRetryOptions(
    attempts=4,
    initial_delay=1.0,
    max_delay=60.0,
    http_status_codes=[408, 429, 500, 502, 503, 504],
)
model = GoogleModel(
    'gemini-3.7-flash',
    provider=GoogleProvider(api_key='your-api-key', retry_options=retry_options),
)
agent = Agent(model)
...

이것은 옵션을 SDK의 HttpOptions.retry_options에 전달해요. 값 선택에 대한 지침은 Vertex AI 재시도 전략 문서를 참고하세요.

Document, Image, Audio, and Video Input

GoogleModel은 문서, 이미지, 오디오, 비디오를 포함한 멀티모달 입력을 지원해요.

YouTube 비디오 URL은 Google 모델에 직접 전달할 수 있어요:

youtube_input.py

from pydantic_ai import Agent, VideoUrl
from pydantic_ai.models.google import GoogleModel

agent = Agent(GoogleModel('gemini-3.7-flash'))
result = agent.run_sync(
    [
        'What is this video about?',
        VideoUrl(url='https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
    ]
)
print(result.output)

파일은 Files API를 통해 업로드하고 URL로 전달할 수 있어요:

file_upload.py

from pydantic_ai import Agent, DocumentUrl
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider

provider = GoogleProvider()
file = provider.client.files.upload(file='pydantic-ai-logo.png')
assert file.uri is not None

agent = Agent(GoogleModel('gemini-3.7-flash', provider=provider))
result = agent.run_sync(
    [
        'What company is this logo from?',
        DocumentUrl(url=file.uri, media_type=file.mime_type),
    ]
)
print(result.output)

자세한 내용과 예시는 입력 문서를 참고하세요.

Image generation

ImageGeneratorgoogle: 이미지 모델과 함께 사용해 Gemini API를 통한 직접 생성과 참조 이미지 편집을, 또는 google-cloud: 모델과 함께 사용해 같은 모델을 Vertex AI에서 실행할 수 있어요:

google_image_generation.py

from pydantic_ai import ImageGenerator
from pydantic_ai.images.google import GoogleImageGenerationSettings

settings = GoogleImageGenerationSettings(
    google_image_config={'aspect_ratio': '1:1', 'image_size': '1K'}
)

gemini_api_generator = ImageGenerator('google:gemini-3.1-flash-lite-image', settings=settings)
vertex_generator = ImageGenerator('google-cloud:gemini-3.1-flash-image', settings=settings)

GoogleCloudProvider와 함께 GoogleImageGenerationModel을 구성해 Vertex 프로젝트와 위치를 명시적으로 설정하세요.

직접 어댑터는 두 API 모두에서 인라인 이미지와 다운로드 가능한 이미지 URL을 받아들여요. UploadedFile로 표현된 Google Files API URI는 Gemini Developer API에서만 받아들여져요. Files API는 Vertex AI에서 사용할 수 없고, 어댑터는 Vertex가 대신 사용하는 gs:// URI를 받아들이지 않으므로, Vertex 클라이언트는 UserError를 발생시키고 참조 이미지는 BinaryImage 또는 ImageUrl로 전달해야 해요. 모델이 말하는 API는 프로바이더 이름이 아니라 클라이언트에서 읽혀지므로, GoogleProvider에 전달된 Vertex 지원 클라이언트는 Vertex로 취급되고, GoogleCloudProvider에 전달된 Gemini Developer API 클라이언트는 Files API 지원을 유지해요. 공통 API와 기하학 동작은 image-generation 가이드를 참고하세요. 어댑터는 ImageGenerator가 Gemini의 선택적 대화 텍스트보다 생성된 이미지를 반환하므로 이미지 전용 응답을 요청해요.

생성된 모든 이미지는 무조건 SynthID 워터마크를 지녀요. Gemini 3 이미지 모델은 thinking 모델이에요. thinking은 항상 켜져 있고 청구되며, 그 토큰은 결과의 usage에 포함돼요.

Model settings

GoogleModelSettings를 사용해 모델 동작을 맞춤 설정할 수 있어요:

from google.genai.types import HarmBlockThreshold, HarmCategory

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings

settings = GoogleModelSettings(
    temperature=0.2,
    max_tokens=1024,
    top_k=40,
    google_safety_settings=[
        {
            'category': HarmCategory.HARM_CATEGORY_HATE_SPEECH,
            'threshold': HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        }
    ]
)
model = GoogleModel('gemini-3.7-flash')
agent = Agent(model, model_settings=settings)
...

Configure thinking

프로바이더 비의존적 Thinking capability를 사용해 thinking을 활성화하세요:

from pydantic_ai import Agent
from pydantic_ai.capabilities import Thinking

agent = Agent('google:gemini-3.7-flash', capabilities=[Thinking(effort='medium')])
...

고급 사용을 위해 Google의 네이티브 thinking 구성을 GoogleModelSettings.google_thinking_config를 통해 전달할 수 있어요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings

model = GoogleModel('gemini-3.7-flash')
model_settings = GoogleModelSettings(google_thinking_config={'include_thoughts': True, 'thinking_level': 'MEDIUM'})
agent = Agent(model, model_settings=model_settings)
...

Pydantic AI는 Google의 문서화된 thinking 표에서 각 모델의 지원 수준을 해석하고 요청된 effort를 가장 가까운 지원 수준으로 스냅해요. 표가 다루지 않는 모델 id는 GoogleModelProfile.google_thinking_levels(기본: 전체 스케일)로 수준을 선언하세요. 지원되지 않는 effort는 가장 가까운 지원 수준으로 해석돼요.

통합 API는 Thinking을, Google의 네이티브 thinking 구성은 Gemini API 문서를 참고하세요.

Safety settings

google_safety_settings 필드를 설정해 안전 설정을 맞춤 구성할 수 있어요.

from google.genai.types import HarmBlockThreshold, HarmCategory

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings

model_settings = GoogleModelSettings(
    google_safety_settings=[
        {
            'category': HarmCategory.HARM_CATEGORY_HATE_SPEECH,
            'threshold': HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        }
    ]
)
model = GoogleModel('gemini-3.7-flash')
agent = Agent(model, model_settings=model_settings)
...

안전 설정에 대한 자세한 내용은 Gemini API 문서를 참고하세요.

Logprobs

GoogleModelSettings에서 google_logprobsgoogle_top_logprobs를 설정해 응답에서 모델의 logprobs를 반환할 수 있어요.

이 기능은 비스트리밍 요청과 Google Cloud에서만 지원돼요.

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

model_settings = GoogleModelSettings(
    google_logprobs=True, google_top_logprobs=2,
)

model = GoogleModel(
    model_name='gemini-3.7-flash',
    provider=GoogleCloudProvider(location='europe-west1'),
)
agent = Agent(model, model_settings=model_settings)

result = agent.run_sync('Your prompt here')
# Access logprobs from provider_details
logprobs = result.response.provider_details.get('logprobs')
avg_logprobs = result.response.provider_details.get('avg_logprobs')

자세한 내용은 Google Dev Blog를 참고하세요.

Model Armor (Google Cloud only)

Model Armor은 프롬프트 인젝션, jailbreaking, 민감 데이터 유출 같은 위험에 대해 프롬프트와 응답을 선별하는 Google Cloud 보안 서비스예요.

GoogleModelSettingsgoogle_model_armor_config로 구성할 수 있어요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings
from pydantic_ai.providers.google_cloud import GoogleCloudProvider

model_settings = GoogleModelSettings(
    google_model_armor_config={
        'prompt_template_name': 'projects/my-project/locations/europe-west4/templates/prompt-template',
        'response_template_name': 'projects/my-project/locations/europe-west4/templates/response-template',
    }
)

model = GoogleModel(
    model_name='gemini-3.7-flash',
    provider=GoogleCloudProvider(location='europe-west4'),
)
agent = Agent(model, model_settings=model_settings)
...

템플릿은 Google Cloud Console에서 미리 만들어져야 하며 모델 엔드포인트와 같은 리전에 있어야 해요. 지원 위치는 Model Armor Vertex AI 통합 문서를 참고하세요.

프롬프트나 응답이 차단되면 ContentFilterError가 발생해요.

Model Armor 선별 — 프롬프트와 응답 템플릿 둘 다 — 은 비스트리밍 요청(agent.run())에서만 동작한다는 점을 주의하세요. 스트리밍(agent.run_stream())에서는 Google Cloud가 Model Armor를 적용하지 않아요. 프롬프트가 선별되지 않고 응답 텍스트가 선별 없이 반환돼요. 스트리밍이 필요하고 Model Armor 보호가 필요하다면, 에이전트를 호출하기 전에 google-cloud-modelarmor SDK로 프롬프트를 미리 선별하세요.

Context caching (google_cached_content)

Gemini 캐시된 콘텐츠 리소스를 만들었다면, 그 리소스 이름을 google_cached_content를 통해 전달해 요청 간에 재사용하세요:

from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings

model_settings = GoogleModelSettings(
    google_cached_content='projects/p/locations/global/cachedContents/your-cache-id',
)

agent = Agent(GoogleModel('gemini-3.7-flash'), model_settings=model_settings)
...

캐시된 필드는 캐시 리소스가 소유해요

캐시 리소스는 system_instruction, tools, tool_config를 소유해요. Pydantic AI는 google_cached_content가 설정되면 나가는 요청에서 그것들을 제거하므로, 캐시된 요청에서 에이전트 지침과 등록된 도구는 무시돼요. 제거가 필드를 버릴 때마다 UserWarning이 발생하므로 불일치를 발견할 수 있어요.

캐시된 콘텐츠 리소스 만들기

Pydantic AI는 캐시 관리 API를 감싸지 않아요. 기본 google-genai SDK로 리소스를 만든 다음, 그 이름을 google_cached_content로 전달하세요:

from google.genai.types import Content, CreateCachedContentConfig, Part

from pydantic_ai.providers.google import GoogleProvider

provider = GoogleProvider(api_key='your-api-key')

cache = provider.client.caches.create(
    model='gemini-3.7-flash',
    config=CreateCachedContentConfig(
        system_instruction='You are a geography expert. Be concise.',
        contents=[Content(role='user', parts=[Part(text='...long context to cache...')])],
        ttl='3600s',
    ),
)
print(cache.name)
#> cachedContents/abc123...

캐시는 최소 크기(Gemini 2.5 시리즈 모델 약 ≈2048 토큰, Gemini 3 시리즈 모델 약 ≈4096)와 TTL이 있어요 — 현재 임계값, 가격, list/update/delete 연산은 Gemini 캐싱 문서를 참고하세요.

Streaming cancellation

전송 계층 취소

cancel()은 다른 태스크에서 실행 중인 것을 포함한 활성 로컬 스트림 pull을 안전하게 중단해요. google-genai SDK는 문서화된 per-stream 전송 핸들을 노출하지 않으므로, 반환된 iterator를 닫아도 즉각적인 HTTP teardown을 보장하거나 원격 생성이 언제 멈추고 청구가 끝나는지 나타내지 않아요. googleapis/python-genai#2425를 참고하세요.

더 알아보기 (Learn more)