通过 Google AI StudioGoogle Cloud Vertex AI 使用 Google 的 Gemini 模型,这些平台提供了对大型语言模型和其他服务的访问。

我们建议进行实验以找到最适合您用例的模型。以下是 Gemini 2.x 系列模型的一些通用建议:

  • gemini-2.0-flash 适用于大多数用例。
  • gemini-2.0-flash-lite 是最具成本效益的模型。
  • gemini-2.5-pro-exp-03-25 是最强大的多模态模型。

有关可用模型版本的信息,请参阅 Google AI Studio 文档Vertex AI 文档

模型认证

您可以通过 Google AI Studio 或 Google Cloud 的 Vertex AI 来使用 Gemini 模型:

Google AI Studio

设置 GOOGLE_API_KEY 环境变量。您可以 从 Google AI Studio 获取

export GOOGLE_API_KEY=***

Vertex AI

要在 Google Cloud 中使用 Vertex AI:

  1. 请参阅 Vertex AI 文档来设置项目和开发环境。

  2. 安装 gcloud CLI 并进行身份验证(更多详细信息,请参阅 快速入门):

gcloud auth application-default login
  1. 启用 Vertex AI API 并设置项目 ID 环境变量(或者,您可以在 Agent 配置中设置 project_id):

导出以下变量:

export GOOGLE_GENAI_USE_VERTEXAI="true"
export GOOGLE_CLOUD_PROJECT="your-gcloud-project-id"
export GOOGLE_CLOUD_LOCATION="your-gcloud-location"

或者更新您的 Agent 配置:

agent = Agent(
    model=Gemini(
        id="gemini-1.5-flash",
        vertexai=True,
        project_id="your-gcloud-project-id",
        location="your-gcloud-location",
    ),
)

示例

Gemini 与您的 Agent 结合使用:

from agno.agent import Agent
from agno.models.google import Gemini

# 使用 Google AI Studio
agent = Agent(
    model=Gemini(id="gemini-2.0-flash"),
    markdown=True,
)

# 或者使用 Vertex AI
agent = Agent(
    model=Gemini(
        id="gemini-2.0-flash",
        vertexai=True,
        project_id="your-project-id",  # 如果设置了 GOOGLE_CLOUD_PROJECT,则为可选
        location="us-central1",  # 可选
    ),
    markdown=True,
)

# 在终端中打印响应
agent.print_response("写一个两句话的恐怖故事。")
这里 查看更多示例。

grounding 和搜索

Gemini 模型通过可选参数支持 grounding 和搜索功能。这会自动将 grounding 或搜索工具发送到 Gemini。在此处 查看详细信息

要启用这些功能,请在初始化 Gemini 模型时设置相应的参数:

要使用 grounding:

from agno.agent import Agent
from agno.models.google import Gemini

agent = Agent(
    model=Gemini(id="gemini-2.0-flash", grounding=True),
    show_tool_calls=True,
    markdown=True,
)

agent.print_response("有美国那边的新闻吗?")

要使用搜索:

from agno.agent import Agent
from agno.models.google import Gemini

agent = Agent(
    model=Gemini(id="gemini-2.0-flash", search=True),
    show_tool_calls=True,
    markdown=True,
)

agent.print_response("法国有什么新鲜事?")

在您的 Agent 配置中设置 show_tool_calls=True 以在输出中查看 grounding 或搜索结果。

参数

参数类型默认值描述
idstr"gemini-2.0-flash-exp"要使用的特定 Gemini 模型 ID。
namestr"Gemini"此 Gemini 模型实例的名称。
providerstr"Google"模型提供商。
function_declarationsOptional[List[FunctionDeclaration]]None用于模型的函数声明列表。
generation_configOptional[Any]None文本生成的配置。
safety_settingsOptional[Any]None模型的安全设置。
generative_model_kwargsOptional[Dict[str, Any]]None生成模型的其他关键字参数。
groundingboolFalse是否使用 grounding。
searchboolFalse是否使用搜索。
grounding_dynamic_thresholdOptional[float]Nonegrounding 的动态阈值。
api_keyOptional[str]None用于认证的 API 密钥。
vertexaiboolFalse是否使用 Vertex AI 而不是 Google AI Studio。
project_idOptional[str]NoneVertex AI 的 Google Cloud 项目 ID。
locationOptional[str]NoneVertex AI 的 Google Cloud 区域。
client_paramsOptional[Dict[str, Any]]None客户端的其他参数。
clientOptional[GeminiClient]None底层的生成模型客户端。
temperatureOptional[float]None控制输出的随机性。较高的值(例如 0.8)使输出更随机,而较低的值(例如 0.2)使输出更集中和确定性。
top_pOptional[float]None核心采样参数。只考虑累积概率超过此值的 token。
top_kOptional[int]None只考虑文本生成的前 k 个 token。
max_output_tokensOptional[int]None响应中要生成的最大 token 数。
stop_sequencesOptional[list[str]]None模型应停止生成后续 token 的序列列表。
logprobsOptional[bool]None是否返回输出 token 的对数概率。
presence_penaltyOptional[float]None根据新 token 是否已出现在当前文本中对其进行惩罚。
frequency_penaltyOptional[float]None根据新 token 在当前文本中的出现频率对其进行惩罚。
seedOptional[int]None用于确定性文本生成的随机种子。
request_paramsOptional[Dict[str, Any]]None请求的其他参数。

GeminiModel 类的子类,并且可以访问相同的参数。