Passer au contenu principal
La plateforme prend en charge l’accès aux modèles Gemini via le protocole OpenAI chat/completions et le protocole natif Gemini. Les exemples ci-dessous utilisent tous le mode non Stream. Si vous avez besoin du mode Stream, remplacez simplement le Path par /gemini/v1/models/:streamGenerateContent.

Démarrage rapide

curl https://api.highwayapi.ai/openai/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-d '{
    "model": "gemini-2.5-flash",
    "messages": [{
        "role": "user", "content": "What is the capital of France?"
    }],
    "reasoning_effort": "low"
  }'

Contrôle du raisonnement avec le protocole OpenAI

La plateforme convertit le paramètre reasoning_effort des requêtes OpenAI chat/completions en paramètres thinking de Gemini.
reasoning_effortthinking
”disable”, “none""budget_tokens”: 0
”low""budget_tokens”: 1024
”medium""budget_tokens”: 2048
”high""budget_tokens”: 4096
⚠️ Les valeurs non standard OpenAI disable/none peuvent être utilisées pour désactiver le processus de raisonnement

Paramètres par défaut selon le modèle

ModèleParamètre par défaut (si reasoning_effort n’est pas défini)
2.5 ProRaisonnement dynamique : le modèle décide quand raisonner et dans quelle mesure
2.5 FlashRaisonnement dynamique : le modèle décide quand raisonner et dans quelle mesure
2.5 Flash LiteRaisonnement désactivé
⚠️ Il n’est pas possible de désactiver le raisonnement pour Gemini 2.5 Pro ; reasoning_effort: none sera converti en thinkingBudget minimal de 128 ⚠️ thinkingBudget est uniquement pris en charge dans Gemini 2.5 Flash, 2.5 Pro et 2.5 Flash-Lite. Selon le prompt, le modèle peut dépasser ou rester en dessous du budget de tokens.

Utilisation des outils côté serveur

Grâce à Google Search, vous pouvez relier les modèles Gemini à du contenu Web en temps réel, avec prise en charge de toutes les langues disponibles. Gemini peut ainsi fournir des réponses plus précises et citer des sources vérifiables postérieures à la date limite de ses connaissances.
curl https://api.highwayapi.ai/openai/chat/completions \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
  "model": "gemini-2.5-flash-lite",
  "messages": [
    {
      "role": "user",
      "content": "Liste les actualités les plus populaires en Chine aujourd’hui"
    }
  ],
  "tools": [
    {
      "function": {"name": "google_search"}
    }
  ]
}
EOF
Un exemple de résultat est présenté ci-dessous. Avec le protocole OpenAI, les informations de Grounding sont disponibles dans le champ non standard gemini_grounding_metadata.
{
  "id": "dcc7eab10b5adeb9e8648d134e815409",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here are some of today's top news in China: ..."
      },
      "finish_reason": "stop"
    }
  ],
  "gemini_grounding_metadata": {  # 👈 GEMINI GROUNDING
    "webSearchQueries": [
      "中国今日热点新闻"
    ],
    ...
    "groundingChunks": [
      ...
    ]
  }
}

Code Execution

Gemini fournit un outil d’exécution de code qui permet au modèle de générer et d’exécuter du code Python. Le modèle peut ensuite apprendre de manière itérative à partir des résultats d’exécution du code jusqu’à obtenir la sortie finale.
curl https://api.highwayapi.ai/openai/chat/completions \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
  "model": "gemini-2.5-flash",
  "messages": [
    {
      "role": "user",
      "content": "What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50."
    }
  ],
  "tools": [
      {
           "function":  {"name": "code_execution"}
      }
  ],
  "reasoning_effort": "low"
}
EOF
Un exemple de résultat est présenté ci-dessous. Pour le protocole OpenAI, le code et les résultats d’exécution du code apparaîtront dans content. Pour le protocole Gemini, le code se trouve dans le champ executableCode, le résultat d’exécution dans le champ codeExecutionResult, et le résumé dans le champ text.
Okay, I can help you with that. I will write a Python script to find the
first 50 prime numbers and then calculate their sum.

Here's the plan:

1.  Create a function to check if a number is prime.
2.  Create a function to generate the first `n` prime numbers.
3.  Call the generation function for the first 50 primes.
4.  Sum the resulting list of primes.

Here is the code to perform this calculation:

```PYTHON
def is_prime(num):
    """Checks if a number is prime."""
    if num <= 1:
        return False
    if num <= 3:
        return True
    if num % 2 == 0 or num % 3 == 0:
        return False
    i = 5
    while i * i <= num:
        if num % i == 0 or num % (i + 2) == 0:
            return False
        i += 6
    return True

def get_first_n_primes(n):
    """Generates a list of the first n prime numbers."""
    primes = []
    num = 2
    while len(primes) < n:
        if is_prime(num):
            primes.append(num)
        num += 1
    return primes

# Get the first 50 prime numbers
first_50_primes = get_first_n_primes(50)


# Calculate the sum of these prime numbers

sum_of_primes = sum(first_50_primes)


print(f"The first 50 prime numbers are: {first_50_primes}")

print(f"The sum of the first 50 prime numbers is: {sum_of_primes}")
```

The first 50 prime numbers are: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,
109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191,
193, 197, 199, 211, 223, 227, 229]

The sum of the first 50 prime numbers is: 5117

URL context

À l’aide de l’outil URL context, vous pouvez fournir davantage de contexte au modèle sous forme d’URL. En ajoutant des URL à la requête, le modèle consultera le contenu de ces pages Web afin d’éclairer sa réponse et d’en améliorer la qualité.
curl https://api.highwayapi.ai/openai/chat/completions \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
  "model": "gemini-2.5-flash-lite",
  "messages": [
    {
      "role": "user",
      "content": "À quel public cette recette convient-elle ? https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592"
    }
  ],
  "tools": [
    {
      "function": {"name": "url_context"}
    }
  ]
}
EOF
Exemple de réponse :
{
  "id": "82f10046aebe6697ed9d33a9fa398de4",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Cette recette explique comment préparer le poulet rôti parfait d’Ina Garten.\n\n**Informations clés :**\n* **Source de la recette :** Ina Garten, adaptée du « Barefoot Contessa Cookbook ».\n* **Temps de préparation :** 20 minutes\n* **Temps de cuisson :** 1 heure 30 minutes\n* **Temps total :** 2 heures 10 minutes\n* **Portions :** 8 personnes\n* **Difficulté :** moyenne\n\n**Ingrédients :**\n* Un poulet à rôtir de 5 à 6 livres\n* Sel casher\n* Poivre noir fraîchement moulu\n* Une grosse botte de thym frais, plus 20 brins\n* Un citron, coupé en deux\n* Une tête d’ail, coupée en deux dans le sens de la largeur\n* 2 cuillères à soupe (1/4 de bâton) de beurre fondu\n* 1 gros oignon jaune, coupé en tranches épaisses\n* 4 carottes, coupées en morceaux de 2 pouces\n* 1 bulbe de fenouil, fanes retirées, coupé en quartiers\n* Huile d’olive\n\n**Étapes de préparation :**\n1. Préchauffer le four à 425 °F (environ 220 °C).\n2. Retirer les abats du poulet, puis rincer l’intérieur et l’extérieur du poulet. Retirer l’excès de gras et les éventuelles plumes restantes, puis sécher l’extérieur du poulet en le tamponnant.\n3. Saler et poivrer généreusement l’intérieur du poulet. Placer une botte de thym, un demi-citron et tout l’ail dans la cavité du poulet.\n4. Badigeonner l’extérieur du poulet de beurre fondu, puis saler et poivrer à nouveau.\n5. Ficeler les cuisses avec de la ficelle de cuisine et replier les extrémités des ailes sous le poulet.\n6. Placer l’oignon, les carottes et le fenouil dans un plat à rôtir. Mélanger avec du sel, du poivre, 20 brins de thym et de l’huile d’olive. Étaler les légumes au fond du plat, puis déposer le poulet dessus.\n7. Faire rôtir le poulet pendant 1,5 heure, ou jusqu’à ce que le jus soit clair lorsqu’on coupe entre la cuisse et le thigh avec un couteau.\n8. Transférer le poulet rôti et les légumes dans un plat, couvrir de papier aluminium et laisser reposer environ 20 minutes.\n9. Découper le poulet et le servir avec les légumes.\n\n**Conseils de cuisson et retours des utilisateurs :**\n* La recette indique que si le dessous des légumes commence à brunir, il est possible d’ajouter une tasse de bouillon de poulet pour aider à conserver l’humidité.\n* Certains utilisateurs suggèrent d’utiliser un plat à rôtir plus petit afin d’éviter que les légumes ne brûlent.\n* Certains utilisateurs remplacent le fenouil par des pommes de terre.\n* De nombreux utilisateurs indiquent que le poulet est très tendre, juteux, savoureux, et que la préparation est simple."
      },
      "finish_reason": "stop"
    }
  ],
  "gemini_grounding_metadata": {
    "groundingChunks": [
      {
        "web": {
          "uri": "https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592",
          "title": "Perfect Roast Chicken Recipe | Ina Garten | Food Network"
        }
      }
    ],
    "groundingSupports": [....]
  }
}