跳到主要内容

Gemini 原生格式(对话与多模态)

Gemini 原生接口使用 contents 表示对话内容,支持文本、图片、PDF、音频和视频等多模态 Part。请求路径使用 :generateContent;需要流式输出时,将操作名改为 :streamGenerateContent 并按 Gemini 的 SSE 约定读取事件。

请求​

POST /v1beta/models/{model}:generateContent
Content-Type: application/json
x-goog-api-key: sk-your-api-key

平台也可能允许使用 Bearer Token,具体以部署的 Gemini 渠道配置为准。不要把 Gemini 请求体直接发送到 /v1/chat/completions。

文本对话示例​

curl -X POST "https://www.walmind.cn/v1beta/models/your-gemini-model:generateContent" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $API_KEY" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "解释一下向量数据库。"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 512
}
}'

多模态输入​

媒体可以通过 inlineData 直接携带 Base64,也可以通过 fileData.fileUri 提供可访问的文件地址:

{
"contents": [
{
"role": "user",
"parts": [
{"text": "概括这张图片。"},
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "<base64-data>"
}
}
]
}
]
}

使用公开 URL 时应确认上游渠道能够访问该地址。Base64 会增加请求体积,文件较大时应优先使用渠道支持的文件 URI。

响应示例​

{
"candidates": [
{
"content": {
"role": "model",
"parts": [{"text": "向量数据库用于存储和检索向量表示。"}]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 18,
"candidatesTokenCount": 16,
"totalTokenCount": 34
}
}

常用字段​

字段类型说明
contentsarray对话内容,必填
contents[].partsarray文本或媒体 Part,必填
systemInstructionobject系统指令
generationConfigobject温度、输出长度、候选数量等生成参数
safetySettingsarray安全策略配置
toolsarray工具或函数声明

模型名称、媒体类型和可用参数由当前 Gemini 渠道决定。需要 OpenAI SDK 的项目应改用 Chat Completions 格式,不要混用两套字段。