← 返回列表

Function Calling технички преглед

Function Calling технички преглед

1. Дефиниција

Function Calling је механизам који омогућава програмерима да опишу доступне спољне алате (попут API-ја) великом језичком моделу (LLM) путем JSON шеме. Када модел процени да је потребно позвати алат да би одговорио на корисничко питање, он излази структуриране JSON податке tool_calls, наводећи име функције и параметре које треба позвати. Програм домаћин анализира и извршава овај позив, враћа резултат моделу, а модел затим генерише коначни одговор.

2. Основна сврха и решавање проблема

  • Суштина: Затворена петља „два круга дијалога + средње извршење“. У првом кругу модел доноси одлуку и излази захтев за позив алата; код у средини извршава алат; у другом кругу модел генерише коначни одговор на основу резултата извршења.
  • Проблем који решава: Решава проблем ранијег ослањања на нестабилно и подложно грешкама парсирање природног језика (if/else провере) при позивању алата од стране модела, постижући стандардизацију и повећање тачности кроз структурирани излаз.

3. Подела одговорности (аналогија са делегирањем задатака)

  • Програмер (HR): Дефинише алате, пише JSON шему која описује функционалност алата, параметре итд.
  • LLM модел (менаџер): Разуме опис алата, одлучује да ли је потребно позвати алат, који алат позвати и који су параметри, и излази структурирани захтев за позив (tool_calls). Модел само доноси одлуке и генерише текст, не извршава код лично.
  • Извршилац/код домаћина (радник): Анализира захтев tool_calls модела, стварно извршава одговарајућу функцију или API позив, и враћа резултат.

4. Дефиниција алата (JSON Schema)

Шема је „упутство“ за алат, кључне информације укључују:
- name: Јединствени идентификатор алата.
- description: Од кључне важности, модел се у потпуности ослања на овај опис да би одлучио да ли да позове алат. Што је опис јаснији и прецизнији, то је одлука модела тачнија.
- parameters: Дефинише потребне параметре алата, њихове типове, описе, ограничења (попут набројаних вредности, обавезности итд.).

5. Комплетан ток позива

Чланак кроз пример кода за проверу времена приказује цео процес од корисничког питања, првог позива модела са дефиницијом алата, моделовог враћања tool_calls, извршавања функције у коду, убацивања резултата у историју разговора као поруку са role: "tool", до коначног генерисања одговора на природном језику од стране модела.

6. Напредне функције - паралелно позивање алата

Када корисничко питање захтева сарадњу више алата (нпр. истовремена провера времена у више градова), модел може у једном одговору да избаци листу која садржи више tool_calls. Код домаћин може паралелно да изврши ове позиве, а затим све резултате врати моделу ради синтезе, чиме се повећава ефикасност.

评论

暂无已展示的评论。

发表评论(匿名)