Function Calling — bu Tool Calling’ning amaliy implementatsiyasi: model JSON formatida funksiya nomi va parametrlarni chiqaradi, siz esa bu funksiyani o‘z kod ingizda chaqirasiz.
Tool Calling vs Function Calling
Ko‘p hollarda bu atamalar almashib ishlatiladi. Ammo texnik jihatdan:
| Atama | Ma’nosi |
|---|---|
| Tool Calling | Umumiy tushuncha: model tashqi vositalarni chaqiradi |
| Function Calling | Spetsifik API xususiyati: model JSON’da funksiya chaqiruvini chiqaradi |
Function Calling qanday ishlaydi?
1. Siz modelga funksiya sxemalarini berasiz
2. Model: "men bu funksiyani chaqirmoqchiman" deb JSON chiqaradi
3. Siz funksiyani o‘z kodingizda bajarasiz
4. Natijani modelga qaytarasiz
5. Model yakuniy javobni tuzadi
JSON chiqish formati
Modelning chiqishi taxminan shunday ko‘rinadi:
{
"name": "get_stock_price",
"arguments": {
"symbol": "AAPL",
"period": "1d"
}
}
OpenAI misoli
from openai import OpenAI
client = OpenAI()
def get_stock_price(symbol: str) -> str:
# Haqiqiy API'ga so‘rov
return f"{symbol} narxi: $230.15"
tools = [{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Aksiya narxini qaytaradi",
"parameters": {
"type": "object",
"properties": {
"symbol": {"type": "string", "description": "Tiker, masalan AAPL"}
},
"required": ["symbol"]
}
}
}]
messages = [{"role": "user", "content": "Apple aksiyasi qancha?"}]
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
tool_choice="auto",
)
msg = response.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
args = json.loads(call.function.arguments)
result = get_stock_price(**args)
print(result)
Amaliy maslahat
Funksiya tavsifini aniq va batafsil yozing. Model tavsifga qarab tanlaydi — noaniq tavsif = noto‘g‘ri chaqiruv.
Xavfsizlik
Function Calling bilan ehtiyot bo‘ling:
- model foydalanuvchi so‘rovidan parametr oladi — input’ni tekshiring;
- xavfli funksiyalarni (delete, send) ruxsatsiz chaqirishdan himoya qiling;
- har doim natijani log qiling.
Muhim
Modelga beriladigan sxemalar minimal bo‘lishi kerak — faqat kerakli funksiyalar. Ortiqcha funksiyalar xavf va chalkashlik keltiradi.
Xulosa
Function Calling — Tool Calling’ning amaliy ko‘rinishi. Model JSON chiqaradi, siz funksiyani bajarasiz, natijani qaytarasiz.