生成内容
POST
/v1beta/models/{model}:generateContent使用 Google Gemini API 格式生成内容
AnyPath 支持 Gemini 模型的原生 Google Gemini API 格式。
路径参数
参数 model
模型名称(例如:gemini-2.5-pro,gemini-2.5-flash)。
查询参数
参数 key
API Key(请求头认证的替代方式)。
认证
Gemini 端点支持多种认证方式:
?key=YOUR_API_KEY查询参数x-goog-api-key: YOUR_API_KEY请求头Authorization: Bearer YOUR_API_KEY请求头
请求体
参数 contents
对话内容。
每个内容对象包含:
role(string):user或modelparts(array):内容 part。AnyPath 当前支持:- 文本 part:
{ "text": "..." } - 内联媒体 part:
inlineData/inline_data - 基于 URL 的文件 part:
fileData/file_data
- 文本 part:
对于媒体内容,AnyPath 当前接受图片 MIME 类型。生产流量推荐使用带公开 https URL 的 fileData / file_data。
参数 systemInstruction
模型的系统指令。
参数 generationConfig
生成配置:
temperature(number): 采样温度topP(number): 核采样概率topK(integer): Top-K 采样maxOutputTokens(integer): 最大输出 token 数stopSequences(array): 停止序列
参数 safetySettings
安全过滤设置。
响应
响应字段 candidates
生成的候选内容。
响应字段 usageMetadata
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"
}
}