Перейти к основному содержанию
Платформа поддерживает доступ к моделям Gemini с использованием протокола OpenAI chat/completions и нативного протокола Gemini. Все приведенные ниже примеры используют режим без Stream. Если требуется режим Stream, достаточно изменить Path на /gemini/v1/models/:streamGenerateContent.

Быстрый старт

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"
  }'

Управление рассуждением в протоколе OpenAI

Платформа преобразует параметр reasoning_effort из запроса OpenAI chat/completions в параметры Gemini thinking.
reasoning_effortthinking
”disable”, “none""budget_tokens”: 0
”low""budget_tokens”: 1024
”medium""budget_tokens”: 2048
”high""budget_tokens”: 4096
⚠️ Нестандартные для OpenAI значения disable/none можно использовать для отключения процесса рассуждения

Настройки по умолчанию для моделей

МодельНастройка по умолчанию (если reasoning_effort не задан)
2.5 ProДинамическое рассуждение: модель решает, когда и сколько рассуждать
2.5 FlashДинамическое рассуждение: модель решает, когда и сколько рассуждать
2.5 Flash LiteРассуждение отключено
⚠️ Для Gemini 2.5 Pro невозможно отключить рассуждение; reasoning_effort: none будет преобразован в минимальный thinkingBudget 128 ⚠️ thinkingBudget поддерживается только в Gemini 2.5 Flash, 2.5 Pro и 2.5 Flash-Lite. В зависимости от подсказки модель может превысить бюджет token или использовать меньше него.

Использование серверных инструментов

С помощью Google Search модели Gemini можно связать с актуальным содержимым из интернета; поддерживаются все доступные языки. Благодаря этому Gemini может давать более точные ответы и ссылаться на проверяемые источники, опубликованные после даты отсечения знаний.
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": "Перечисли главные новости Китая за сегодня"
    }
  ],
  "tools": [
    {
      "function": {"name": "google_search"}
    }
  ]
}
EOF
Ниже приведен пример результата. В протоколе OpenAI информацию Grounding можно получить из нестандартного поля 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 предоставляет инструмент выполнения кода, который позволяет модели генерировать и запускать код Python. Затем модель может итеративно обучаться на основе результатов выполнения кода, пока не получит итоговый результат.
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
Ниже приведен пример результата. Для протокола OpenAI код и результаты выполнения кода будут отражены в content. Для протокола Gemini код находится в поле executableCode, результат выполнения — в поле codeExecutionResult, а сводка — в поле 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

С помощью инструмента URL context вы можете предоставить модели дополнительный контекст в виде URL. Добавив URL в запрос, модель получит доступ к содержимому этих веб-страниц, что позволит использовать его при формировании ответа и повысить качество ответа.
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": "Для кого подходит этот рецепт https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592"
    }
  ],
  "tools": [
    {
      "function": {"name": "url_context"}
    }
  ]
}
EOF
Пример ответа приведен ниже
{
  "id": "82f10046aebe6697ed9d33a9fa398de4",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Этот рецепт посвящен приготовлению идеальной жареной курицы от Ina Garten.\n\n**Ключевая информация:**\n* **Источник рецепта:** Ina Garten, адаптировано из «Barefoot Contessa Cookbook».\n* **Время подготовки:** 20 минут\n* **Время запекания:** 1 час 30 минут\n* **Общее время:** 2 часа 10 минут\n* **Количество порций:** 8\n* **Сложность:** средняя\n\n**Ингредиенты:**\n* Одна курица для запекания весом 5-6 фунтов\n* Кошерная соль\n* Свежемолотый черный перец\n* Большой пучок свежего тимьяна плюс 20 веточек\n* Один лимон, разрезанный пополам\n* Одна головка чеснока, разрезанная поперек пополам\n* 2 столовые ложки (1/4 пачки) сливочного масла, растопленного\n* 1 большая желтая луковица, нарезанная толстыми ломтиками\n* 4 моркови, нарезанные кусками по 2 дюйма\n* 1 кочан фенхеля, верхушки удалить, нарезать дольками\n* Оливковое масло\n\n**Шаги приготовления:**\n1. Разогрейте духовку до 425 градусов по Фаренгейту (примерно 220 градусов Цельсия).\n2. Очистите курицу от внутренностей, промойте ее внутри и снаружи. Удалите лишний жир и остатки перьев, затем обсушите курицу снаружи.\n3. Щедро посыпьте внутреннюю полость курицы солью и перцем. Положите в полость пучок тимьяна, половину лимона и весь чеснок.\n4. Смажьте курицу снаружи растопленным сливочным маслом и снова посыпьте солью и перцем.\n5. Свяжите ножки кухонной нитью и подверните кончики крыльев под тушку.\n6. Положите лук, морковь и фенхель в форму для запекания. Перемешайте с солью, перцем, 20 веточками тимьяна и оливковым маслом. Распределите овощи по дну формы, затем положите курицу сверху на овощи.\n7. Запекайте курицу 1,5 часа или пока сок не станет прозрачным при надрезе ножом между ножкой и бедром.\n8. Переложите готовую курицу и овощи на блюдо, накройте алюминиевой фольгой и дайте постоять около 20 минут.\n9. Нарежьте курицу и подавайте вместе с овощами.\n\n**Советы по приготовлению и отзывы пользователей:**\n* В рецепте указано, что если овощи начинают подрумяниваться снизу, можно добавить чашку куриного бульона, чтобы они оставались сочными.\n* Некоторые пользователи советуют использовать форму для запекания меньшего размера, чтобы овощи не подгорали.\n* Некоторые пользователи заменяли фенхель картофелем.\n* Многие пользователи отмечают, что курица получается очень нежной и сочной, с насыщенным вкусом, а процесс приготовления прост."
      },
      "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": [....]
  }
}