创建 Gemini Content
面向 Gemini generateContent 协议的生文与多模态调用。请求路径与 JSON 形态与 Google Gemini Developer API 一致;模型 ID 在 URL 路径中。
适用模型示例:gemini-2.5-flash、gemini-2.5-pro、gemini-3.5-flash。模型 ID 见 获取模型 或 模型广场。
本页路径不在 /v1 之下,使用下方 API Host。流式由 URL 后缀区分,不依赖请求体中的 stream 字段。
Endpoint
| Method | URL |
|---|---|
POST | {TRINITY_API_HOST}/v1beta/models/{model}:generateContent |
POST | {TRINITY_API_HOST}/v1beta/models/{model}:streamGenerateContent |
Base URL
| 项 | 值 |
|---|---|
| API Host | https://api.trinitydesk.ai |
| 协议 | HTTPS |
text
https://api.trinitydesk.ai/v1beta/models/gemini-2.5-flash:generateContentbash
export TRINITY_API_HOST="https://api.trinitydesk.ai"
export TRINITY_API_KEY="xh-..."Headers
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 与下方二选一 | Bearer <TRINITY_API_KEY> |
x-goog-api-key | 与上方二选一 | <TRINITY_API_KEY> |
x-api-key | 否 | 同一 API Key |
Content-Type | 是 | application/json |
Accept | 流式时 | text/event-stream |
多个鉴权头均非空时优先级:x-goog-api-key → x-api-key → Authorization: Bearer。
请求示例
非流式 · Bearer
bash
curl -sS "${TRINITY_API_HOST}/v1beta/models/gemini-2.5-flash:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TRINITY_API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{ "text": "用一句话介绍你自己" }]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 256
}
}'非流式 · x-goog-api-key
bash
curl -sS "${TRINITY_API_HOST}/v1beta/models/gemini-2.5-flash:generateContent" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${TRINITY_API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{ "text": "Hello" }]
}
]
}'流式
bash
curl -sS -N "${TRINITY_API_HOST}/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-H "Authorization: Bearer ${TRINITY_API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{ "text": "你好" }]
}
]
}'含图片
bash
curl -sS "${TRINITY_API_HOST}/v1beta/models/gemini-2.5-flash:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TRINITY_API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{ "text": "描述这张图片" },
{
"inline_data": {
"mime_type": "image/jpeg",
"data": "<BASE64>"
}
}
]
}
]
}'请求体字段
| 字段 | 必填 | 说明 |
|---|---|---|
contents | 是 | 对话轮次数组;元素含 role、parts |
contents[].parts | 是 | 文本 text、图片 inline_data / file_data 等 |
generationConfig | 否 | 如 temperature、maxOutputTokens、topP、stopSequences |
safetySettings | 否 | 安全相关配置 |
tools | 否 | 工具 / 函数声明 |
systemInstruction | 否 | 系统指令 |
cachedContent | 否 | 缓存内容引用 |
请求体无需 model 字段(模型已在路径中)。完整字段见 Google Gemini generateContent。
返回字段
| 字段 | 说明 |
|---|---|
candidates | 生成结果列表 |
candidates[].content.parts | 模型输出 parts(常见为 text) |
candidates[].finishReason | 结束原因,如 STOP |
usageMetadata.promptTokenCount | 输入 token |
usageMetadata.candidatesTokenCount | 输出 token |
usageMetadata.totalTokenCount | 合计 token |
promptFeedback | 提示反馈(若有) |
返回示例
成功(非流式)
json
{
"candidates": [
{
"content": {
"role": "model",
"parts": [{ "text": "你好,我是 Gemini。" }]
},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 8,
"candidatesTokenCount": 12,
"totalTokenCount": 20
}
}流式
Content-Type: text/event-stream。事件为 Gemini streamGenerateContent SSE 分片。
失败
error 对象含 message、type、code,见 错误与调试。
Python 示例
python
import os
import requests
host = os.environ["TRINITY_API_HOST"]
key = os.environ["TRINITY_API_KEY"]
model = "gemini-2.5-flash"
url = f"{host}/v1beta/models/{model}:generateContent"
r = requests.post(
url,
headers={
"Authorization": f"Bearer {key}",
"Content-Type": "application/json",
},
json={
"contents": [
{"role": "user", "parts": [{"text": "用一句话介绍你自己"}]}
],
"generationConfig": {"maxOutputTokens": 256},
},
timeout=120,
)
r.raise_for_status()
print(r.json())