Бірлік 1 / 11

LLM API негіздері: сұрау, жауап және хабар рөлдері

Табыстар:

  • LLM API сұрауының негізгі құрылымын сипаттай алады (соңғы нүкте, үлгі, хабарлар, max_tokens)
  • Жүйе, пайдаланушы және көмекші рөлдері мен азаматтығы жоқ сөйлесу тарихы арасындағы айырмашылықты түсінеді
  • Қайтарылған жауаптың өрістерін (мазмұн блоктары, тоқтату_себебі, пайдалану) оқи және түсіндіре алады

Алдыңғы модульдерде біз сөйлесу терезесінен жасанды интеллект қолдандық. Бірақ егер сіз AI-ны өзіңіздің өніміңізге, автоматтандыруыңызға немесе жұмыс процесіне енгізгіңіз келсе, чат интерфейсі оны кеспейді; Модельге бағдарламалық түрде, яғни кодпен немесе автоматтандыру құралымен қосылу керек. Бұл көпірдің атауы - API (Application Programming Interface, екі бағдарламалық жасақтаманың белгілі бір ережелермен сөйлесуіне мүмкіндік беретін келісім-шарт). Бұл блокты аяқтаған кезде, LLM (Үлкен тіл үлгісі) API сұрауы нені құрайтынын, қандай хабар рөлдері атқаратынын және жауапты қалай оқу керектігін білесіз. Бұл модульдің қалған бөлігі салынатын негіз.

API қалай жұмыс істейді?

API-дегі негізгі ағын мынада: сіз белгілі бір форматта сұрау жібересіз; Сервер нақты пішімде жауапты қайтарады. LLM-де бұл әдетте бір мекенжайға (соңғы нүкте, сұрауыңызды өңдейтін сервердегі тіркелген мекенжай) HTTP қоңырауы (HTTP: интернетте сұрау-жауапты тасымалдауға арналған стандартты протокол). Мысалы, хабар алмасу API-де барлық сұраулар бір мекенжайға өтеді және JSON (JavaScript Object Notation — адамдар да, машиналар да оқи алатын кілт/мән жұптарынан тұратын мәтін пішімі) ретінде денеде тасымалданады.

Сұрауда сіз кем дегенде осы үш нәрсені көрсетесіз:

  • Модель: Қай модельді қолданасыз (мысалы, жылдам және арзан модель немесе қуатты модель).
  • max_tokens: үлгі шығара алатын таңбалауыштардың максималды саны (мәтін өңделетін ең кіші бірлік, ол келесі бөлімде егжей-тегжейлі өңделеді); яғни шығыс шегі.
  • хабарлар: сөйлесуді құрайтын хабарлар тізімі.

Қадамдық: сұрауды қалай орнатуға болады

  1. Соңғы нүкте мен тіркелгі деректерін дайындаңыз. Тақырыптағы сұрауға API кілтін (тұлғаңызды дәлелдейтін құпия жол) қосасыз. Сіз ешқашан кілтті кодқа ендірмейсіз; Біз 9 блокта қауіпсіз сақтауды қамтамасыз етеміз.
  2. Үлгі мен шығыс шегін таңдаңыз. Жеңіл модель + қарапайым тапсырма үшін шағын max_tokens; Күшті модель + күрделі тапсырма үшін үлкен шектеу.
  3. Хабарламалар тізімін орнатыңыз. List the system instruction, user message, and past rounds (if any).
  4. Сұрауды жіберіп, жауапты талдаңыз. Қайтарылған JSON-дан мәтін мазмұнын, тоқтату себебін және таңбалауышты пайдалануды оқыңыз.

Хабарлама рөлдері: жүйе, пайдаланушы, көмекші

Әңгімелесу ретпен реттелген хабарламалардан тұрады және әрбір хабарламаның рөлі бар. Рөл үлгінің мәтінді қалай өңдейтінін анықтайды.

Рөл

Кім жазады

Мақсат

жүйесі

Әзірлеуші/оператор

Бүкіл сөйлесу барысында қолданылатын тұрақты нұсқаулар, тұлға және ережелер

пайдаланушы

соңғы пайдаланушы

Пайдаланушының ағымдағы сұрағы немесе енгізуі

көмекшісі

үлгі

Үлгі шығарған жауап (және алдыңғы жауаптар)

Жүйе рөлі көптеген провайдерлерде сұрау бөлімінде бөлек жүйе өрісі ретінде қолжетімді; пайдаланушы мен көмекші хабарламалар тізімінде ретімен берілген. Critical point: the system instruction is the high-level instruction, the user message is the request to be answered at that moment.

{ "model": "claude-opus-4-8", "max_tokens": 1024, "жүйе": "Сіз корпоративті қолдау көмекшісісіз. Қысқа, ресми және расталған жауап беріңіз. Өзіңіз сенімді емес ақпаратты ойлап шығармаңыз.", "хабарламалар": [ { "рөл": "пайдаланушы", "мазмұн": "Қайтару процесін бастаймын?" } ]}

Сөйлеу азаматтығы жоқ

Міне, ең көп тараған қате түсінік: LLM API қоңыраулары азаматтығы жоқ — сервер екі сұрау арасында жадты сақтамайды. Модель сіздің алдыңғы сұрауыңызды есіне түсірмейді. Егер сіз көп айналымды чатты орнатып жатсаңыз, өткен раундтарды әрбір жаңа сұраумен қайта жіберуіңіз керек. Модельдің «жады» сіз жіберген хабарламалар тізімінен тұрады.

{ "model": "claude-opus-4-8", "max_tokens": 512, "хабарламалар": [ { "рөл": "пайдаланушы", "мазмұн": "Сәлеметсіз бе, менің атым Дениз." }, { "role": "ассистент", "content": "Сәлеметсіз бе Дениз, мен сізге қалай көмектесе аламын?" }, { "role": "user", "content": "Мен өз атымды айттым, есіңізде ме?" } ]}

Үшінші хабарламаға дұрыс жауап беру алдыңғы екі хабарды да жіберуіңізге байланысты. Егер сіз оны жібермесеңіз, модель «Теңізді» білмейді және қате жауап береді. Бұл сонымен қатар құнға тікелей әсер етеді: сөйлесу неғұрлым ұзақ болса, тізім соғұрлым үлкен болады, әрбір сұрау көбірек белгілерді тұтынады.

Кеңес: Ұзақ сөйлесулерде бүкіл тарихты жіберудің орнына қорытындылау және ескі айналымдарды жылжыту (жинақтау + соңғы бірнеше айналым) шығындарды азайтады және мәтінмәндік терезені сақтайды. Біз мұны 6 және 11 бөлімшелерде тереңдетеміз.

Жауапты оқыңыз

Модель жауапты қайтарғанда, сіз қарапайым мәтінді емес, құрылымдық нысанды аласыз. Типтік аймақтар:

{ "id": "msg_01ABC...", "model": "claude-opus-4-8", "рөл": "ассистент", "мазмұн": [ { "түр": "мәтін", "мәтін": "Қайтаруды бастау үшін тіркелгіңіздегі "Менің тапсырыстарым" бетіне өтіңіз..." } ], "stop_:us:" { "input_tokens": 47, "output_tokens": 88 }}

  • мазмұны: Жауаптың өзі; Бұл мазмұн блоктарының тізімі. Мәтіндік блоктың мәтіндік өрісі нақты жауап болып табылады.
  • stop_reason: Модель неліктен тоқтады. end_burn = табиғи соңы; max_tokens = шығыс шегінде тұрып қалды (жауап толық емес болуы мүмкін); бас тарту = қауіпсіздік мақсатында бас тартылды. Сіздің кодыңыз әрқашан алдымен stop_reason қарауы керек.
  • қолдану: енгізу және шығару маркер сандары. Бұл шығындар мен лимиттерді қадағалаудың негізі болып табылады.
Назар аударыңыз: тоқтату_себебі max_token болса, жауап аяқталмайды. Мұны «сәтті жауап» ретінде қарастыру және пайдаланушыға мәтіннің жартысын көрсету - өндірісте жиі кездесетін қателердің бірі. Не max_tokens көбейтіңіз немесе ағынды пайдаланыңыз.

Әлсіз шақыру / Күшті шақыру

Екі түрлі жүйе шақырулары бар бірдей тапсырма:

# ƏЛСІЗ Сіз ассистентсіз. Сұрақтарға жауап бер.

# ҚҰТТЫ Сіз корпоративті қолдау көмекшісісіз. Ережелер:- Берілген бағдарламалық құжаттағы ақпаратқа ғана сену; Егер ол құжатта жоқ болса, «Менде бұл ақпарат жоқ, мен оны тиісті бөлімшеге жіберемін» деп айтыңыз. - Жауаптар 3 сөйлемнен аспауы керек, ресми және түсінікті болуы керек. - Жеке деректерді (ТС ID нөмірі, карта нөмірі) сұрамаңыз және қайталамаңыз. - Сенбесеңіз, болжамаңыз.

Күшті нұсқасы; Ол ауқымды, пішінді, қауіпсіздік шегін және белгісіздіктегі мінез-құлықты анықтайды. Модель шығысының жүйелілігі тікелей осы анықтықтан туындайды.

Үш шағын корпус

1-жағдай — Қолдау боты (азаматтығы жоқтық тұзағы). Электрондық коммерция тобы ботты тікелей эфирде қабылдады; Пайдаланушы «алдыңғы тапсырыстан бас тарту» дегенде, бот тапсырыс нөмірін «ұмытып қалды». Себебі: олар әр сұрауды тек соңғы хабарламамен жіберді. Шешім: олар хабарлар тізіміне соңғы 6 раундты қосты. Нәтиже: мәтінмән сақталды, бірақ сұрау бойынша енгізу 40 таңбалауыштан ~600 токенге дейін өсті — біз 2-бөлімдегі шығын сабағын қарастырамыз.

2-жағдай — Толық емес шарттың қысқаша мазмұны. Заңды топта 10 беттік келісім-шарттар көрсетілген; max_tokens: 300 төмен болып қалды, қорытындылар сөйлемнің ортасын кесіп тастады. stop_reason әр уақытта max_token болды, бірақ ешкім іздемеді. max_tokens 1500 дейін өсті және тоқтату_себепті тексеру қосылды; Қысқартылған жиынтық мөлшерлеме 18%-дан 0%-ға дейін төмендеді.

3-жағдай — Рөлдерді араластыру. Маркетинг тобы барлық нұсқауларды пайдаланушы хабарламасына жазып, жүйені бос қалдырды. Пайдаланушы енгізуі нұсқаумен араласқанда, модель кейде пайдаланушының «алдыңғы ережелерді ұмыту» пәрменін орындайды. Олар жүйеге тұрақты ережелерді ауыстырды; Пайдаланушы енгізуін нұсқаулықтан бөлу арқылы ереже бұзушылықтар айтарлықтай азайды.

Жалпы қателер

  • Өткенді жіберуді ұмыту: Модель «есте сақтамайды» деп ойлайды; ал азаматтығы жоқ. Сіз контекстті жеткізесіз.
  • `stop_reason` дегенге қарамау: max_tokens арқылы тоқтатылған жауап аяқталды деп саналады.
  • Нұсқауды `user` ішіне енгізу: Жүйеге тұрақты ережелер; лезде енгізу пайдаланушыға жіберіледі. Араластыру қауіпсіздік осалдықтарын тудырады.
  • Қарапайым жол үшін "мазмұн" қатесі: Жауап - блоктар тізімі; бірінші мәтіндік блоктың мәтін өрісін оқыңыз, соқыр индексі бар мазмұнды [0] алу алдында оның түрін тексеріңіз.
  • Кілтті кодқа ендіру: Айнымалы ортаны пайдаланыңыз (9-бірлік).

Тереңірек: мазмұн блоктары және көп бөлікті жауаптар

Жауаптағы мазмұн өрісінің неліктен тізім екенін түсіну кейінірек кездесетін қосымша мүмкіндіктер үшін негізгі болып табылады. Кейде модель мәтіннің бір блогын емес, бірнеше блокты қайтарады: ойлау блогы, одан кейін мәтін блогы; немесе мәтін блогынан кейін құралды пайдалану блогы. Сондықтан мазмұнды [0] «жауап» ретінде соқыр санау нәзік. Дұрыс тәсіл - тізім бойынша өту және оны түрі бойынша сұрыптау: тип өрісі мәтін болатын блоктардың мәтіндік мазмұнын жинайсыз және басқа түрлерін (ойлау, құрал) бөлек қарастырасыз.

Бұл ерекшелік іс жүзінде не істейді, сіз модельдің пікірін (бар болса) пайдаланушыға көрсетпей журналға жаза аласыз, құрал шақыруларын бөлек логикаға қайта бағыттай аласыз және тек нақты жауапты экранда басып шығара аласыз. Модуль дамып келе жатқанда (әсіресе 4 және 11 блоктарда) бұл блок құрылымының шығысты тексеру және бағыттау үшін қаншалықты пайдалы екенін көресіз.

Тағы бір практикалық мәселе: сіз бір үлгіге әртүрлі провайдер платформаларынан (тікелей API, бұлттық провайдер арқылы) қол жеткізе аласыз. Соңғы нүкте мекенжайы мен аутентификация пішімі өзгеруі мүмкін болса да, хабарлама рөлдері, азаматтығы жоқтық және жауап құрылымы сияқты негізгі ұғымдар өзгеріссіз қалады. Сондықтан бұл құрылғының негіздері қай платформаны пайдалансаңыз да қолданылады.

Қысқаша айтқанда

LLM API сұрауы үлгіден, шығыс шегінен және хабарлар тізімінен тұрады; рөлдер (жүйе, пайдаланушы, көмекші) модельдің әрекетін анықтайды. Қоңыраулар азаматтығы жоқ: әрбір сұраумен контекстті алып жүресіз. Жауап құрылымдық нысан болып табылады; Мазмұнды, тоқтату_себебі мен пайдалану өрістерін оқу және түсіндіру өндірістегі ұзақ мерзімділіктің негізі болып табылады.

Қолданбалы тапсырма

Өз мамандығыңыздан тапсырма таңдаңыз (мысалы, кіріс электрондық поштаны сұрыптау, қысқаша қорытындылар жасау). Қағаз парағында: (1) 4-5 ережеден тұратын жүйелік нұсқауды жазыңыз, (2) пайдаланушы хабарламасының үлгісін және бар болса, 2 айналымдық тарихты орнатыңыз, (3) max_tokens үшін ақылға қонымды мәнді анықтаңыз және негіздеуді жазыңыз, (4) қайтарылған жауапта қандай тоқтату_себеп мәндерін және қалай өңдейтінін тізімдеңіз.

бақылау парағы

  • [ ] Мен сұраудың үш міндетті бөлігін санай аламын (үлгі, max_tokens, хабарлар).
  • [ ] Жүйе, пайдаланушы және көмекші рөлдерінің айырмашылығын түсіндіре аламын.
  • [ ] Мен қоңыраулардың азаматтығы жоқ екенін және өткенді алып жүру керек екенін білемін.
  • Мен [ ] мазмұнды, тоқтату_себептерін және пайдалану өрістерін оқып, түсініктеме бере аламын.
  • [ ] max_tokens көмегімен мен қысқартылған жауапты байқаймын және өңдей аламын.