Gemini natif
Générer du contenu
Génère du contenu en utilisant le format de l'API Google Gemini
Utilisez les formats de requête et de réponse Gemini avec un modèle renvoyé par l'API Gemini Models. Le format ProtoJSON lowerCamelCase ainsi que les noms de champs correspondants en proto snake_case sont acceptés. Les champs optionnels et les valeurs pris en charge dépendent du modèle sélectionné.
Paramètres de chemin
Nom du modèle (par ex. gemini-2.5-pro, gemini-3.5-flash).
Paramètres de requête
Clé API (alternative à l'authentification par en-tête).
Authentification
Les endpoints Gemini prennent en charge plusieurs méthodes d'authentification :
- Paramètre de requête
?key=YOUR_API_KEY - En-tête
x-goog-api-key: YOUR_API_KEY - En-tête
Authorization: Bearer YOUR_API_KEY
Corps de la requête
Contenu de la conversation avec parts et un role optionnel. Les parties multimédias utilisent inlineData / inline_data ou fileData / file_data. Les fichiers et les ID de cache créés par TokenLab ne peuvent être utilisés que dans leur espace de travail (Workspace) propriétaire.
Instruction système pour le modèle.
Paramètres de génération tels que temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema et thinkingConfig. Les noms correspondants en snake_case sont également acceptés. Les valeurs et combinaisons prises en charge dépendent du modèle.
Paramètres des filtres de sécurité.
Chaque champ en lowerCamelCase présenté ci-dessus peut également utiliser son orthographe officielle en proto snake_case, par exemple system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri et inline_data.mime_type.
Méthodes prises en charge
L'API compatible Gemini inclut la liste/récupération de modèles, generateContent, streamGenerateContent, countTokens, embedContent et batchEmbedContents. Les fonctionnalités Gemini Interactions et Live ne sont pas disponibles.
Réponse
Candidats de contenu généré.
Informations sur l'utilisation des tokens.
Requête
curl -X POST "https://api.tokenlab.sh/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
}
}'Exemple d'entrée Vision
Pour les requêtes multimodales Gemini, placez le média dans contents[].parts[] en utilisant soit des octets en ligne, soit des références de fichiers basées sur des URL.
Catégories de médias prises en charge dans les détails du modèle Gemini :
- image
- audio
- video
Pour les médias en ligne, utilisez inlineData ou inline_data et transmettez les octets du fichier encodés en Base64.
Pour les médias basés sur une URL, utilisez fileData ou file_data et transmettez une URL https publique.
Exemple d'entrée Vidéo
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this video." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/demo.mp4"
}
}
]
}
]
}Exemple d'entrée Audio
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this audio." },
{
"fileData": {
"mimeType": "audio/mpeg",
"fileUri": "https://example.com/demo.mp3"
}
}
]
}
]
}Exemple d'entrée Image
Utilisez des octets d'image en ligne :
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}Utilisez une URL d'image :
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"fileData": {
"mimeType": "image/jpeg",
"fileUri": "https://example.com/demo.jpg"
}
}
]
}
]
}Exemple d'entrée Audio
Utilisez une URL audio :
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Transcribe and summarize this audio." },
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "https://example.com/sample.mp3"
}
}
]
}
]
}Exemple d'entrée Vidéo
Utilisez une URL vidéo :
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Describe this video briefly." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample.mp4"
}
}
]
}
]
}Réponse
{
"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
}
}Interfaces associées
Lisez les détails du modèle sélectionné avant d'utiliser une autre interface. La disponibilité et les champs de requête dépendent du modèle.
| HTTP | API |
|---|---|
| POST | /v1beta/models/{model}:countTokens |
| POST | /v1beta/models/{model}:embedContent |
| POST | /v1beta/models/{model}:batchEmbedContents |
Le comptage de tokens nécessite une clé API et n'est pas facturé. Le nombre d'entrées renvoyé est une estimation à des fins de planification ; utilisez l'utilisation finale de la réponse et le relevé de facturation pour le coût réel.
countTokens: contents / generateContentRequest
embedContent: content, taskType, title, outputDimensionality
batchEmbedContents: requests
Autorisation
BearerAuth Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.
Emplacement: header
Paramètres de chemin
Nom du modèle (par ex., gemini-2.5-pro)
Paramètres de requête
Clé API (alternative à l'authentification par en-tête)
En-têtes
Politique de livraison par requête. Remplace les valeurs par défaut de la clé API et de l'espace de travail. Tente automatiquement TokenLab Verified en premier et peut basculer une fois vers Official uniquement avant la sortie, l'acceptation de la requête ou la création de ressource persistante.
Valeurs possibles
- "auto"
- "verified"
- "official"
Corps de la requête
application/json
Requête native Gemini GenerateContent. Les noms ProtoJSON lowerCamelCase et proto snake_case originaux sont tous deux acceptés et préservés, y compris les requêtes mixtes. Si les deux orthographes d'un champ sont présentes, TokenLab ne les fusionne pas et ne choisit pas de priorité locale. Les champs inconnus sont transmis au mieux.
Réponse
application/json
application/json
application/json
application/json
application/json
application/json