Models

通过模型端点,您可以以编程方式列出可用的模型,并检索扩展元数据,例如支持的功能和上下文窗口大小。如需了解详情,请参阅模型指南

方法:models.get

获取有关特定 Model 的信息,例如其版本号、令牌限制、参数和其他元数据。如需了解详细的模型信息,请参阅 Gemini 模型指南

端点

get https://generativelanguage.googleapis.com/v1beta/{name=models/*}

路径参数

name string

必需。模型的资源名称。

此名称应与 models.list 方法返回的型号名称一致。

格式:models/{model}。其形式为 models/{model}

请求正文

请求正文必须为空。

示例请求

Python

from google import genai

client = genai.Client()
model_info = client.models.get(model="gemini-2.0-flash")
print(model_info)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelInfo, err := client.Models.Get(ctx, "gemini-2.0-flash", nil)
if err != nil {
	log.Fatal(err)
}

fmt.Println(modelInfo)

Shell

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash?key=$GEMINI_API_KEY

响应正文

如果成功,则响应正文包含一个 Model 实例。

方法:models.list

列出可通过 Gemini API 获取的 Model

端点

get https://generativelanguage.googleapis.com/v1beta/models

查询参数

pageSize integer

要返回的 Models 的最大数量(每页)。

如果未指定,则每页返回 50 个模型。即使您传递的 pageSize 值较大,此方法每页最多也只会返回 1000 个模型。

pageToken string

从之前的 models.list 调用接收的页面令牌。

将一个请求返回的 pageToken 作为实参提供给下一个请求,以检索下一页。

进行分页时,提供给 models.list 的所有其他参数必须与提供页面令牌的调用匹配。

请求正文

请求正文必须为空。

示例请求

Python

from google import genai

client = genai.Client()

print("List of models that support generateContent:\n")
for m in client.models.list():
    for action in m.supported_actions:
        if action == "generateContent":
            print(m.name)

print("List of models that support embedContent:\n")
for m in client.models.list():
    for action in m.supported_actions:
        if action == "embedContent":
            print(m.name)

Go

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}


// Retrieve the list of models.
models, err := client.Models.List(ctx, &genai.ListModelsConfig{})
if err != nil {
	log.Fatal(err)
}

fmt.Println("List of models that support generateContent:")
for _, m := range models.Items {
	for _, action := range m.SupportedActions {
		if action == "generateContent" {
			fmt.Println(m.Name)
			break
		}
	}
}

fmt.Println("\nList of models that support embedContent:")
for _, m := range models.Items {
	for _, action := range m.SupportedActions {
		if action == "embedContent" {
			fmt.Println(m.Name)
			break
		}
	}
}

Shell

curl https://generativelanguage.googleapis.com/v1beta/models?key=$GEMINI_API_KEY

响应正文

来自 ListModel 的响应,包含分页的 Model 列表。

如果成功,响应正文将包含结构如下的数据:

字段
models[] object (Model)

返回的模型。

nextPageToken string

可作为 pageToken 发送并用于检索下一页的令牌。

如果省略此字段,则没有更多页面。

JSON 表示法
{
  "models": [
    {
      object (Model)
    }
  ],
  "nextPageToken": string
}

REST 资源:models

资源:Model

有关生成式语言模型的信息。

字段
name string

必需。Model 的资源名称。如需了解所有允许的值,请参阅模型变体

格式:models/{model},采用 {model} 命名规范:

  • “{baseModelId}-{version}”

示例:

  • models/gemini-1.5-flash-001
baseModelId string

必需。基础模型的名称,将其传递给生成请求。

示例:

  • gemini-1.5-flash
version string

必需。模型的版本号。

表示主要版本(1.01.5

displayName string

模型的直观易懂的名称。例如“Gemini 1.5 Flash”。

名称不得超过 128 个字符,可以包含任何 UTF-8 字符。

description string

模型的简短说明。

inputTokenLimit integer

相应模型允许的输入令牌数量上限。

outputTokenLimit integer

相应模型可输出的词元数量上限。

supportedGenerationMethods[] string

模型支持的生成方法。

相应的 API 方法名称定义为 Pascal 大小写字符串,例如 generateMessagegenerateContent

thinking boolean

模型是否支持思考。

temperature number

控制输出的随机性。

值可介于 [0.0,maxTemperature] 之间(含 [0.0,maxTemperature])。值越高,生成的回答就越多样化;值越接近 0.0,模型生成的回答就越不令人意外。此值用于指定后端在调用模型时使用的默认值。

maxTemperature number

此模型可使用的最高温度。

topP number

用于 Nucleus 抽样

核采样会考虑概率总和至少为 topP 的最小 token 集。此值用于指定后端在调用模型时使用的默认值。

topK integer

用于 Top-k 采样。

Top-k 抽样会考虑 topK 个最可能的 token。此值用于指定后端在调用模型时使用的默认值。如果为空,则表示模型不使用 Top-K 抽样,并且不允许将 topK 用作生成参数。

JSON 表示法
{
  "name": string,
  "baseModelId": string,
  "version": string,
  "displayName": string,
  "description": string,
  "inputTokenLimit": integer,
  "outputTokenLimit": integer,
  "supportedGenerationMethods": [
    string
  ],
  "thinking": boolean,
  "temperature": number,
  "maxTemperature": number,
  "topP": number,
  "topK": integer
}