Talim

Function Calling

Function Calling — API'lar orqali funksiyalarni chaqirishning standart usuli.

9 daqiqa o‘qish · O‘rta

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.