← 返回列表

Function Calling ტექნიკური მიმოხილვა

Function Calling ტექნიკური მიმოხილვა

1. განმარტება

Function Calling არის მექანიზმი, რომელიც დეველოპერებს საშუალებას აძლევს, JSON schema-ს მეშვეობით აღწერონ ხელმისაწვდომი გარე ინსტრუმენტები (როგორიცაა API) დიდი ენობრივი მოდელისთვის (LLM). როდესაც მოდელი გადაწყვეტს, რომ საჭიროა ინსტრუმენტის გამოძახება მომხმარებლის კითხვაზე პასუხის გასაცემად, ის გამოაქვს სტრუქტურირებული tool_calls JSON მონაცემები, სადაც მითითებულია გამოსაძახებელი ფუნქციის სახელი და პარამეტრები. მასპინძელი პროგრამა აანალიზებს და ასრულებს ამ გამოძახებას, შედეგს უბრუნებს მოდელს, ხოლო მოდელი ქმნის საბოლოო პასუხს.

2. ძირითადი პრინციპი და გადაჭრილი პრობლემები

  • არსი: "ორი რაუნდის დიალოგი + შუალედური შესრულების" ციკლი. პირველ რაუნდში მოდელი იღებს გადაწყვეტილებას და გამოაქვს ინსტრუმენტის გამოძახების მოთხოვნა; შუალედური კოდი ასრულებს ინსტრუმენტს; მეორე რაუნდში მოდელი შედეგის საფუძველზე ქმნის საბოლოო პასუხს.
  • გადაჭრილი პრობლემები: გადაჭრა ის პრობლემა, რომ ადრე მოდელის მიერ ინსტრუმენტების გამოძახებისას საჭირო იყო არასტაბილური, შეცდომებისადმი მიდრეკილი ბუნებრივი ენის ანალიზი (if/else განსჯა), ხოლო სტრუქტურირებული გამოტანით მიღწეული იქნა სტანდარტიზაცია და სიზუსტის გაუმჯობესება.

3. მოვალეობების განაწილება (ანალოგია დავალების დელეგირებასთან)

  • დეველოპერი (HR): განსაზღვრავს ინსტრუმენტებს, წერს JSON Schema-ს, რომელიც აღწერს ინსტრუმენტის ფუნქციას, პარამეტრებს და ა.შ.
  • LLM მოდელი (მენეჯერი): ესმის ინსტრუმენტის აღწერა, იღებს გადაწყვეტილებას, საჭიროა თუ არა გამოძახება, რომელი ინსტრუმენტი და რა პარამეტრებით, და გამოაქვს სტრუქტურირებული გამოძახების მოთხოვნა (tool_calls). მოდელი მხოლოდ იღებს გადაწყვეტილებებს და ქმნის ტექსტს, თავად არ ასრულებს კოდს.
  • შემსრულებელი/მასპინძელი კოდი (თანამშრომელი): აანალიზებს მოდელის tool_calls მოთხოვნას, რეალურად ასრულებს შესაბამის ფუნქციას ან API გამოძახებას, და აბრუნებს შედეგს.

4. ინსტრუმენტის განსაზღვრა (JSON Schema)

Schema არის ინსტრუმენტის "ინსტრუქცია", ძირითადი ინფორმაცია მოიცავს:
- name: ინსტრუმენტის უნიკალური იდენტიფიკატორი.
- description: გადამწყვეტი მნიშვნელობის, მოდელი მთლიანად ამ აღწერას ეყრდნობა, რათა გადაწყვიტოს, გამოიძახოს თუ არა ინსტრუმენტი. რაც უფრო ნათელი და ზუსტია აღწერა, მით უფრო ზუსტია მოდელის გადაწყვეტილება.
- parameters: განსაზღვრავს ინსტრუმენტისთვის საჭირო პარამეტრებს, მათ ტიპებს, აღწერას, შეზღუდვებს (როგორიცაა ჩამოთვლილი მნიშვნელობები, სავალდებულოა თუ არა).

5. სრული გამოძახების პროცესი

სტატია, ამინდის შემოწმების კოდის მაგალითის მეშვეობით, აჩვენებს მთელ პროცესს: მომხმარებლის კითხვიდან, ინსტრუმენტის განსაზღვრის პირველ მოდელის გამოძახებამდე, მოდელის მიერ tool_calls-ის დაბრუნებამდე, კოდის მიერ ფუნქციის შესრულებამდე, შედეგის role: "tool" შეტყობინების სახით დიალოგის ისტორიაში ჩასმამდე, და ბოლოს მოდელის მიერ საბოლოო ბუნებრივი ენის პასუხის გენერირებამდე.

6. მოწინავე ფუნქცია - პარალელური ინსტრუმენტების გამოძახება

როდესაც მომხმარებლის კითხვა მოითხოვს რამდენიმე ინსტრუმენტის ერთობლივ პასუხს (მაგ., ერთდროულად რამდენიმე ქალაქის ამინდის შემოწმება), მოდელს შეუძლია ერთ პასუხში გამოიტანოს მრავალი tool_calls-ის სია. მასპინძელ კოდს შეუძლია ამ გამოძახებების პარალელურად შესრულება, შემდეგ კი ყველა შედეგის ერთად დაბრუნება მოდელისთვის განზოგადებისთვის, რაც ზრდის ეფექტურობას.

评论

暂无已展示的评论。

发表评论(匿名)