GoogleModel
是一个在底层使用 google-genai
包,通过 Generative Language API 和 Vertex AI 访问 Google Gemini 模型的模型。
安装
要使用 GoogleModel
,您需要安装 pydantic-ai
,或者安装带有 google
可选组的 pydantic-ai-slim
。
pip install "pydantic-ai-slim[google]"
uv add "pydantic-ai-slim[google]"
配置
GoogleModel
允许您通过它们的 Generative Language API (generativelanguage.googleapis.com
) 或 Vertex AI API (*-aiplatform.googleapis.com
) 来使用 Google 的 Gemini 模型。
API 密钥 (Generative Language API)
要通过 Generative Language API 使用 Gemini,请访问 aistudio.google.com 并创建一个 API 密钥。
获取 API 密钥后,将其设置为环境变量。
export GOOGLE_API_KEY=your-api-key
然后,您可以通过显式创建一个 provider 来使用 GoogleModel
。
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-1.5-flash', provider=provider)
agent = Agent(model)
...
Vertex AI (企业/云)
如果您是企业用户,可以使用 google-vertex
provider 和 GoogleModel
来通过 Vertex AI 访问 Gemini。
与 Generative Language API 相比,此接口具有许多优势:
- Vertex AI API 提供了更多的企业级就绪保证。
- 您可以通过 Vertex AI 购买预配吞吐量来保证容量。
- 如果您在 GCP 内部运行 Pydantic AI,则无需设置身份验证,它应该能“直接运行”。
- 您可以决定使用哪个区域,这从监管角度看可能很重要,并且可能改善延迟。
最大的缺点是,对于本地开发,您可能需要创建和配置一个“服务账号”,这可能很难正确设置。
无论您使用哪种身份验证方式,都需要在您的 GCP 账户中启用 Vertex AI。
要使用 Vertex AI,您可能需要设置应用默认凭据或使用服务账号。您还可以指定区域。
应用默认凭据
如果您已安装并配置了 gcloud
CLI,您可以使用:
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider
provider = GoogleProvider(vertexai=True)
model = GoogleModel('gemini-1.5-flash', provider=provider)
agent = Agent(model)
...
服务账号
要使用服务账号 JSON 文件:
from google.oauth2 import service_account
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider
credentials = service_account.Credentials.from_service_account_file(
'path/to/service-account.json',
scopes=['https://www.googleapis.com/auth/cloud-platform'],
)
provider = GoogleProvider(credentials=credentials, project='your-project-id')
model = GoogleModel('gemini-1.5-flash', provider=provider)
agent = Agent(model)
...
自定义位置
在使用 Vertex AI 时,您可以指定位置:
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider
provider = GoogleProvider(vertexai=True, location='asia-east1')
model = GoogleModel('gemini-1.5-flash', provider=provider)
agent = Agent(model)
...
Provider 参数
您可以使用 provider
参数提供一个自定义的 GoogleProvider
实例,以配置高级客户端选项,例如设置自定义的 base_url
。
如果您正在使用与 Google Generative Language API 兼容的自定义端点,这会很有用。
from google.genai import Client
from google.genai.types import HttpOptions
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel
from pydantic_ai.providers.google import GoogleProvider
client = Client(
api_key='gemini-custom-api-key',
http_options=HttpOptions(base_url='gemini-custom-base-url'),
)
provider = GoogleProvider(client=client)
model = GoogleModel('gemini-1.5-flash', provider=provider)
agent = Agent(model)
...
模型设置
您可以使用 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,
google_thinking_config={'thinking_budget': 2048},
google_safety_settings=[
{
'category': HarmCategory.HARM_CATEGORY_HATE_SPEECH,
'threshold': HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
}
]
)
model = GoogleModel('gemini-1.5-flash')
agent = Agent(model, model_settings=settings)
...
有关安全设置的更多信息,请参阅 Gemini API 文档,有关思考配置的信息也请参阅该文档。
文档、图像、音频和视频输入
GoogleModel
支持多模态输入,包括文档、图像、音频和视频。有关详细信息和示例,请参阅输入文档。
模型设置
您可以使用 GoogleModelSettings
类自定义模型请求。
禁用思考
您可以通过在 google_thinking_config
上将 thinking_budget
设置为 0
来禁用思考功能。
from pydantic_ai import Agent
from pydantic_ai.models.google import GoogleModel, GoogleModelSettings
model_settings = GoogleModelSettings(google_thinking_config={'thinking_budget': 0})
model = GoogleModel('gemini-2.0-flash')
agent = Agent(model, model_settings=model_settings)
...
有关思考功能的更多信息,请查阅 Gemini API 文档。
安全设置
您可以通过设置 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-2.0-flash')
agent = Agent(model, model_settings=model_settings)
...
有关安全设置的更多信息,请参阅 Gemini API 文档。