Техничко резиме за Function Calling
Техничко резиме за Function Calling
1. Дефиниција
Function Calling е механизам кој им овозможува на развивачите да опишат достапни надворешни алатки (како API) на големиот јазичен модел (LLM) преку JSON шема. Кога моделот процени дека е потребно да повика алатка за да одговори на прашањето на корисникот, тој излегува структурирани tool_calls JSON податоци, означувајќи го името на функцијата и параметрите што треба да се повикаат. Програмата домаќин го парсира и извршува овој повик, го враќа резултатот на моделот, а моделот потоа го генерира конечниот одговор.
2. Основен принцип и проблеми што ги решава
- Суштина: „Затворен циклус од два круга разговор + средно извршување“. Во првиот круг моделот донесува одлука и излегува барање за повик на алатка; средниот код ја извршува алатката; во вториот круг моделот генерира конечен одговор врз основа на резултатот од извршувањето.
- Проблеми што ги решава: Го решава проблемот со претходното потпирање на нестабилно, грешки подложно парсирање на природен јазик (if/else проверки) кога моделот требаше да повикува алатки, постигнувајќи стандардизација и зголемена точност преку структуриран излез.
3. Поделба на одговорности (аналогија на делегирање задачи)
- Развивач (HR): Ги дефинира алатките, пишува JSON шема што ги опишува функционалноста, параметрите итн.
- LLM модел (менаџер): Ги разбира описите на алатките, одлучува дали е потребен повик, која алатка да се повика и кои параметри да се користат, и излегува структурирано барање за повик (
tool_calls). Моделот само донесува одлуки и генерира текст, не извршува код лично. - Извршител/код домаќин (вработен): Го парсира
tool_callsбарањето на моделот, навистина ја извршува соодветната функција или API повик, и го враќа резултатот.
4. Дефиниција на алатка (JSON шема)
Шемата е „прирачник“ за алатката, клучните информации вклучуваат:
- name: Уникатен идентификатор на алатката.
- description: Од клучно значење, моделот целосно се потпира на овој опис за да одлучи дали да ја повика алатката. Колку е појасен и попрецизен описот, толку попрецизна е одлуката на моделот.
- parameters: Ги дефинира потребните параметри за алатката и нивниот тип, опис, ограничувања (како вредности на enum, дали се задолжителни итн.).
5. Целосен тек на повик
Статијата преку пример со код за проверка на времето го прикажува целиот процес од поставување прашање од корисникот, првичен повик на моделот со дефиниции на алатки, моделот враќа tool_calls, кодот ја извршува функцијата, резултатот се враќа во историјата на разговор како порака со role: "tool", до конечното генерирање на природен јазичен одговор од моделот.
6. Напредни карактеристики - Паралелни повици на алатки
Кога прашањето на корисникот бара повеќе алатки да работат заедно (на пример, истовремено проверување на времето во повеќе градови), моделот може во еден одговор да излезе листа со повеќе tool_calls. Кодот домаќин може паралелно да ги изврши овие повици, а потоа сите резултати да ги врати на моделот за синтеза, со што се зголемува ефикасноста.
评论
暂无已展示的评论。
发表评论(匿名)