Início rápido
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"
}'
curl https://api.highwayapi.ai/gemini/v1/models/gemini-2.5-flash:generateContent \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "What is the capital of France?"}]
}],
"generationConfig": {
"thinkingConfig": {
"thinkingBudget": 1024
}
}
}'
Controle de raciocínio no protocolo OpenAI
A plataforma converterá o parâmetro reasoning_effort das solicitações OpenAI chat/completions para parâmetros thinking do Gemini.| reasoning_effort | thinking |
|---|---|
| ”disable”, “none" | "budget_tokens”: 0 |
| ”low" | "budget_tokens”: 1024 |
| ”medium" | "budget_tokens”: 2048 |
| ”high" | "budget_tokens”: 4096 |
Configurações padrão de cada modelo
| Modelo | Configuração padrão (quando reasoning_effort não é definido) |
|---|---|
| 2.5 Pro | Raciocínio dinâmico: o modelo decide quando e quanto raciocinar |
| 2.5 Flash | Raciocínio dinâmico: o modelo decide quando e quanto raciocinar |
| 2.5 Flash Lite | Raciocínio desativado |
Uso de ferramentas do lado do servidor
Google Search
Com o Google Search, é possível associar modelos Gemini a conteúdo da web em tempo real, com suporte a todos os idiomas disponíveis. Assim, o Gemini pode fornecer respostas mais precisas e citar fontes verificáveis posteriores à data de corte de conhecimento.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 as notícias em destaque na China hoje"
}
],
"tools": [
{
"function": {"name": "google_search"}
}
]
}
EOF
curl https://api.highwayapi.ai/gemini/v1/models/gemini-2.5-flash-lite:generateContent \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
"contents": [
{
"role": "user",
"parts": [{"text": "Liste as notícias em destaque na China hoje"}]
}
],
"tools": [
{
"googleSearch": {}
}
]
}
EOF
{
"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": [
...
]
}
}
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "根据您提供的搜索结果,以下是今日中国的一些热点新闻:..."
}
]
},
"finishReason": "STOP",
"index": 0,
"groundingMetadata": {
"webSearchQueries": [
"今日中国热点新闻",
"中国最新新闻头条"
],
"searchEntryPoint": {...},
"groundingChunks": [...],
"groundingSupports": [...]
}
}
]
}
Code Execution
O Gemini oferece uma ferramenta de execução de código que permite ao modelo gerar e executar código Python. Em seguida, o modelo pode iterar com base nos resultados da execução do código até obter a saída final.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
curl https://api.highwayapi.ai/gemini/v1/models/gemini-2.5-flash:generateContent \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
"contents": [
{
"role": "user",
"parts": [{"text": "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": [
{
"codeExecution": {}
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingBudget": 1024
}
}
}
EOF
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
- executableCode:
language: PYTHON
code: |
import sympy
def is_prime(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
prime_numbers = []
num = 2
while len(prime_numbers) < 50:
if is_prime(num):
prime_numbers.append(num)
num += 1
sum_of_primes = sum(prime_numbers)
print(f"The first 50 prime numbers are: {prime_numbers}")
print(f"The sum of the first 50 prime numbers is: {sum_of_primes}")
- codeExecutionResult:
outcome: OUTCOME_OK
output: >
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
- text: The sum of the first 50 prime numbers is 5117.
URL context
Com a ferramenta URL context, você pode fornecer mais contexto ao modelo na forma de URLs. Ao adicionar URLs à solicitação, o modelo acessará o conteúdo dessas páginas da web, usando-o para fundamentar a resposta e melhorar sua qualidade.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": "Para que tipo de pessoa esta receita é adequada? https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592"
}
],
"tools": [
{
"function": {"name": "url_context"}
}
]
}
EOF
curl https://api.highwayapi.ai/gemini/v1/models/gemini-2.5-flash-lite:generateContent \
-H "Authorization: Bearer <YOUR-API-KEY>" \
-H "Content-Type: application/json" -d @- <<EOF
{
"contents": [
{
"role": "user",
"parts": [{"text": "Para que tipo de pessoa esta receita é adequada? https://www.foodnetwork.com/recipes/ina-garten/perfect-roast-chicken-recipe-1940592"}]
}
],
"tools": [
{
"urlContext": {}
}
]
}
EOF
{
"id": "82f10046aebe6697ed9d33a9fa398de4",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Esta receita é sobre como preparar o frango assado perfeito da Ina Garten.\n\n**Informações principais:**\n* **Origem da receita:** Ina Garten, adaptada de 《Barefoot Contessa Cookbook》.\n* **Tempo de preparo:** 20 minutos\n* **Tempo de assar:** 1 hora e 30 minutos\n* **Tempo total:** 2 horas e 10 minutos\n* **Rendimento:** 8 porções\n* **Dificuldade:** Média\n\n**Ingredientes:**\n* Um frango para assar de 5 a 6 libras\n* Sal kosher\n* Pimenta-do-reino moída na hora\n* Um maço grande de tomilho fresco, mais 20 raminhos\n* Um limão, cortado ao meio\n* Uma cabeça de alho, cortada ao meio transversalmente\n* 2 colheres de sopa (1/4 de tablete) de manteiga derretida\n* 1 cebola amarela grande, cortada em fatias grossas\n* 4 cenouras, cortadas em pedaços de 2 polegadas\n* 1 bulbo de erva-doce, com a parte superior removida, cortado em gomos\n* Azeite de oliva\n\n**Modo de preparo:**\n1. Preaqueça o forno a 425 graus Fahrenheit (cerca de 220 graus Celsius).\n2. Limpe as vísceras do frango, lave o frango por dentro e por fora. Remova o excesso de gordura e as penas restantes, e seque a parte externa do frango com papel-toalha.\n3. Tempere generosamente o interior do frango com sal e pimenta. Coloque um maço de tomilho, meio limão e todo o alho na cavidade do frango.\n4. Pincele a parte externa do frango com manteiga derretida e tempere novamente com sal e pimenta.\n5. Amarre as pernas do frango com barbante culinário e dobre as pontas das asas para baixo do corpo do frango.\n6. Coloque a cebola, as cenouras e a erva-doce em uma assadeira. Misture com sal, pimenta, 20 raminhos de tomilho e azeite de oliva. Espalhe os legumes no fundo da assadeira e coloque o frango por cima.\n7. Asse o frango por 1,5 hora, ou até que, ao cortar entre a perna e a coxa com uma faca, os sucos saiam claros.\n8. Transfira o frango assado e os legumes para uma travessa, cubra com papel-alumínio e deixe descansar por cerca de 20 minutos.\n9. Corte o frango em fatias e sirva com os legumes.\n\n**Dicas culinárias e feedback de usuários:**\n* A receita menciona que, se os legumes começarem a dourar no fundo, é possível adicionar uma xícara de caldo de galinha para ajudar a manter a umidade.\n* Alguns usuários sugeriram usar uma assadeira menor para evitar que os legumes queimem.\n* Alguns usuários substituíram a erva-doce por batatas.\n* Muitos usuários relataram que o frango fica muito macio e suculento, cheio de sabor, e que o processo de preparo é simples."
},
"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": [....]
}
}
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "\nEsta receita é adequada para pessoas que gostam de frango assado clássico, especialmente cozinheiros domésticos que desejam preparar um prato delicioso e relativamente fácil. A dificuldade da receita é classificada como “média”, e ela leva no total 2 horas e 10 minutos (incluindo 20 minutos de preparo, 20 minutos de tempo ocioso e 1 hora e 30 minutos de cozimento).\n\nAlém disso, ela também é adequada para quem deseja preparar um prato principal impressionante para reuniões ou ocasiões especiais, pois frango assado costuma ser o destaque em mesas festivas.\n\nA receita também menciona que é possível ajustar os ingredientes de acordo com o gosto pessoal; por exemplo, há comentários mencionando que é possível omitir a erva-doce ou adicionar caldo de galinha para ajudar no Basting, o que indica que ela também pode ser adequada para quem gosta de experimentar e fazer ajustes ao cozinhar."
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": null,
"groundingMetadata": {
"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": [
{
"segment": {
"startIndex": 148,
"endIndex": 317,
"text": "A dificuldade da receita é classificada como “média”, e ela leva no total 2 horas e 10 minutos (incluindo 20 minutos de preparo, 20 minutos de tempo ocioso e 1 hora e 30 minutos de cozimento)."
},
"groundingChunkIndices": [
0
]
},
{
"segment": {
"startIndex": 319,
"endIndex": 475,
"text": "Além disso, ela também é adequada para quem deseja preparar um prato principal impressionante para reuniões ou ocasiões especiais, pois frango assado costuma ser o destaque em mesas festivas."
},
"groundingChunkIndices": [
0
]
},
{
"segment": {
"startIndex": 477,
"endIndex": 695,
"text": "A receita também menciona que é possível ajustar os ingredientes de acordo com o gosto pessoal; por exemplo, há comentários mencionando que é possível omitir a erva-doce ou adicionar caldo de galinha para ajudar no Basting, o que indica que ela também pode ser adequada para quem gosta de experimentar e fazer ajustes ao cozinhar."
},
"groundingChunkIndices": [
0
]
}
]
}
}
],
"promptFeedback": {
"safetyRatings": null
},
"usageMetadata": {
"promptTokenCount": 37,
"candidatesTokenCount": 159,
"totalTokenCount": 3270,
"trafficType": "ON_DEMAND",
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 37
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 159
}
],
"toolUsePromptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 3074
}
],
"toolUsePromptTokenCount": 3074
},
"responseId": "0472efecb0da2db5f78d047e70e54db6",
"modelVersion": "gemini-2.5-flash-lite"
}