Praktyczny, nastawiony na kod przewodnik po Gemini 3.1 Pro — czym jest, jak je wywoływać (w tym przez CometAPI), kontrolach multimodalnych i „poziomu myślenia”, wywoływaniu funkcji/korzystaniu z narzędzi, wskazówkach vibe-coding oraz integracjach z GitHub Copilot, VS Code, Gemini CLI i Google Antigravity. Gemini 3.1 Pro przesuwa granice dużych modeli multimodalnych z wyraźnie ukierunkowaną opowieścią dla deweloperów: większe okna kontekstu, konfigurowalne tryby „myślenia”, ulepszone wywoływanie narzędzi i funkcji oraz jawne wsparcie dla agentowych przepływów pracy.
Czym jest Gemini 3.1 Pro?
Gemini 3.1 Pro to najnowszy poziom „Pro” w rodzinie Gemini 3: natywnie multimodalny, nastawiony na rozumowanie model dostrojony do złożonych, wieloetapowych zadań i agentowego użycia narzędzi. Jest przedstawiany jako udoskonalenie względem Gemini 3 Pro w trzech praktycznych obszarach: silniejsze rozumowanie/ugruntowanie faktów, lepsza efektywność tokenowa oraz kontrolowalne tryby wykonania skierowane do przepływów deweloperskich (kod, planowanie, zadania wspomagane wyszukiwaniem). Karta modelu i strony dla deweloperów opisują go jako zoptymalizowanego pod zachowania inżynierii oprogramowania, agentowe potoki i wejścia multimodalne (tekst, obrazy, audio, wideo i repozytoria).
Dlaczego to dla Ciebie ważne: połączenie okna kontekstu o rozmiarze miliona tokenów (w wielu wariantach u dostawców), jawnych prymitywów wywoływania funkcji oraz kontroli „poziomu myślenia” daje zespołom bardziej przewidywalne koszty i wyniki — od szybkiego prototypowania po produkcyjną orkiestrację agentów. CometAPI już udostępnia 3.1 Pro przez rynki API i mostki zgodne z OpenAI, oferując wzorce dostępu „pay-as-you-go”.
Jak korzystać z Gemini 3.1 Pro API (CometAPI)?
Czego potrzebuję, zanim zacznę?
Checklist (wymagania wstępne)
- Konto CometAPI i klucz API CometAPI (przechowuj w zmiennych środowiskowych).
- Opcjonalnie projekt Google Cloud / Google AI Studio i klucz API Gemini, jeśli kiedykolwiek wywołujesz bezpośrednio Google (nie wymagane przy korzystaniu z Comet).
python 3.9+lubnode 18+, dostępnycurldo szybkich testów.- Bezpieczny mechanizm zarządzania sekretami: zmienne środowiskowe, sejf (vault) lub magazyn sekretów CI.
- Potwierdź identyfikator modelu Comet dla Gemini 3.1 Pro w swoim konsolowym panelu Comet (np. „"google/gemini-3.1-pro"” lub alias specyficzny dla Comet).
CometAPI obsługuje wywołania w natywnym formacie Gemini oraz w formacie czatu zgodnym z OpenAI. CometAPI upraszcza przełączanie modeli, oferuje pojedynczy bazowy URL i SDK oraz może zmniejszyć tarcia integracji w środowiskach wielodostawców.
Poniżej dwa konkretne, łatwe do skopiowania przykłady: najpierw wywołanie Gemini przez CometAPI (klient zgodny z OpenAI), a następnie wywołanie Gemini przez oficjalny punkt końcowy HTTP Gemini od Google. Zastąp YOUR_API_KEY kluczem dostawcy i ustaw nazwy modeli na dostępny wariant dostawcy (np. gemini-3.1-pro-preview, gdzie jest dostępny).
Przykład: wywołanie Gemini 3.1 Pro z użyciem CometAPI (curl + Python)
Curl (opakowanie zgodne z OpenAI z użyciem bazowego URL CometAPI)
# curl example: CometAPI (OpenAI-compatible)curl https://api.cometapi.com/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.1-pro-preview", "messages": [ {"role":"system","content":"You are a concise programming assistant."}, {"role":"user","content":"Write a Python function to fetch CSV from a URL and return pandas DataFrame."} ], "max_tokens": 800 }'
Python (klient zgodny z OpenAI skonfigurowany na CometAPI base_url)
from openai import OpenAI # or openai-python-compatible SDK offered by your platformclient = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.cometapi.com/v1")resp = client.chat.completions.create( model="gemini-3.1-pro-preview", messages=[ {"role": "system", "content": "You are a concise programming assistant."}, {"role": "user", "content": "Write a Python function to fetch CSV from a URL and return pandas DataFrame."} ], max_tokens=800,)print(resp.choices[0].message.content)
Uzasadnienie: CometAPI udostępnia most zgodny z OpenAI w wielu swoich materiałach, co pozwala ponownie użyć istniejącego klienta OpenAI, zmieniając tylko
base_urli nazwę modelu. To wygodne przy eksperymentach z wieloma dostawcami i szybkim prototypowaniu.
Przykład: wywołanie Gemini przez oficjalne API Gemini (Node.js / HTTP)
Oficjalne punkty końcowe Gemini od Google są najlepsze dla pełnego zestawu funkcji (kontrole poziomu myślenia, wywoływanie funkcji, przesyłanie multimodalne). Poniżej minimalny przykład HTTP z użyciem powierzchni API Gemini opisanej w dokumentacji dla deweloperów Google AI.
Wystarczy zastąpić bazowy URL i klucz API w oficjalnym SDK lub zapytaniach, aby z niego korzystać:
- Base URL: https://api.cometapi.com (zastępuje
generativelanguage.googleapis.com) - API Key: Zastąp
$GEMINI_API_KEYswoim$COMETAPI_KEY
Curl (oficjalne API Gemini — przykładowo)
curl "https://api.cometapi.com/v1beta/models/gemini-3-1-pro-preview:generateContent" \
-H "x-goog-api-key: $COMETAPI_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "How does AI work?"
}
]
}
]
}'
Najczęściej ustawiane parametry
temperature(0.0–1.0) — losowość. Użyj0.0dla deterministycznych wyjść kodu.max_output_tokens/max_tokens— budżet długości wyjścia.top_p— próbkowanie nucleus (top-p).presence_penalty/frequency_penalty— ogranicza powtórzenia.thinking_levellub wariant modelu — określa głębokość rozumowania (np.-low,-medium,-highlub jawnythinking_level). Aby kontrolować koszt/opóźnienie, używaj najniższego poziomu, który spełnia wymagania dokładności.
Jakie są możliwości multimodalne Gemini 3.1 Pro?
Jakie modalności obsługuje Gemini 3.1 Pro?
Gemini 3.1 Pro przyjmuje tekst, obrazy, wideo, audio i PDF w wielu wersjach preview — i potrafi generować tekstowe wyjścia odnoszące się do treści multimodalnych lub je podsumowujące. Comet obsługuje przekazywanie wejść multimodalnych do Gemini — albo przez URL obrazu, przesyłanie plików (Comet file API), albo pozwalając Gemini czytać pliki przechowywane w chmurze.
Jak deweloperzy powinni myśleć o promptach multimodalnych?
- Strukturyzuj prompty multimodalne z wyraźnymi blokami kontekstu: np. najpierw dodaj krótką instrukcję tekstową, a następnie dołącz metadane lub odnośniki do obrazów/wideo/PDF.
- Używaj załączników multimedialnych SDK i pól przesyłania plików zamiast osadzania danych binarnych w polach tekstowych — oficjalni klienci oraz przykłady Vertex AI / Gemini API pokazują, jak przekazywać media w czysty sposób.
Praktyczny przykład (pseudokod): pokaż obraz plus pytanie
# Pseudocode — attach an image with a caption and ask a questionfrom google.gemini import GemSDK # conceptual import; use official client per docsresponse = client.generate( model="gemini-3.1-pro-preview", inputs = [ {"type": "text", "content": "Summarize the visual diagram and list actionable next steps."}, {"type": "image", "uri": "gs://my-bucket/diagram.png", "alt": "system architecture diagram"} ])print(response.text)
Praktyczne wskazówki:
- Używaj załączników obrazów do triage’u błędów UI: dołącz zrzut ekranu i poproś o różnice lub prawdopodobne przyczyny.
- Łącz transkrypcje audio z próbkami kodu na potrzeby podsumowań nagrań z wywiadów.
- Wysyłając duże artefakty (wideo, duże bazy kodu), preferuj podejście etapowe: prześlij zasoby (magazyn w chmurze), przekaż URL-e + krótki manifest i użyj modelu do poprowadzenia potoku wspomaganego wyszukiwaniem zamiast „upychania” wszystkiego w jednym promcie.
Czym są Poziomy Myślenia (Niski, Średni, Wysoki) i kiedy ich używać?
Czym są „poziomy myślenia”?
Seria Gemini 3 wprowadza parametr thinking_level, który steruje wewnętrznym budżetem obliczeń/łańcucha rozumowania modelu. Traktuj to jak pokrętło, które wymienia opóźnienie + koszt na zwiększoną głębokość rozumowania:
- Niski: minimalne rozumowanie, zoptymalizowany pod przepustowość i krótkie, deterministyczne zadania.
- Średni: zrównoważone rozumowanie — nowe w 3.1 i idealne dla wielu zadań inżynieryjnych i analitycznych.
- Wysoki: głębsze rozumowanie, dynamiczny styl łańcucha rozumowania; najlepszy do złożonych problemów wieloetapowych.
(Istnieje też nomenklaturaminimal/maxw innych wariantach — sprawdź dokumentację modelu pod kątem dokładnie dostępnych opcji w danym wariancie).
Jak wybrać poziom myślenia?
- Używaj Niskiego dla czatów o wysokiej przepustowości, krótkich instrukcji lub gdy kluczowe są koszt/opóźnienie.
- Używaj Średniego jako domyślnego dla większości zadań deweloperskich wymagających wyważonego stopnia rozumowania (to nowy „sweet spot” w 3.1).
- Używaj Wysokiego przy rozwiązywaniu łamigłówek, długich łańcuchów logicznych, planowaniu lub gdy wyraźnie chcesz wysokiej wierności i akceptujesz większe opóźnienie oraz zużycie tokenów.
Jak ustawić poziom myślenia w zapytaniu
curl "https://api.cometapi.com/v1beta/models/gemini-3-1-pro-preview:generateContent" \
-H "x-goog-api-key: $COMETAPI_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{ "parts": [{ "text": "Explain quantum physics simply." }] }],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "LOW"
}
}
}'
Jak zaimplementować wywoływanie funkcji i użycie narzędzi z Gemini 3.1 Pro?
Czym jest wywoływanie funkcji / użycie narzędzi?
Wywoływanie funkcji (tool use) pozwala modelowi emitować ustrukturyzowane obiekty „call”, które informują aplikację, które zewnętrzne narzędzie lub funkcję uruchomić (na przykład get_current_weather(location)) i z jakimi argumentami. Model może łączyć wiele wywołań, otrzymywać wyniki narzędzi i kontynuować rozumowanie — umożliwiając zachowania agentowe. SDK Gemini oferują wbudowane wsparcie dla pętli model→narzędzie (MCP/rejestr narzędzi), dzięki czemu można bezpiecznie automatyzować wykonywanie.
Możesz zadeklarować narzędzia w konfiguracji, aby włączyć zachowanie proxy. Obsługiwane wbudowane narzędzia obejmują google_search, code_execution i url_context jako funkcje niestandardowe.
Bezpieczny wzorzec użycia narzędzi
- Deklaruj interfejsy narzędzi: rejestruj funkcje/narzędzia z jasnymi schematami i walidowanymi typami argumentów.
- Pozwól modelowi proponować wywołania: model emituje ustrukturyzowany JSON opisujący, które narzędzie wywołać.
- Host wykonuje tylko narzędzia z listy dozwolonych: wymuszaj allowlist i ścisłą walidację.
- Zwracaj wyniki narzędzi do modelu: pętla w SDK przekazuje odpowiedź narzędzia z powrotem do modelu, aby mógł kontynuować planowanie/wykonywanie kolejnych kroków.
Przewodnik integracji Gemini 3.1 Pro
GitHub Copilot
GitHub Copilot (Copilot) dodał wsparcie dla modeli rodziny Gemini na planach premium, pozwalając zespołom wybrać Gemini jako model bazowy dla czatu i podpowiedzi Copilot. Oznacza to, że użytkownicy na kwalifikujących się planach mogą wybrać warianty Gemini w selektorze modelu Copilot, korzystając z ulepszeń modelu bez zmiany rozszerzenia IDE. Dla zespołów Copilot pozostaje wygodną zarządzaną ścieżką do rozumowania Gemini wewnątrz VS Code i innych wspieranych edytorów.
Gemini CLI i Code Assist
Otwarty Gemini CLI udostępnia modele Gemini w terminalu; jest lekki i integruje się z istniejącymi przepływami (diffy, commity, CI i uruchomienia headless na serwerach). Używaj CLI do szybkiej iteracji, skryptowania uruchomień agentów lub osadzania modelu w przepływach DevOps. Gemini Code Assist to rozszerzenie VS Code i szersza integracja z IDE, która wprowadza kontekstowe podpowiedzi kodu, przeglądy PR i automatyczne poprawki bezpośrednio w edytorze. Te narzędzia pozwalają kontrolować wybór modelu, okna kontekstu i preferencje poziomu myślenia.
Visual Studio Code
Visual Studio Code i jego marketplace goszczą zarówno GitHub Copilot, jak i Gemini Code Assist. Możesz zainstalować Code Assist dla Gemini lub dalej używać Copilot; każde oferuje inne kompromisy (szybkość, głębia, prywatność). VS Code pozostaje najbardziej dojrzałą powierzchnią dla interaktywnej generacji kodu, czatu w edytorze oraz bezpośredniej integracji z lokalnymi uruchomieniami lub harnessami testowymi.
Google Antigravity
Google Antigravity to platforma i IDE zorientowane na agentów, traktujące agentów jako obywateli pierwszej klasy, oferujące „Mission Control” dla orkiestracji agentów, wbudowaną automatyzację przeglądarki i interfejs do projektów multi-agentowych. Antigravity i Gemini CLI służą różnym potrzebom: Antigravity to pełna powierzchnia IDE agentów; Gemini CLI jest natywny dla terminala, ale integruje się z Antigravity i VS Code poprzez rozszerzenia i serwery MCP (Model Context Protocol). Ekosystem Antigravity jest skierowany do zespołów, które chcą intensywnej orkiestracji agentów i bardziej opiniotwórczej, wizualnej powierzchni.
Kto powinien używać czego?
- Szybkie prototypowanie i edycje pojedynczych plików: Gemini CLI + lokalne testy lub Copilot dla szybkości.
- Głębokie rozumowanie, długotrwałe badania: Gemini API (Vertex) z wysokim poziomem myślenia i wywoływaniem funkcji.
- Agentowa orkiestracja i automatyzacja wieloetapowa: Antigravity do wizualnego zarządzania lub własny potok agentowy z wywoływaniem funkcji + MCP.
- Eksperymenty wielodostawcze / kontrola kosztów: użyj CometAPI lub podobnych agregatorów, aby przełączać modele lub ekonomicznie testować Flash vs Pro.
Założenia projektowe dla integracji:
- Bezpieczeństwo: unikaj wysyłania sekretów lub danych osobowych w promptach. Używaj kont usługowych z tokenami o ograniczonym zakresie do wywołań po stronie serwera.
- Lokalnie vs chmura: uruchamiaj lekkie funkcje asystenta lokalnie (szybkie uzupełnienia), ale ciężką analizę multimodalną kieruj do chmury.
- Kontrola użytkownika: udostępnij „wyjaśnij tę sugestię” i łatwe mechanizmy wycofania zmian dla edycji kodu generowanych przez model.
Wzorce integracji i rekomendowana architektura
Lekka aplikacja (czat lub asystent)
- Klient (przeglądarka/mobile) → mikrousługa backend → Gemini API (
thinking_level=low) - Używaj streamingu / częściowych wyjść dla UX czatu. Waliduj wejścia użytkownika i nigdy nie pozwalaj na surowe wywołania narzędzi z niezaufanych klientów.
Backend agentowy (zautomatyzowane przepływy)
- Usługa orkiestratora: zarejestruj niewielki zestaw dozwolonych narzędzi (odczyt DB, uruchamianie zadań CI, wewnętrzne API).
- Pozwól Gemini planować i emitować wywołania narzędzi; orkiestrator wykonuje zwalidowane wywołania i zwraca wyniki. Używaj wysokiego
thinking_leveldla faz planowania i średniego dla kroków wykonawczych.
Potok akwizycji multimodalnej
Wstępnie przetwarzaj i indeksuj duże dokumenty, obrazy lub wideo.
Kiedy wybrać Gemini 3.1 Pro?
Wybierz Gemini 3.1 Pro, gdy potrzebujesz:
- wysokiej wierności, wieloetapowego rozumowania na wejściach multimodalnych;
- niezawodnej orkiestracji narzędzi i agentowych przepływów pracy;
- lepszych pętli syntezy/edycji kodu w IDE (przez Copilot/CLI/Antigravity); lub
- prototypowania porównań wielu dostawców z bramką taką jak CometAPI.
Jeśli zależy Ci na przepustowości i kosztach, przyjmij strategię mieszaną: domyślnie średni poziom myślenia dla większości przepływów, niski dla czatów o wysokiej przepustowości i wysoki tylko dla zadań, które wykazują potrzebę głębszego rozumowania (planowanie, dowody, synteza wieloetapowa).
Na koniec: gdzie Gemini 3.1 Pro pasuje do stosu
Gemini 3.1 Pro stawia na to, co nowoczesne, skierowane do deweloperów LLM-y muszą oferować: rozumienie multimodalne, jawną orkiestrację narzędzi i pragmatyczne sterowanie budżetem rozumowania. Niezależnie od tego, czy korzystasz z niego bezpośrednio przez API Google i Vertex, przez Copilot na planach premium, czy przez platformy wielomodelowe takie jak CometAPI, krytyczne umiejętności dla zespołów są te same: ostrożna orkiestracja poziomu myślenia, bezpieczne wzorce wywoływania funkcji i integracja z solidnymi przepływami pracy deweloperów (CLI, IDE, zautomatyzowane testy).
Deweloperzy mogą uzyskać dostęp do Gemini 3.1 Pro przez CometAPI już teraz. Aby zacząć, poznaj możliwości modelu w Playground i zajrzyj do API guide po szczegółowe instrukcje. Przed dostępem upewnij się, że zalogowałeś(-aś) się do CometAPI i uzyskałeś(-aś) klucz API. CometAPI oferuje cenę znacznie niższą niż oficjalna, aby ułatwić integrację.
Gotowy(-a) do działania?→ Sign up for Gemini 3.1 Pro today !
Jeśli chcesz poznać więcej wskazówek, przewodników i nowości o AI, śledź nas na VK, X i Discord!
![Poniżej znajdziesz zwięzły przewodnik, jak zacząć korzystać z Gemini API z modelem Pro. Zastąp nazwę modelu rzeczywistym identyfikatorem widocznym w Google AI Studio (np. gemini-1.5-pro; jeśli dostępny, gemini-3.1-pro).
1) Uzyskaj dostęp
- Google AI Studio (Gemini API): utwórz klucz API i zarządzaj modelami.
- Alternatywnie Vertex AI na Google Cloud: przydatne, gdy potrzebujesz zarządzania w projekcie GCP, sieci prywatnej, IAM itp.
2) Zainstaluj SDK
- Python: pip install google-generativeai
- Node.js: npm i @google/generative-ai
3) Skonfiguruj uwierzytelnianie
- Ustaw klucz jako zmienną środowiskową, np. GEMINI_API_KEY.
4) Podstawowe wywołanie – Python
import os
import google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
MODEL = "your-model-id" # np. "gemini-1.5-pro" lub odpowiedni identyfikator
model = genai.GenerativeModel(
model_name=MODEL,
system_instruction="Jesteś pomocnym, zwięzłym asystentem."
)
# Prosta generacja tekstu
resp = model.generate_content(
"Wyjaśnij różnicę między HTTP a HTTPS w 3 zdaniach.",
generation_config={
"temperature": 0.7,
"top_p": 0.95,
"max_output_tokens": 512
}
)
print(resp.text)
# Strumieniowanie odpowiedzi
stream = model.generate_content("Napisz krótki wiersz o jesieni.", stream=True)
for chunk in stream:
print(chunk.text or "", end="")
# Tryb czatu (z historią)
chat = model.start_chat(history=[])
r = chat.send_message("Cześć! Podaj 3 pomysły na prezent dla programisty.")
print(r.text)
5) Podstawowe wywołanie – Node.js
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const MODEL = "your-model-id"; // np. "gemini-1.5-pro"
const model = genAI.getGenerativeModel({
model: MODEL,
systemInstruction: "Jesteś pomocnym, zwięzłym asystentem."
});
// Prosta generacja
const result = await model.generateContent({
contents: [{ role: "user", parts: [{ text: "Podaj 5 nazw dla aplikacji do nauki języków." }] }],
generationConfig: { temperature: 0.7, topP: 0.95, maxOutputTokens: 512 }
});
console.log(result.response.text());
// Strumieniowanie
const stream = await model.generateContentStream("Stwórz haiku o wiośnie.");
for await (const chunk of stream.stream) {
process.stdout.write(chunk.text());
}
// Tryb czatu
const chat = model.startChat({ history: [] });
const r = await chat.sendMessage("Pomóż mi zaplanować prosty plan nauki Pythona na 2 tygodnie.");
console.log(r.response.text());
6) Multimodalne wejście (obraz + tekst)
- Python:
# inline obraz jako bajty base64
image_bytes = ... # wczytaj obraz i zakoduj do base64
resp = model.generate_content([
"Co jest na obrazku?",
{ "mime_type": "image/png", "data": image_bytes }
])
print(resp.text)
- Node.js:
const base64Image = "..."; // base64 bez prefiksu data:
const r = await model.generateContent([
{ text: "Opisz ten obraz w 2 zdaniach." },
{ inlineData: { mimeType: "image/png", data: base64Image } }
]);
console.log(r.response.text());
7) Strukturalne wyjście JSON
- Wymuś JSON, definiując MIME i schemat:
- Python:
resp = model.generate_content(
"Zwróć obiekt z polami name (string) i priority (integer) opisujący zadanie: 'Naprawa bugów'.",
generation_config={
"response_mime_type": "application/json",
"response_schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"priority": { "type": "integer" }
},
"required": ["name", "priority"]
}
}
)
print(resp.text) # prawidłowy JSON
- Node.js:
const r = await model.generateContent({
contents: [{ role: "user", parts: [{ text: "Podaj JSON z name i priority dla zadania 'Code review'." }] }],
generationConfig: {
responseMimeType: "application/json",
responseSchema: {
type: "object",
properties: {
name: { type: "string" },
priority: { type: "integer" }
},
required: ["name", "priority"]
}
}
});
console.log(r.response.text());
8) REST (cURL), jeśli nie używasz SDK
curl -s -H "Content-Type: application/json" \
-X POST "https://generativelanguage.googleapis.com/v1beta/models/YOUR_MODEL_ID:generateContent?key=$GEMINI_API_KEY" \
-d '{
"contents": [{ "role": "user", "parts": [{ "text": "Wypisz 3 zalety TDD." }]}],
"generationConfig": { "temperature": 0.6, "maxOutputTokens": 256 }
}'
9) Dobre praktyki
- Zawsze przechowuj klucz API po stronie serwera; nie umieszczaj go w aplikacji front-end.
- Dobierz temperaturę/topP do potrzeb: niższe wartości = bardziej deterministyczne odpowiedzi.
- Używaj system_instruction, by stabilizować rolę/styl asystenta.
- Sprawdzaj dostępne identyfikatory modeli i limity w Google AI Studio; w kodzie podstaw właściwy YOUR_MODEL_ID (np. gemini-3.1-pro, jeśli dostępny).
- Do długich przepływów używaj strumieniowania i paginacji wyników, a dla integracji w GCP rozważ Vertex AI (uprawnienia IAM, region, prywatność).](/_next/image/?url=https%3A%2F%2Fresource.cometapi.com%2FGemini%203.1%20Pro%20How%20to%20Use%20the%20API%2C%20What%E2%80%99s%20New%2C%20and%20Where%20it%20Fits%20in%20Your%20Toolchain.webp&w=3840&q=75)