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
}
}
常用字段
| 字段 | 类型 | 说明 |
|---|---|---|
contents | array | 对话内容,必填 |
contents[].parts | array | 文本或媒体 Part,必填 |
systemInstruction | object | 系统指令 |
generationConfig | object | 温度、输出长度、候选数量等生成参数 |
safetySettings | array | 安全策略配置 |
tools | array | 工具或函数声明 |
模型名称、媒体类型和可用参数由当前 Gemini 渠道决定。需要 OpenAI SDK 的项目应改用 Chat Completions 格式,不要混用两套字段。