API Gemini compatible

Puyun AI est compatible avec le protocole Google Gemini API. Vous pouvez utiliser directement le SDK Google AI ou tout client compatible Gemini pour vous connecter.

URL de base

text
https://ai.tracup.com

Authentification

Le protocole Gemini utilise des paramètres de requête URL pour l'authentification :

  • Paramètre API Key : ?key=<your-api-key>

L'authentification par en-tête est également prise en charge :

  • Bearer Token : Authorization: Bearer <your-api-key>
  • En-tête x-api-key : x-api-key: <your-api-key>

Generate Content

Point de terminaison de génération de contenu compatible Gemini.

bash
curl "https://ai.tracup.com/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Expliquez l'informatique quantique"}
        ]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Paramètres de la requête :

ParamètreTypeRequisDescription
contentsarrayOuiTableau de contenu, contenant l'historique de conversation
generationConfigobjectNonConfiguration de génération
generationConfig.temperaturenumberNonTempérature d'échantillonnage (0-2)
generationConfig.maxOutputTokensintegerNonNombre maximal de Token en sortie
generationConfig.topPnumberNonProbabilité de nucleus sampling
generationConfig.topKintegerNonÉchantillonnage Top-K
generationConfig.stopSequencesarrayNonSéquences d'arrêt
systemInstructionobjectNonInstruction système
toolsarrayNonDéfinitions d'outils Function Calling

Exemple de réponse :

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {"text": "L'informatique quantique est une discipline qui exploite les principes de la mécanique quantique..."}
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 25,
    "candidatesTokenCount": 128,
    "totalTokenCount": 153
  },
  "modelVersion": "gemini-2.5-pro"
}

Stream Generate Content

Point de terminaison de génération de contenu en streaming.

bash
curl "https://ai.tracup.com/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key&alt=sse" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Expliquez l'informatique quantique"}
        ]
      }
    ]
  }'

Les réponses en streaming utilisent le format SSE. Chaque événement contient une partie du contenu généré.

Lister les modèles

Retourne la liste des modèles Gemini disponibles.

bash
curl "https://ai.tracup.com/v1beta/models?key=sk-your-api-key"

Conversion automatique de protocole

Lorsque vous appelez un modèle non-Google via le point de terminaison Gemini, Puyun AI effectue automatiquement la conversion de protocole :

  • Conversion de requête : transformation du format Gemini generateContent vers le format natif du modèle cible
  • Conversion de réponse : transformation de la réponse du modèle cible au format Gemini
  • Adaptation du streaming : les réponses en streaming sont automatiquement adaptées au format d'événements SSE de Gemini

Utiliser le SDK Google AI

python
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    client_options={"api_endpoint": "https://ai.tracup.com"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("Bonjour !")
print(response.text)
javascript
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI("sk-your-api-key");
// Définir l'URL de base personnalisée
const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });

Entrée multimodale

Gemini prend nativement en charge l'entrée multimodale :

python
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content([
    "Décrivez cette image",
    {"inline_data": {"mime_type": "image/png", "data": "<base64-encoded-image>"}}
])

Réponses d'erreur

Les réponses d'erreur suivent le format d'erreur Gemini :

json
{
  "error": {
    "code": 400,
    "message": "API key not valid",
    "status": "INVALID_ARGUMENT"
  }
}
Code HTTPSignification
400Paramètres de requête invalides
401Échec d'authentification
403Permissions insuffisantes
404Modèle introuvable
429Limite de débit ou solde insuffisant
500Erreur interne du serveur