Google Gemini

1. 概述

Google 推出的多模态人工智能模型,旨在处理多种数据类型,包括文本、图像、音频、视频和代码。

本 API 与 OpenAI 接口格式兼容。

模型列表:

  • gemini-1.5-pro

  • gemini-1.5-pro-001

  • gemini-1.5-pro-002

  • gemini-1.5-flash-001

  • gemini-1.5-flash-002

  • gemini-1.5-flash-8b

  • gemini-1.5-pro-latest

  • gemini-exp-1114

  • gemini-exp-1121

  • gemini-exp-1206

  • gemini-2.0-flash-exp

  • gemini-2.0-flash-thinking-exp-1219

  • gemini-2.0-flash-thinking-exp-01-21

  • gemini-2.0-flash

  • gemini-2.0-flash-lite-preview-02-05

  • gemini-2.0-pro-exp-02-05

2. 请求说明

  • 请求方法:POST

  • 请求地址:

    https://gateway.theturbo.ai/v1/chat/completions


3. 请求参数

3.1 Header 参数

参数名称
类型
必填
说明
示例值

Content-Type

string

设置请求头类型,必须为 application/json

application/json

Accept

string

设置响应类型,建议统一为 application/json

application/json

Authorization

string

身份验证所需的 API_KEY,格式 Bearer $YOUR_API_KEY

Bearer $YOUR_API_KEY


3.2 Body 参数 (application/json)

参数名称
类型
必填
说明
示例

model

string

要使用的模型 ID。详见概述列出的可用版本,如 gemini-1.5-pro

gemini-1.5-pro

messages

array

聊天消息列表,格式与 OpenAI 兼容。数组中的每个对象包含 role(角色) 与 content(内容)。

[{"role": "user","content": "你好"}]

role

string

消息角色,可选值:systemuserassistant

user

content

string/array

消息的具体内容。

你好,请给我讲个笑话。

temperature

number

采样温度,取值 0~2。数值越大,输出越随机;数值越小,输出越集中和确定。

0.7

top_p

number

另一种调节采样分布的方式,取值 0~1。和 temperature 通常二选一设置。

0.9

n

number

为每条输入消息生成多少条回复。

1

stream

boolean

是否开启流式输出。设置为 true 时,返回类似 ChatGPT 的流式数据。

false

stop

string

最多可指定 4 个字符串,一旦生成的内容出现这几个字符串之一,就停止生成更多 tokens。

"\n"

max_tokens

number

单次回复可生成的最大 token 数量,受模型上下文长度限制。

1024

presence_penalty

number

-2.0 ~ 2.0。正值会鼓励模型输出更多新话题,负值会降低输出新话题的概率。

0

frequency_penalty

number

-2.0 ~ 2.0。正值会降低模型重复字句的频率,负值会提高重复字句出现的概率。

0


4. 请求示例

4.1 聊天对话

POST /v1/chat/completions
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY

{
	"model": "gemini-1.5-pro",
	"messages": [
		{
			"role": "user",
			"content": "你好,给我科普一下量子力学吧"
		}
	],
	"temperature": 0.7,
	"max_tokens": 1024
}

4.2 媒体文件识别

POST /v1/chat/completions
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY

{
	"model": "gemini-1.5-pro",
	"messages": [
		{
			"role": "user",
			"content": [
				{
					"type": "text",
					"text": "这张图片里有什么?"
				},
				{
					"type": "image_url",
					"image_url": {
						"url": "data:image/jpeg;base64,${base64_image}"
					}
				}
			]
		}
	],
	"temperature": 0.7,
	"max_tokens": 1024
}
支持的媒体类型

图片类型:

image/png image/jpeg image/webp image/heic image/heif

音频类型:

audio/wav audio/mp3 audio/aiff audio/aac audio/ogg audio/flac

视频类型:

video/mp4 video/mpeg video/mov video/avi video/x-flv video/mpg

video/webm video/wmv video/3gpp

本 API 提交媒体文件只支持以base64的形式上传,不支持http地址。

4.3 函数调用

POST /v1/chat/completions
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY

{
	"model": "gemini-1.5-pro",
	"messages": [{
		"role": "user",
		"content": "What's the weather like in Boston today?"
	}],
	"tools": [{
		"type": "function",
		"function": {
			"name": "get_current_weather",
			"description": "Get the current weather in a given location",
			"parameters": {
				"type": "object",
				"properties": {
					"location": {
						"type": "string",
						"description": "The city and state, e.g. San Francisco, CA"
					},
					"unit": {
						"type": "string",
						"enum": ["celsius", "fahrenheit"]
					}
				},
				"required": ["location"]
			}
		}
	}],
	"tool_choice": "auto"
}

5. 响应示例

{
	"id": "chatcmpl-1234567890",
	"object": "chat.completion",
	"created": 1699999999,
	"model": "gemini-1.5-pro",
	"choices": [
		{
			"message": {
				"role": "assistant",
				"content": "量子力学是研究微观世界的物理学分支……"
			},
			"finish_reason": "stop"
		}
	],
	"usage": {
		"prompt_tokens": 10,
		"completion_tokens": 30,
		"total_tokens": 40
	}
}

最后更新于