નફો:
- LLM API વિનંતીની મૂળભૂત રચનાનું વર્ણન કરી શકે છે (અંતિમ બિંદુ, મોડેલ, સંદેશાઓ, max_tokens)
- સિસ્ટમ, વપરાશકર્તા અને સહાયકની ભૂમિકાઓ અને સ્ટેટલેસ વાતચીત ઇતિહાસ વચ્ચેનો તફાવત સમજે છે
- પરત કરેલ પ્રતિભાવના ફીલ્ડ્સ (સામગ્રી બ્લોક્સ, સ્ટોપ_રીઝન, ઉપયોગ) વાંચી અને અર્થઘટન કરી શકે છે
અગાઉના મોડ્યુલોમાં, અમે ચેટ વિન્ડોમાંથી આર્ટિફિશિયલ ઇન્ટેલિજન્સનો ઉપયોગ કર્યો હતો. પરંતુ જો તમે AI ને તમારા પોતાના ઉત્પાદન, ઓટોમેશન અથવા વર્કફ્લોમાં એમ્બેડ કરવા માંગતા હો, તો ચેટ ઈન્ટરફેસ તેને કાપશે નહીં; તમારે મોડેલ સાથે પ્રોગ્રામેટિકલી કનેક્ટ કરવાની જરૂર છે, એટલે કે, કોડ અથવા ઓટોમેશન ટૂલ સાથે. આ બ્રિજનું નામ API છે (એપ્લીકેશન પ્રોગ્રામિંગ ઈન્ટરફેસ, કરાર જે બે સોફ્ટવેરને અમુક નિયમો સાથે વાત કરવાની મંજૂરી આપે છે). જ્યારે તમે આ એકમ સમાપ્ત કરો છો, ત્યારે તમને ખબર પડશે કે LLM (લાર્જ લેંગ્વેજ મોડલ) API વિનંતી શું છે, સંદેશની ભૂમિકા શું છે અને પ્રતિભાવ કેવી રીતે વાંચવો. આ તે પાયો છે જેના પર બાકીનું મોડ્યુલ બાંધવામાં આવશે.
API કેવી રીતે કામ કરે છે?
API માં મૂળભૂત પ્રવાહ આ છે: તમે ચોક્કસ ફોર્મેટમાં વિનંતી મોકલો છો; સર્વર ચોક્કસ ફોર્મેટમાં પ્રતિભાવ આપે છે. LLM માં, આ સામાન્ય રીતે એક જ સરનામાં (અંતબિંદુ, સર્વર પરનું નિશ્ચિત સરનામું જે તમારી વિનંતીને સંભાળે છે) પર HTTP કૉલ (HTTP: વેબ પર વિનંતી-પ્રતિસાદ વહન કરવા માટેનો માનક પ્રોટોકોલ) છે. ઉદાહરણ તરીકે, મેસેજિંગ API માં, બધી વિનંતીઓ એક જ સરનામાં પર જાય છે અને JSON (જાવાસ્ક્રિપ્ટ ઑબ્જેક્ટ નોટેશન - એક ટેક્સ્ટ ફોર્મેટ જેમાં કી/મૂલ્ય જોડી હોય છે જે મનુષ્ય અને મશીન બંને દ્વારા વાંચી શકાય છે) તરીકે વહન કરવામાં આવે છે.
વિનંતીમાં, તમે ઓછામાં ઓછી આ ત્રણ બાબતોનો ઉલ્લેખ કરો:
- મોડલ: તમે કયા મોડલનો ઉપયોગ કરશો (દા.ત. ઝડપી અને સસ્તું મોડલ અથવા પાવરફુલ મોડલ).
- max_tokens: ટોકન્સની મહત્તમ સંખ્યા (સૌથી નાનું એકમ કે જેમાં ટેક્સ્ટ પર પ્રક્રિયા કરવામાં આવે છે, જે આગામી એકમમાં વિગતવાર પ્રક્રિયા કરવામાં આવશે) જે મોડેલ ઉત્પન્ન કરી શકે છે; એટલે કે આઉટપુટ મર્યાદા.
- સંદેશાઓ: સંદેશાઓની સૂચિ જે વાર્તાલાપ બનાવે છે.
સ્ટેપ બાય સ્ટેપ: વિનંતી કેવી રીતે સેટ કરવી
- અંતિમ બિંદુ અને ઓળખપત્રો તૈયાર કરો. તમે હેડરમાં વિનંતીમાં તમારી API કી (ગુપ્ત શબ્દમાળા જે તમારી ઓળખ સાબિત કરે છે) ઉમેરો. તમે કોડમાં કીને ક્યારેય એમ્બેડ કરશો નહીં; અમે એકમ 9 માં સુરક્ષિત સંગ્રહને આવરી લઈશું.
- મોડેલ અને આઉટપુટ મર્યાદા પસંદ કરો. સરળ કાર્ય માટે હળવા વજનના મોડલ + નાના મહત્તમ_ટોકન્સ; શક્તિશાળી મોડેલ + જટિલ કાર્ય માટે મોટી મર્યાદા.
- સંદેશ સૂચિ સેટ કરો. List the system instruction, user message, and past rounds (if any).
- વિનંતી મોકલો અને પ્રતિસાદનું વિશ્લેષણ કરો. પરત કરેલ 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, "system": "તમે કોર્પોરેટ સપોર્ટ આસિસ્ટન્ટ છો. ટૂંકો, ઔપચારિક અને ચકાસાયેલ પ્રતિસાદ આપો. તમને ખાતરી ન હોય તેવી માહિતી બનાવશો નહીં.", "messages": [ { "role": "user", "comtent": "હું રીટર્ન પ્રક્રિયા શરૂ કરું?" } ]}
વાણી સ્ટેટલેસ છે
અહીં સૌથી સામાન્ય ગેરસમજ છે: LLM API કૉલ સ્ટેટલેસ છે — સર્વર બે વિનંતીઓ વચ્ચે કોઈ મેમરી જાળવી રાખતું નથી. મોડેલને તમારી અગાઉની વિનંતી યાદ નથી. જો તમે મલ્ટિ-રાઉન્ડ ચેટ સેટ કરી રહ્યાં છો, તો તમારે દરેક નવી વિનંતી સાથે પાછલા રાઉન્ડને ફરીથી મોકલવાની જરૂર પડશે. મોડેલની "મેમરી" માં તમે મોકલેલા સંદેશાઓની સૂચિ હોય છે.
{ "મોડેલ": "ક્લેડ-ઓપસ-4-8", "મેક્સ_ટોકન્સ": 512, "સંદેશાઓ": [ { "ભૂમિકા": "વપરાશકર્તા", "સામગ્રી": "હેલો, મારું નામ ડેનિઝ છે." }, { "role": "assistant", "content": "Hello Deniz, હું તમને કેવી રીતે મદદ કરી શકું?" }, { "role": "user", "content": "મેં હમણાં જ મારું નામ કહ્યું, તમને યાદ છે?" } ]}
ત્રીજા સંદેશનો સાચો જવાબ આપવો એ તમે અગાઉના બંને સંદેશાઓ મોકલો છો તેના પર નિર્ભર છે. જો તમે તેને મોકલશો નહીં, તો મોડેલ "સમુદ્ર" ને જાણશે નહીં અને ખોટો જવાબ આપશે. આ કિંમતને પણ સીધી અસર કરે છે: વાતચીત જેટલી લાંબી, સૂચિ જેટલી મોટી, દરેક વિનંતી વધુ ટોકન્સ લે છે.
ટીપ: લાંબી વાર્તાલાપમાં, સમગ્ર ઇતિહાસ મોકલવાને બદલે જૂના રાઉન્ડ (સારાંશ + છેલ્લા કેટલાક રાઉન્ડ)ને સારાંશ અને ખસેડવાથી ખર્ચ ઓછો થાય છે અને સંદર્ભ વિન્ડો સાચવવામાં આવે છે. અમે તેને એકમો 6 અને 11 માં વધુ ઊંડું કરીશું.
જવાબ વાંચો
જ્યારે મોડેલ પ્રતિસાદ આપે છે, ત્યારે તમને એક સ્ટ્રક્ચર્ડ ઑબ્જેક્ટ પ્રાપ્ત થાય છે, સાદા ટેક્સ્ટ નહીં. લાક્ષણિક વિસ્તારો:
{ "id": "msg_01ABC...", "model": "claude-opus-4-8", "role": "assistant", "content": [ { "type": "text", "text": "રીટર્ન શરૂ કરવા માટે, તમારા એકાઉન્ટમાં 'મારા ઓર્ડર્સ' પેજ પર જાઓ..." } ], "stop_reason": "stop_reason": "ઇનપુટ_ટોકન્સ": 47, "આઉટપુટ_ટોકન્સ": 88 }}
- સામગ્રી: પ્રતિભાવ પોતે; તે સામગ્રી બ્લોક્સની સૂચિ છે. ટેક્સ્ટ બ્લોકનું ટેક્સ્ટ ફીલ્ડ એ વાસ્તવિક જવાબ છે.
- stop_reason: મોડલ કેમ બંધ થયું. end_turn = કુદરતી અંત; max_tokens = આઉટપુટ મર્યાદા પર અટકી (પ્રતિસાદ અપૂર્ણ હોઈ શકે છે); refusal = સુરક્ષા કારણોસર ના પાડી. તમારો કોડ હંમેશા પહેલા stop_reason જોવો જોઈએ.
- વપરાશ: ઇનપુટ અને આઉટપુટ ટોકન નંબરો. તે કિંમત અને મર્યાદા ટ્રેકિંગનો આધાર છે.
ધ્યાન આપો: જો stop_reason max_tokens હોય, તો પ્રતિભાવ પૂર્ણ થતો નથી. આને "સફળ પ્રતિસાદ" તરીકે ગણવું અને વપરાશકર્તાને અડધો ટેક્સ્ટ બતાવવો એ ઉત્પાદનમાં સૌથી સામાન્ય ભૂલો પૈકીની એક છે. ક્યાં તો max_tokens વધારો અથવા સ્ટ્રીમિંગનો ઉપયોગ કરો.
નબળા પ્રોમ્પ્ટ / મજબૂત પ્રોમ્પ્ટ
બે અલગ અલગ સિસ્ટમ પ્રોમ્પ્ટ સાથે સમાન કાર્ય:
# નબળા તમે સહાયક છો. પ્રશ્નોના જવાબ આપો.
# સ્ટ્રોંગ તમે કોર્પોરેટ સપોર્ટ સહાયક છો. નિયમો:- પૂરા પાડવામાં આવેલ પોલિસી દસ્તાવેજમાંની માહિતી પર જ આધાર રાખો; જો તે દસ્તાવેજમાં નથી, તો કહો કે "મારી પાસે આ માહિતી નથી, હું તેને સંબંધિત એકમને નિર્દેશિત કરી રહ્યો છું." - જવાબો 3 વાક્યોથી વધુ ન હોવા જોઈએ, ઔપચારિક અને સ્પષ્ટ હોવા જોઈએ. - વ્યક્તિગત ડેટા (TC ID નંબર, કાર્ડ નંબર) માટે પૂછશો નહીં અને પુનરાવર્તન કરશો નહીં. - જ્યારે તમને ખાતરી ન હોય ત્યારે અનુમાન ન કરો.
શક્તિશાળી સંસ્કરણ; તે અવકાશ, ફોર્મ, સલામતી માર્જિન અને અનિશ્ચિતતામાં વર્તનને વ્યાખ્યાયિત કરે છે. મોડેલ આઉટપુટની સુસંગતતા આ સ્પષ્ટતામાંથી સીધી આવે છે.
ત્રણ મિની કેસ
કેસ 1 - સપોર્ટ બોટ (સ્ટેટલેસનેસ ટ્રેપ). ઈ-કોમર્સ ટીમે બોટને લાઈવ લીધો; જ્યારે વપરાશકર્તાએ "અગાઉનો ઓર્ડર રદ કરો" કહ્યું, ત્યારે બોટ ઓર્ડર નંબર "ભૂલી ગયો". કારણ: તેઓ દરેક વિનંતી માત્ર છેલ્લા સંદેશ સાથે મોકલી રહ્યા હતા. ઉકેલ: તેઓએ સંદેશાની સૂચિમાં છેલ્લા 6 રાઉન્ડ ઉમેર્યા. પરિણામ: સંદર્ભ સાચવેલ છે, પરંતુ વિનંતી દીઠ ઇનપુટ 40 ટોકન્સથી વધીને ~600 ટોકન્સ થયું છે — અમે એકમ 2 માં ખર્ચ પાઠ આવરી લઈશું.
કેસ 2 — અપૂર્ણ કરાર સારાંશ. એક કાનૂની ટીમમાં 10-પાનાના કરારો દર્શાવવામાં આવ્યા હતા; મહત્તમ_ટોકન્સ: 300 નીચા રહ્યા, સારાંશ મધ્ય-વાક્યને કાપી રહ્યા હતા. stop_reason દરેક વખતે max_tokens હતા પણ કોઈ જોઈ રહ્યું ન હતું. મહત્તમ_ટોકન્સ વધારીને 1500 કર્યા અને stop_reason ચેક ઉમેર્યા; કાપવામાં આવેલ સારાંશ દર 18% થી ઘટીને 0% થયો છે.
કેસ 3 - ભૂમિકાઓનું મિશ્રણ. એક માર્કેટિંગ ટીમ સિસ્ટમને ખાલી છોડીને, વપરાશકર્તા સંદેશમાં તમામ સૂચનાઓ લખી રહી હતી. જ્યારે વપરાશકર્તા ઇનપુટ સૂચના સાથે મિશ્રિત થાય છે, ત્યારે મોડેલ કેટલીકવાર "અગાઉના નિયમો ભૂલી જાઓ" માટે વપરાશકર્તાના આદેશનું પાલન કરશે. તેઓએ સિસ્ટમમાં કાયમી નિયમો ખસેડ્યા; વપરાશકર્તાના ઇનપુટને સૂચનાથી અલગ કરીને, નિયમના ઉલ્લંઘનમાં નોંધપાત્ર ઘટાડો થયો છે.
સામાન્ય ભૂલો
- ભૂતકાળ મોકલવાનું ભૂલી જવું: મોડેલને "યાદ નથી" માનવામાં આવે છે; જ્યારે તે સ્ટેટલેસ છે. તમે સંદર્ભ વહન કરો છો.
- `સ્ટોપ_કારણ` જોતા નથી: મહત્તમ_ટોકન્સ સાથે રોકાયેલ પ્રતિસાદને પૂર્ણ ગણવામાં આવે છે.
- 'વપરાશકર્તા' માં સૂચના એમ્બેડ કરવી: સિસ્ટમમાં સતત નિયમો; ઇન્સ્ટન્ટ ઇનપુટ વપરાશકર્તાને જાય છે. મિશ્રણ સુરક્ષા નબળાઈઓ બનાવે છે.
- સાદા સ્ટ્રિંગ માટે 'સામગ્રી'ને ભૂલ કરવી: જવાબ એ બ્લોક્સની સૂચિ છે; પ્રથમ ટેક્સ્ટ બ્લોકનું ટેક્સ્ટ ફીલ્ડ વાંચો, બ્લાઇન્ડ ઇન્ડેક્સ સાથે સામગ્રી[0] મેળવતા પહેલા તેનો પ્રકાર ચકાસો.
- કોડમાં કી એમ્બેડ કરવી: પર્યાવરણ વેરીએબલનો ઉપયોગ કરો (એકમ 9).
વધુ ઊંડો: સામગ્રી બ્લોક્સ અને મલ્ટી-પાર્ટ જવાબો
પ્રતિસાદમાં સામગ્રી ક્ષેત્ર શા માટે સૂચિ છે તે સમજવું એ અદ્યતન સુવિધાઓ માટે મૂળભૂત છે જે તમે પછીથી અનુભવશો. કેટલીકવાર મોડેલ ટેક્સ્ટનો એક બ્લોક નહીં, પરંતુ ઘણા બ્લોક્સ પરત કરે છે: વિચારનો બ્લોક, ટેક્સ્ટનો એક બ્લોક; અથવા ટૂલ ઉપયોગ બ્લોક દ્વારા અનુસરવામાં આવેલ ટેક્સ્ટનો બ્લોક. એટલા માટે "જવાબ" તરીકે સામગ્રી[0]ને આંખ આડા કાન કરવી નાજુક છે. સાચો અભિગમ એ છે કે સૂચિમાંથી પસાર થવું અને તેને પ્રકાર દ્વારા સૉર્ટ કરવું: તમે બ્લોકની ટેક્સ્ટ સામગ્રી એકત્રિત કરો કે જેના પ્રકારનું ક્ષેત્ર ટેક્સ્ટ છે, અને અન્ય પ્રકારો (વિચાર, સાધન) ને અલગથી સારવાર કરો.
આ ભેદ વ્યવહારમાં શું કરે છે તે એ છે કે તમે મોડેલના તર્કને (જો કોઈ હોય તો) વપરાશકર્તાને જાહેર કર્યા વિના લૉગ કરી શકો છો, ટૂલ કૉલ્સને અલગ તર્ક પર રીડાયરેક્ટ કરી શકો છો અને ફક્ત સ્ક્રીન પર વાસ્તવિક જવાબ છાપી શકો છો. જેમ જેમ મોડ્યુલ આગળ વધે છે (ખાસ કરીને એકમો 4 અને 11 માં) તમે જોશો કે આ બ્લોક સ્ટ્રક્ચર આઉટપુટને માન્ય કરવા અને નિર્દેશિત કરવા માટે કેટલું ઉપયોગી છે.
બીજો વ્યવહારુ મુદ્દો: તમે વિવિધ પ્રદાતા પ્લેટફોર્મ્સ (ડાયરેક્ટ API, ક્લાઉડ પ્રદાતા દ્વારા) માંથી સમાન મોડેલને ઍક્સેસ કરી શકો છો. જો કે એન્ડપોઇન્ટ સરનામું અને પ્રમાણીકરણ ફોર્મેટ બદલાઈ શકે છે, તેમ છતાં મૂળભૂત ખ્યાલો જેમ કે સંદેશની ભૂમિકાઓ, રાજ્યવિહીનતા અને પ્રતિભાવ માળખું સમાન રહે છે. તેથી તમે ગમે તે પ્લેટફોર્મનો ઉપયોગ કરો છો તો પણ આ યુનિટમાં મૂળભૂત બાબતો લાગુ પડે છે.
સારાંશમાં
LLM API વિનંતીમાં મોડેલ, આઉટપુટ મર્યાદા અને સંદેશ સૂચિનો સમાવેશ થાય છે; ભૂમિકાઓ (સિસ્ટમ, વપરાશકર્તા, સહાયક) મોડેલનું વર્તન નક્કી કરે છે. કૉલ સ્ટેટલેસ છે: તમે દરેક વિનંતી સાથે સંદર્ભ રાખો છો. પ્રતિભાવ એક સંરચિત પદાર્થ છે; સામગ્રીનું વાંચન અને અર્થઘટન, stop_reason અને ઉપયોગ ક્ષેત્રો ઉત્પાદનમાં ટકાઉપણુંનો આધાર છે.
એપ્લિકેશન કાર્ય
તમારા પોતાના વ્યવસાયમાંથી એક કાર્ય પસંદ કરો (દા.ત. આવનારા ઈ-મેલને સૉર્ટ કરવું, સંક્ષિપ્ત સારાંશ બનાવવું). કાગળના ટુકડા પર: (1) 4-5 નિયમો સાથે સિસ્ટમ પ્રોમ્પ્ટ લખો, (2) સેમ્પલ યુઝર મેસેજ અને જો કોઈ હોય તો 2-રાઉન્ડ હિસ્ટ્રી સેટ કરો, (3) max_tokens માટે વાજબી મૂલ્ય નક્કી કરો અને વાજબીતા લખો, (4) આપેલા જવાબમાં તમે કયા stop_reason મૂલ્યોને હેન્ડલ કરશો અને કેવી રીતે કરશો તેની સૂચિ.
ચેકલિસ્ટ
- [ ] હું વિનંતીના ત્રણ ફરજિયાત ભાગો (મોડેલ, મહત્તમ_ટોકન્સ, સંદેશાઓ) ગણી શકું છું.
- [ ] હું સિસ્ટમ, વપરાશકર્તા અને મદદનીશ ભૂમિકાઓ વચ્ચેનો તફાવત સમજાવી શકું છું.
- [ ] હું જાણું છું કે કૉલ સ્ટેટલેસ છે અને મારે ભૂતકાળને વહન કરવાની જરૂર છે.
- હું [ ] સામગ્રી, stop_reason અને ઉપયોગ ક્ષેત્રો વાંચી અને તેના પર ટિપ્પણી કરી શકું છું.
- [ ] max_tokens સાથે હું કાપેલા પ્રતિભાવને નોટિસ અને હેન્ડલ કરી શકું છું.