Kombinoni mjetet e integruara dhe thirrjen e funksioneve
Gemini lejon kombinimin e mjeteve të integruara , të tilla si google_search dhe thirrjes së funksioneve (të njohura edhe si mjete të personalizuara ) në një bashkëveprim të vetëm duke ruajtur dhe ekspozuar historikun e kontekstit të thirrjeve të mjeteve. Kombinimet e mjeteve të integruara dhe të personalizuara lejojnë rrjedha pune komplekse, agjentike, ku, për shembull, modeli mund të bazohet në të dhëna të internetit në kohë reale përpara se të thërrasë logjikën tuaj specifike të biznesit.
Ja një shembull që mundëson kombinime të mjeteve të integruara dhe të personalizuara me google_search dhe një funksion të personalizuar getWeather :
Python
from google import genai
client = genai.Client()
getWeather = {
"type": "function",
"name": "getWeather",
"description": "Gets the weather for a requested city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city and state, e.g. Utqiaġvik, Alaska",
},
},
"required": ["city"],
},
}
# The Interactions API manages context automatically across tool calls.
# The model will first use Google Search, then call getWeather.
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="What is the northernmost city in the United States? What's the weather like there today?",
tools=[
{"google_search": {}},
getWeather,
],
)
# Process steps: the interaction contains search results and a function call
for step in interaction.steps:
if step.type == "function_call":
print(f"Function call: {step.name} with args: {step.arguments}")
# In a real application, you would execute the function here
# and provide the result back to the model.
JavaScript
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
const getWeather = {
type: "function",
name: "getWeather",
description: "Get the weather in a given location",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "The city and state, e.g. San Francisco, CA"
}
},
required: ["location"]
}
};
// The Interactions API manages context automatically across tool calls.
// The model will first use Google Search, then call getWeather.
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "What is the northernmost city in the United States? What's the weather like there today?",
tools: [
{ googleSearch: {} },
getWeather,
],
});
// Process steps: the interaction contains search results and a function call
for (const step of interaction.steps) {
if (step.type === "function_call") {
console.log(`Function call: ${step.name} with args: ${JSON.stringify(step.arguments)}`);
// In a real application, you would execute the function here
// and provide the result back to the model.
}
}
PUSHTIM
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"model": "gemini-3-flash-preview",
"input": "What is the northernmost city in the United States? What'\''s the weather like there today?",
"tools": [
{ "type": "google_search" },
{
"type": "function",
"name": "getWeather",
"description": "Get the weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": ["location"]
}
}
]
}'
Si funksionon
Modelet Gemini 3 përdorin qarkullimin e kontekstit të mjeteve për të mundësuar kombinime mjetesh të integruara dhe të personalizuara. Qarkullimi i kontekstit të mjeteve bën të mundur ruajtjen dhe ekspozimin e kontekstit të mjeteve të integruara dhe ndarjen e tij me mjete të personalizuara në të njëjtin bashkëveprim.
Aktivizo kombinimin e mjeteve
- Përfshini
function_declarations, së bashku me mjetet e integruara që dëshironi të përdorni, për të aktivizuar sjelljen e kombinimit.
API kthen hapat
Në një përgjigje ndërveprimi, API kthen hapa të veçantë për thirrjet e mjeteve të integruara dhe thirrjet e funksioneve (mjeteve të personalizuara):
- Hapat e integruar të mjetit : API i menaxhon këto automatikisht, duke ruajtur kontekstin në të gjitha raundet.
- Hapat e thirrjes së funksionit : API kthen hapat
function_callpër funksionet tuaja të personalizuara. Ju ekzekutoni funksionin dhe ktheni rezultatin.
Fushat kritike në hapat e kthyer
Disa fusha në hapat e kthyer janë kritike për ruajtjen e kontekstit të mjetit dhe aktivizimin e kombinimeve të mjeteve:
-
id: Gjendet në hapatfunction_calldhefunction_response. Një identifikues unik që lidh një thirrje me përgjigjen e saj. -
signature: Gjendet në hapatthought, si dhe në të gjitha hapat e thirrjes së mjetit (p.sh.,function_call) dhe rezultatit (p.sh.,function_response) për modelet Gemini 3+. Ky kontekst i enkriptuar mundëson qarkullimin e kontekstit të mjetit nëpër ndërveprime.
Menaxhimi i këtyre fushave:
- Modaliteti i gjendjes (i rekomanduar) : Kur përdorni
previous_interaction_id, serveri përpunon automatikisht fushat eiddhesignature. - Modaliteti pa shtetësi : Kur menaxhoni historikun e bisedave manualisht, duhet të siguroheni që t'i kaloni të dyja fushat,
iddhesignature, përsëri te modeli në kërkesat pasuese për të vërtetuar vërtetësinë dhe për të ruajtur kontekstin. SDK-të zyrtare e trajtojnë këtë automatikisht nëse e kaloni objektin e plotë të përgjigjes përsëri te historiku.
Të dhëna specifike për mjetin
Disa mjete të integruara kthejnë argumente të të dhënave të dukshme për përdoruesin, specifike për llojin e mjetit.
| Mjet | Argumentet e thirrjes së mjetit të dukshëm të përdoruesit (nëse ka) | Përgjigja e dukshme e mjetit të përdoruesit (nëse ka) |
|---|---|---|
| kërkim_në_google | queries | search_suggestions |
| hartat_e_google-it | queries | placesgoogle_maps_widget_context_token |
| konteksti_i_url-së | urlsURL-të që do të shfletohen | status : Shfletoni statusinretrieved_url : URL-të e shfletuara |
| kërkim_i_file-it | Asnjë | Asnjë |
Tokenat dhe çmimet
Vini re se pjesët e thirrjes së mjetit të integruar në kërkesa llogariten për prompt_token_count . Meqenëse këto hapa të ndërmjetëm të mjetit tani janë të dukshëm dhe ju kthehen, ato janë pjesë e historikut të bisedës. Ky është vetëm rasti për kërkesat , jo për përgjigjet .
Mjeti i Kërkimit në Google është një përjashtim nga ky rregull. Kërkimi në Google tashmë zbaton modelin e vet të çmimeve në nivelin e pyetjes, kështu që tokenët nuk tarifohen dy herë (shih faqen e Çmimeve ).
Lexoni faqen e Tokenave për më shumë informacion.
Kufizime
- Modaliteti i
validated(modalitetiautonuk mbështetet) kur qarkullimi i kontekstit të mjetit është i aktivizuar. - Mjetet e integruara si
google_searchmbështeten në informacionin e vendndodhjes dhe kohës aktuale, kështu që nësesystem_instructionosefunction_declaration.descriptionjuaj ka informacion kontradiktor të vendndodhjes dhe kohës, funksioni i kombinimit të mjeteve mund të mos funksionojë mirë.
Mjetet e mbështetura
Mjeti standard i qarkullimit të kontekstit zbatohet për mjetet nga ana e serverit (të integruara). Ekzekutimi i kodit është gjithashtu një mjet nga ana e serverit, por ka zgjidhjen e vet të integruar për qarkullimin e kontekstit. Përdorimi i kompjuterit dhe thirrja e funksioneve janë mjete nga ana e klientit dhe gjithashtu kanë zgjidhje të integruara për qarkullimin e kontekstit.
| Mjet | Ana e ekzekutimit | Mbështetje për Qarkullimin e Kontekstit |
|---|---|---|
| Kërkimi në Google | Nga ana e serverit | Mbështetur |
| Hartat e Google-it | Nga ana e serverit | Mbështetur |
| Konteksti i URL-së | Nga ana e serverit | Mbështetur |
| Kërkimi i skedarëve | Nga ana e serverit | Mbështetur |
| Ekzekutimi i Kodit | Nga ana e serverit | Mbështetur (i integruar, përdor hapat code_execution dhe code_execution_result ) |
| Përdorimi i kompjuterit | Nga ana e klientit | Mbështetur (i integruar, përdor hapat function_call dhe function_response ) |
| Funksione të personalizuara | Nga ana e klientit | Mbështetur (i integruar, përdor hapat function_call dhe function_response ) |
Çfarë vjen më pas
- Mësoni më shumë rreth thirrjes së funksioneve në Gemini API.
- Eksploroni mjetet e mbështetura: