Добици:
- Може да опише основну структуру ЛЛМ АПИ захтева (крајња тачка, модел, поруке, мак_токенс)
- Разуме разлику између улога система, корисника и помоћника и историје разговора без држављанства
- Може да чита и тумачи поља (блокови садржаја, стоп_реасон, употреба) враћеног одговора
У претходним модулима користили смо вештачку интелигенцију из прозора за ћаскање. Али ако желите да уградите вештачку интелигенцију у свој производ, аутоматизацију или радни ток, интерфејс за ћаскање неће то прекинути; На модел морате да се повежете програмски, односно помоћу кода или алата за аутоматизацију. Назив овог моста је АПИ (Апплицатион Программинг Интерфаце, уговор који омогућава два софтвера да разговарају са одређеним правилима). Када завршите ову јединицу, знаћете шта чини ЛЛМ (Ларге Лангуаге Модел) АПИ захтев, које улоге поруке раде и како прочитати одговор. Ово је основа на којој ће бити изграђен остатак модула.
Како функционише АПИ?
Основни ток у АПИ-ју је следећи: шаљете захтев у одређеном формату; Сервер враћа одговор у одређеном формату. У ЛЛМ-овима, ово је обично ХТТП позив (ХТТП: стандардни протокол за преношење захтева-одговора на вебу) на једну адресу (крајња тачка, фиксна адреса на серверу који обрађује ваш захтев). На пример, у АПИ-ју за размену порука, сви захтеви иду на једну адресу и преносе се у телу као ЈСОН (ЈаваСцрипт Објецт Нотатион — текстуални формат који се састоји од парова кључ/вредност који могу да читају и људи и машине).
У захтеву наводите најмање ове три ствари:
- Модел: Који модел ћете користити (нпр. брз и јефтин модел или моћан модел).
- мак_токенс: Максималан број токена (најмања јединица у којој се обрађује текст, која ће бити детаљно обрађена у следећој јединици) које модел може да произведе; односно граница излаза.
- поруке: Листа порука које чине конверзацију.
Корак по корак: Како поставити захтев
- Припремите крајњу тачку и акредитиве. Додате свој АПИ кључ (тајни низ који доказује ваш идентитет) захтеву у заглављу. Никада не уграђујете кључ у код; Покрићемо сигурно складиштење у јединици 9.
- Изаберите модел и ограничење излаза. Лагани модел + мали мак_токени за једноставан задатак; Моћан модел + већа граница за сложен задатак.
- Подесите листу порука. List the system instruction, user message, and past rounds (if any).
- Пошаљите захтев и анализирајте одговор. Прочитајте садржај текста, зауставите разлоге и употребу токена из враћеног ЈСОН-а.
Улоге поруке: систем, корисник, помоћник
Разговор се састоји од порука распоређених у низу, а свака порука има своју улогу. Улога одређује како модел третира тај текст.
Улога
Ко пише
Сврха
система
Програмер/оператер
Трајна упутства, личност и правила која важе током целог разговора
корисник
крајњег корисника
Корисниково тренутно питање или унос
помоћник
модел
Одговор који је произвео модел (и претходни одговори)
Системска улога је доступна као посебно системско поље у телу захтева код већине провајдера; корисник и помоћник су наведени узастопно на листи порука. Critical point: the system instruction is the high-level instruction, the user message is the request to be answered at that moment.
{ "модел": "цлауде-опус-4-8", "мак_токенс": 1024, "систем": "Ви сте корпоративни помоћник за подршку. Дајте кратак, формалан и верификован одговор. Не измишљајте информације у које нисте сигурни.", "мессагес": [ { "роле": "усер", "цонтент": "Како да покренем свој процес враћања?" } ]}
Говор је без држављанства
Ево најчешће заблуде: ЛЛМ АПИ позиви су без стања — сервер не задржава меморију између два захтева. Модел се не сећа вашег претходног захтева. Ако подешавате ћаскање у више кругова, мораћете поново да пошаљете претходне рунде са сваким новим захтевом. „Меморија“ модела се састоји од листе порука које сте послали.
{ "модел": "цлауде-опус-4-8", "мак_токенс": 512, "мессагес": [ { "роле": "усер", "цонтент": "Здраво, моје име је Дениз." }, { "роле": "ассистант", "цонтент": "Здраво Дениз, како вам могу помоћи?" }, { "роле": "усер", "цонтент": "Управо сам рекао своје име, да ли се сећате?" } ]}
Тачан одговор на трећу поруку зависи од тога да ли сте послали обе претходне поруке. Ако га не пошаљете, модел неће знати "Море" и одговориће погрешно. Ово такође директно утиче на цену: што је разговор дужи, листа је већа, сваки захтев троши више токена.
Савет: У дугим разговорима, сумирање и померање старих рунди (резиме + последњих неколико рунди) уместо слања целе историје смањује трошкове и чува прозор контекста. Ово ћемо продубити у јединицама 6 и 11.
Прочитајте одговор
Када модел врати одговор, добијате структурирани објекат, а не обичан текст. Типичне области:
{ "ид": "мсг_01АБЦ...", "модел": "цлауде-опус-4-8", "роле": "ассистант", "цонтент": [ { "типе": "тект", "тект": "Да бисте покренули враћање, идите на страницу 'Моје поруџбине' на свом налогу..." } ], "стопаге_реатурн":" { "стопаге_реасон": "ин":" 47, "оутпут_токенс": 88 }}
- садржај: Сам одговор; То је листа блокова садржаја. Текстуално поље текстуалног блока је стварни одговор.
- стоп_реасон: Зашто је модел стао. енд_турн = природни крај; мак_токенс = заглављен на излазној граници (одговор може бити непотпун); одбијање = одбијено из безбедносних разлога. Ваш код увек треба прво да погледа стоп_реасон.
- употреба: Улазни и излазни бројеви токена. То је основа за праћење трошкова и ограничења.
Пажња: Ако је стоп_реасон мак_токенс, одговор није завршен. Третирање овога као „успешног одговора“ и показивање пола текста кориснику је једна од најчешћих грешака у продукцији. Или повећајте мак_токена или користите стримовање.
Слаби промпт / Јаки промпт
Исти задатак са два различита системска упита:
# СЛАБОТи си асистент. Одговорите на питања.
# ЈАКО Ви сте помоћник за корпоративну подршку. Правила: - Ослоните се искључиво на информације у датом документу политике; Ако није у документу, реците „Немам ову информацију, упућујем је релевантној јединици“. - Одговори не би требало да прелазе 3 реченице, да буду формални и јасни. - Не тражите личне податке (ТЦ ИД број, број картице) и не понављајте. - Не погађајте када нисте сигурни.
Моћна верзија; Дефинише обим, облик, маргину сигурности и понашање у неизвесности. Конзистентност резултата модела долази директно из ове јасноће.
Три мини кућишта
Случај 1 — Бот за подршку (замка без држављанства). Тим за е-трговину је активирао бот; Када је корисник рекао "откажи претходну поруџбину", бот је "заборавио" број поруџбине. Разлог: слали су сваки захтев само са последњом поруком. Решење: додали су последњих 6 рунди на листу порука. Резултат: контекст је очуван, али унос по захтеву је повећан са 40 токена на ~600 токена — покрити ћемо лекцију о трошковима у јединици 2.
Случај 2 — Непотпун сажетак уговора. Правни тим је имао уговоре на 10 страница; мак_токенс: 300 је остало мало, резимеи су се прекидали усред реченице. стоп_реасон је сваки пут био мак_токенс, али нико није гледао. повећано мак_токена на 1500 и додата провера стоп_реасон; Скраћена збирна стопа је смањена са 18% на 0%.
Случај 3 — Мешање улога. Маркетиншки тим је уписивао сва упутства у корисничку поруку, остављајући систем празан. Када се кориснички унос помеша са инструкцијама, модел би понекад био у складу са корисниковом командом да „заборави претходна правила“. Преместили су трајна правила у систем; Одвајањем уноса корисника од инструкција, кршења правила су значајно смањена.
Уобичајене грешке
- Заборављање да пошаље прошлост: сматра се да модел „не памти“; док је без држављанства. Ви носите контекст.
- Не гледајући `стоп_реасон`: Одговор заустављен са мак_токенсом сматра се потпуним.
- Уграђивање инструкције у `усер`: Трајна правила у систем; тренутни унос иде кориснику. Мешање ствара безбедносне пропусте.
- Погрешка `садржај` за обичан стринг: одговор је листа блокова; прочитајте текстуално поље првог текстуалног блока, проверите његов тип пре него што добијете садржај[0] са слепим индексом.
- Уграђивање кључа у код: Користите променљиву окружења (јединица 9).
Дубље: блокови садржаја и одговори из више делова
Разумевање зашто је поље садржаја у одговору листа је фундаментално за напредне функције са којима ћете се касније сусрести. Понекад модел враћа не један блок текста, већ неколико блокова: блок размишљања, након чега следи блок текста; или блок текста иза којег следи блок употребе алата. Зато је слепо бројање садржаја[0] као „одговора“ крхко. Исправан приступ је да прођете кроз листу и сортирате је по типу: скупљате текстуални садржај блокова чије је поље за тип текст, а друге типове (размишљање, алат) третирате одвојено.
Оно што ова разлика чини у пракси је да можете да евидентирате образложење модела (ако га има) без да га откријете кориснику, преусмерите позиве алата на одвојену логику и само одштампате стварни одговор на екрану. Како модул напредује (нарочито у јединицама 4 и 11) видећете колико је корисна ова структура блока за валидацију и усмеравање излаза.
Још једна практична тачка: истом моделу можете приступити са различитих платформи провајдера (директни АПИ, преко провајдера у облаку). Иако се адреса крајње тачке и формат аутентификације могу променити, основни концепти као што су улоге поруке, статус без држављанства и структура одговора остају исти. Дакле, основе у овој јединици важе без обзира коју платформу користите.
Укратко
ЛЛМ АПИ захтев се састоји од модела, ограничења излаза и листе порука; улоге (систем, корисник, помоћник) одређују понашање модела. Позиви су без држављанства: носите контекст са сваким захтевом. Одговор је структурирани објекат; Читање и тумачење садржаја, стоп_реасон и поља употребе је основа трајности у производњи.
Задатак апликације
Изаберите задатак из своје професије (нпр. сортирање долазне е-поште, креирање кратких резимеа). На комаду папира: (1) напишите системски промпт са 4-5 правила, (2) поставите узорак корисничке поруке и историју у 2 круга ако постоји, (3) одредите разумну вредност за мак_токене и напишите оправдање, (4) наведите које стоп_реасон вредности ћете обрађивати у враћеном одговору и како.
контролна листа
- [ ] Могу да пребројим три обавезна дела захтева (модел, мак_токени, поруке).
- [ ] Могу да објасним разлику између улога система, корисника и помоћника.
- [ ] Знам да су позиви без држављанства и да морам да носим прошлост.
- Могу да читам и коментаришем [ ] садржај, стоп_реасон и поља за коришћење.
- [ ] Са мак_токенс могу приметити и руковати скраћеним одговором.