Docs

生成内容

POST/v1beta/models/{model}:generateContent

使用 Google Gemini API 格式生成内容

本页目录
  1. 路径参数
  2. 查询参数
  3. 认证
  4. 请求体
  5. 响应
  6. 请求示例
  7. 多模态输入示例
  8. 图片输入示例
  9. 响应示例
  10. 错误响应示例

AnyPath 支持 Gemini 模型的原生 Google Gemini API 格式。

路径参数

参数 model

类型:string

位置:path

必填:是

模型名称(例如:gemini-2.5-pro,gemini-2.5-flash)。

查询参数

参数 key

类型:string

位置:query

API Key(请求头认证的替代方式)。

认证

Gemini 端点支持多种认证方式:

  • ?key=YOUR_API_KEY 查询参数
  • x-goog-api-key: YOUR_API_KEY 请求头
  • Authorization: Bearer YOUR_API_KEY 请求头

请求体

参数 contents

类型:array

位置:body

必填:是

对话内容。

每个内容对象包含:

  • role (string):user 或 model
  • parts (array):内容 part。AnyPath 当前支持:
    • 文本 part:{ "text": "..." }
    • 内联媒体 part:inlineData / inline_data
    • 基于 URL 的文件 part:fileData / file_data

对于媒体内容,AnyPath 当前接受图片 MIME 类型。生产流量推荐使用带公开 https URL 的 fileData / file_data。

参数 systemInstruction

类型:object

位置:body

模型的系统指令。

参数 generationConfig

类型:object

位置:body

生成配置:

  • temperature (number): 采样温度
  • topP (number): 核采样概率
  • topK (integer): Top-K 采样
  • maxOutputTokens (integer): 最大输出 token 数
  • stopSequences (array): 停止序列

参数 safetySettings

类型:array

位置:body

安全过滤设置。

响应

响应字段 candidates

类型:array

生成的候选内容。

响应字段 usageMetadata

类型:object

Token 使用信息。

请求示例

curl -X POST "https://api.anypath.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [{"text": "Hello, Gemini!"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    transport="rest",
    client_options={"api_endpoint": "api.anypath.dev"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("Hello, Gemini!")

print(response.text)
import { GoogleGenerativeAI } from "@google/generative-ai";

const genAI = new GoogleGenerativeAI("sk-your-api-key", {
  baseUrl: "https://api.anypath.dev"
});

const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });
const result = await model.generateContent("Hello, Gemini!");

console.log(result.response.text());
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "contents": []map[string]interface{}{
            {
                "parts": []map[string]string{
                    {"text": "Hello, Gemini!"},
                },
            },
        },
        "generationConfig": map[string]interface{}{
            "temperature":    0.7,
            "maxOutputTokens": 1024,
        },
    }

    jsonData, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST",
        "https://api.anypath.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key",
        bytes.NewBuffer(jsonData))
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
<?php
$payload = [
    'contents' => [
        [
            'parts' => [
                ['text' => 'Hello, Gemini!']
            ]
        ]
    ],
    'generationConfig' => [
        'temperature' => 0.7,
        'maxOutputTokens' => 1024
    ]
];

$ch = curl_init('https://api.anypath.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode($payload)
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo $data['candidates'][0]['content']['parts'][0]['text'];

多模态输入示例

对于 Gemini 多模态请求,请把媒体放到 contents[].parts[] 中,可以使用“内联字节”或“基于 URL 的文件引用”两种方式。

当前公共 Gemini 契约支持的媒体类别:

  • 图片

对于内联媒体,使用 inlineData 或 inline_data,并传入文件字节的 Base64 内容。

对于 URL 媒体,使用 fileData 或 file_data,并传入一个可公开访问的 https URL。

图片输入示例

使用内联图片字节:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "请描述这张图片。" },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

使用图片 URL:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "请描述这张图片。" },
        {
          "fileData": {
            "mimeType": "image/jpeg",
            "fileUri": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}

响应示例

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "Hello! How can I assist you today?"}
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 10,
    "totalTokenCount": 15
  }
}

错误响应示例

{
  "error": {
    "message": "API key spending limit exceeded.",
    "type": "spending_limit_exceeded",
    "code": "spending_limit_exceeded"
  }
}
{
  "error": {
    "message": "The requested model does not exist or is not available.",
    "type": "model_not_found",
    "code": "model_not_found"
  }
}