{
"candidates": [
{
"index": 0,
"finishReason": "STOP",
"content": {
"role": "model",
"parts": [
{
"text": "Hello."
}
]
}
}
]
}{}API 参考
Gemini generateContent
通过模型路径创建 Gemini 原生内容。
{
"candidates": [
{
"index": 0,
"finishReason": "STOP",
"content": {
"role": "model",
"parts": [
{
"text": "Hello."
}
]
}
}
]
}{}POST /v1beta/models/{model}:generateContent
使用 x-goog-api-key 请求头传入网关令牌。模型位于路径;请求体使用 contents 和可选 systemInstruction。角色为 user / model,文本在 parts[] 中。
检查 promptFeedback、候选数量与 finishReason,再读取 candidates[].content.parts。空候选、安全阻断、工具块和截断响应不能作为完整文本。
原生 Gemini 指南与完整 TypeScript 示例包含路径与认证、可运行代码及失败处理。SSE 使用另一动作 :streamGenerateContent?alt=sse,此操作的参数表仅描述非流式 generateContent;尚未展开全部工具、多模态与生成配置字段。项目未实现 /v1beta/...:countTokens,当前返回 404。
核对版本:d851a5faa49a00abaafd27bf91b311506fbfbc52. 源文件记录在此操作的 x-source-files。
原生 SSE 与工具闭环的 Python 示例提供纯文本和工具两种模式,保留原生结果关联与签名。
Read in English
媒体内容项
原生contents[].parts[] 可以包含 inlineData: {mimeType, data} 或 fileData: {mimeType, fileUri},前者使用纯 Base64;内容格式和来源必须受目标上游支持。videoMetadata、mediaResolution 是条件支持的原生扩展,不是网关统一转码或抽帧服务。
媒体输入不改变响应协议和完成检查。网关没有在已核查范围内提供 Gemini Files 上传/管理或 Interactions 端点;SDK 自动上传会产生额外的未支持请求。先使用 视频理解的完整非流式示例,流式输出仍按本接口 SSE 事件处理。
内置工具与原生结果元数据
使用tools[].googleSearch、urlContext 或 codeExecution 的空对象启用受支持的原生工具。检查候选的 groundingMetadata / urlContextMetadata,或内容块中的 executableCode / codeExecutionResult。只有 STOP 不证明执行成功。当前原生处理器转发原始响应 JSON,不应推断转换后的协议或请求回放中的未知字段也有同样行为。可运行示例与完成规则。授权
GeminiApiKeyBearerAuth
网关令牌 / Gateway token
路径参数
裸模型 ID,不含 models/ 和动作后缀 / Bare model ID without models/ or an action suffix.
示例:
"YOUR_MODEL_ID"
请求体
application/json