ඒකකය 9 / 11

AI නියෝජිතයන් සහ මෙවලම් භාවිතය

ලාභ:

  • නියෝජිතයෙකු 'ආකෘතිය + මෙවලම් + ලූප්' ලෙස අර්ථ දැක්වීම සහ එය අවශ්‍ය විට තීරණය කිරීම
  • නම, විස්තරය සහ input_schema සමඟ මෙවලම් අර්ථ දැක්වීම ලිවීම
  • tool_use සහ tool_result loop හි ප්‍රවාහය සහ දෝෂ හැසිරවීම අධීක්ෂණය කිරීම

මේ වන තෙක්, ආකෘතිය සෑම විටම එක් කාර්යයක් කර ඇත: පෙළ ආදානය ලබා ගැනීම, පෙළ ප්රතිචාර නිෂ්පාදනය කිරීම. නමුත් සැබෑ වැඩ සඳහා බොහෝ විට පෙළට වඩා වැඩි යමක් අවශ්ය වේ; ගණනය කිරීමක් සිදු කිරීම, දත්ත සමුදායක් විමසීම, API ඇමතීම, වත්මන් විනිමය අනුපාතය සොයා ගැනීම. නිරූපිකාවට මේවා තනිවම කළ නොහැක - නමුත් ඒවා කළ යුත්තේ කවදාදැයි ඇයට තීරණය කර ඒවා කිරීමට යමෙකුගෙන් ඉල්ලා සිටිය හැකිය. මෙවලම් භාවිතය ආකෘතිය ලබා දෙන්නේ මෙයයි, සහ AI නියෝජිතයින්ගේ පදනම මෙයයි. මෙම ඒකකය තුළ, අපි නියෝජිතයෙකු යනු කුමක්ද, මෙවලම අර්ථ දක්වා ඇති ආකාරය සහ tool_use ලූපය ක්‍රියා කරන ආකාරය ඉගෙන ගනිමු.

නියෝජිතයෙකු යනු කුමක්ද? ආකෘතිය + මෙවලම් + ලූප්

AI නියෝජිතයෙකු කොටස් තුනකින් සමන්විත වේ: ආකෘතිය (තීරණය ගන්නා මොළය), මෙවලම් (ආකෘතියට ඇමතිය හැකි කාර්යයන්: කාලගුණය, දත්ත සමුදා විමසුම, විද්‍යුත් තැපෑල යැවීම), සහ ලූපය (ලූපය; ආකෘතිය මෙවලම අමතයි, ප්‍රතිඵලය ලබා ගනී, කුමක් කළ යුතුද යන්න නැවත තීරණය කරයි, සහ යනාදිය).

විවේචනාත්මක වෙනස: තනි රටා ඇමතුමක් නියෝජිතයෙකු නොවේ. නියෝජිතයා යනු ආකෘතිය පියවරෙන් පියවර ඉදිරියට යන ක්‍රියාවලියකි, සෑම පියවරකදීම මෙවලම් ප්‍රතිඵලය මත පදනම්ව ඊළඟ පියවර තෝරා ගනී. "මිනිසෙකු මෙන් සිතන්න, ඔබේ දෑත් භාවිතා කරන්න, ප්රතිඵලය දෙස බලන්න, නැවත සිතන්න."

වැදගත් කරුණක්: ආකෘතියම වාහනය ක්රියාත්මක නොවේ. ආකෘතිය පවසන්නේ "මට මෙම ආදාන සමඟ මෙම මෙවලම ඇමතීමට අවශ්‍යයි" යනුවෙනි. ඔබගේ යෙදුම (පටියක් ලෙස හැඳින්වේ) මෙවලම ධාවනය කර ප්‍රතිඵලය ආකෘතියට ලබා දෙයි. ආරක්ෂාව සඳහා මෙය ඉතා වැදගත් වේ: ආකෘතිය ඔබේ පද්ධතියට කෙලින්ම ස්පර්ශ නොවේ; සෑම ක්‍රියාවක්ම ඔබගේ පාලනය යටතේ පවතී.

ඉඟිය: නියෝජිතයා සමඟ ඇති සෑම ගැටලුවක්ම විසඳීමට උත්සාහ නොකරන්න. නියෝජිතයා; ප්රමාදයන්, පිරිවැය සහ දෝෂ ඇතිවීමේ අවදානම වැඩි කරයි. පළමුව අසන්න: “මෙය තනි ඇමතුමකින් හෝ ස්ථාවර කාර්ය ප්‍රවාහයකින් විසඳිය හැකිද?” පිළිතුර ඔව් නම්, නියෝජිතයෙකු අවශ්‍ය නොවේ. නියෝජිතයා යනු පියවර කල්තියා දැනගත නොහැකි විවෘත කාර්යයන් සඳහා ය.

මෙවලම් අර්ථ දැක්වීම: නම, විස්තරය, input_schema

ආකෘතියට මෙවලමක් හඳුන්වා දීම සඳහා, ඔබ කරුණු තුනක් ලබා දෙයි:

  • නම: වාහනයේ අනන්‍යතාවය, උදා. ලබාගන්න_කාලගුණය.
  • විස්තරය: මෙවලම කරන්නේ කුමක්ද සහ එය ඇමතීමට කවදාද යන්න. මෙම ආකෘතිය නියම වේලාවට නිවැරදි මෙවලම තෝරා ගැනීමට ඉඩ සලසන වැදගත්ම ප්රදේශය මෙයයි. "කුමක් කරයිද" පමණක් නොව "කවදා අමතන්න" ද ලියන්න.
  • input_schema (input schema): JSON schema යනු මෙවලම අපේක්ෂා කරන්නේ කුමන ආකාරයේද යන්න නිර්වචනය කරයි.

# වාහන නිර්වචනය (සංකල්පීය — JSON යෝජනා ක්‍රමය){ "name": "get_order_status", "description": "ඇණවුමක වත්මන් නැව්ගත කිරීමේ තත්ත්වය ලබා ගනී. පරිශීලකයා ඇණවුම් අංකයක් කොහිදැයි හෝ එය පැමිණෙන්නේ කවදාදැයි විමසූ විට අමතන්න.", "input_schema": { "type": "object": "properties": "properties": "properties" "string", "විස්තරය": "ඇණවුම් අංකය, උදා. SP-1024"} }, "අවශ්‍ය": ["order_no"] }}

හොඳ මෙවලම් විස්තරයක් සඳහා රීති: පැහැදිලි සහ සංක්ෂිප්ත නම, "භාවිතා කළ යුත්තේ කවදාද" සමඟ විස්තරය, එක් එක් පරාමිතිය සඳහා විස්තරය, සැබවින්ම අනිවාර්ය ඒවා තැබීම. වාහන සංඛ්යාව අවධානය යොමු කරන්න; සමාන වාහන මාදිලි දුසිම් ගණනක් පුදුම සහගතය.

ප්රදේශය

එය කරන්නේ කුමක්ද?

හොඳ උදාහරණයක්

නරක ආදර්ශය

නම

වාහන හැඳුනුම්පත

ඇණවුම්_තත්වය_ගෙටිර්

ගේනවා

විස්තරය

එය කරන්නේ කුමක්ද + ඇමතීමට කවදාද

"භාණ්ඩ තත්ත්වය ආපසු ලබා දෙයි; ඇණවුම කොහිදැයි පරිශීලකයා විමසූ විට අමතන්න"

"දත්ත ලබා ගනී"

input_schema

පරාමිති වර්ගය සහ අවශ්යතාවය

{order_no: string, annotated}

රූප සටහනක් නැත / විස්තරයක් නැත

tool_use → tool_result Loop

චක්රය මේ ආකාරයට ක්රියා කරයි, පියවරෙන් පියවර:

  1. ඔබ පරිශීලක ප්‍රශ්නය + මෙවලම් විස්තර ආකෘතියට යවන්න.
  2. ආකෘතිය සෘජුවම ප්‍රතිචාර දක්වයි හෝ මෙවලම්_භාවිත අවහිරයක් ජනනය කරයි: "order_no=SP-1024 සමඟ order_durumu_getir අමතන්න."
  3. ඔබගේ යෙදුම ඇත්ත වශයෙන්ම මෙවලම ධාවනය කරයි (දත්ත සමුදාය විමසයි).
  4. ඔබ ප්‍රතිඵලය tool_result ලෙස ආකෘතියට යවන්න.
  5. මෙම ප්රතිඵලය සමඟ, ආකෘතිය අවසන් පිළිතුර නිපදවයි හෝ වෙනත් මෙවලමක් අමතන්න. "මම ඉවරයි" කියා ආකෘතිය පවසන තුරු චක්රය දිගටම පවතී.

# නියෝජිත ලූප් (සංකල්පීය) පණිවිඩ = [පරිශීලක_ප්‍රශ්නය] සත්‍ය වන විට: ප්‍රතිචාරය = model.uret(messages, tools=tool_definitions) if response.tur == "tool_use": result = harness.run(response.tool_name, response.entries) # APPLICATION ප්‍රති result ලය පණිවිඩය වෙත ප්‍රතිපල ලබා දෙයි (response. # අවසාන ප්‍රතිචාරය; ලූප් අවසන් වේ

නවීන SDKs ඔබ වෙනුවෙන් මෙම ලූපය ධාවනය කරන මෙවලම් ධාවකයන් පිරිනමයි; ඔබ හුදෙක් මෙවලම් කාර්යයන් ලියන්න. නමුත් තිරය පිටුපස සිදුවන්නේ එයයි.

දෝෂ කළමනාකරණය

මෙවලම් අසමත් විය හැක: ඇණවුම හමු නොවීය, API කාලය අවසන්, ආදානය වලංගු නොවේ. ඔබට මෙවලම ක්‍රියාත්මක කළ නොහැකි නම්, දෝෂය විස්තරාත්මක මෙවලමක් ලෙස ආකෘතිය වෙත ආපසු ලබා දෙන්න_ප්‍රතිඵලය ("දෝෂය: ඇණවුම් අංකය SP-9999 හමු නොවීය") සහ දෝෂ ධජය. ආකෘතියට මෙය දැක ගත හැකි අතර එය පරිශීලකයාට මෘදු ලෙස පැහැදිලි කළ හැකිය, නැතහොත් වෙනත් ආකාරයකින් උත්සාහ කරන්න. දෝෂය ගිල දමන්න එපා සහ හිස් ප්රතිඵල ආපසු ලබා දෙන්න; මොඩල් එක දන්නව ඇති වැරැද්ද මොකක්ද කියලා.

දුර්වල/ශක්තිමත් වාහන විස්තරය

දුර්වල (අවිනිශ්චිත නාම පදයක්, "කවදා" නැත):

නම: "දත්ත", විස්තරය: "දත්ත ලබා ගනී"# ආදර්ශය අමතන්නේ කවදාද සහ කෙසේද යන්න නොදනී; එය කිසිසේත්ම ඇමතුමක් නොගනී, නැතහොත් වැරදි ලෙස අමතන්න.

ශක්තිමත් (ශුද්ධ නම + විට + පරාමිති විස්තරය):

නම: "musteri_bakiyesi_getir"විස්තරය: "පාරිභෝගිකයෙකුගේ ජංගම ගිණුමේ ශේෂය ආපසු ලබා දෙයි. පරිශීලකයා හර, ණය හෝ ශේෂය ඉල්ලා සිටින විට අමතන්න. ගෙවීම් සිදු නොකරයි." input_schema: {custeri_id: string ("පාරිභෝගික හැඳුනුම්පත")}# ආකෘතිය එහි නියම සීමාව දැනගෙන, නියම වේලාවට අමතයි.

කුඩා නඩු තුනක්

නඩුව 1 - අනවශ්ය නියෝජිතයා. එක් කණ්ඩායමක් බහු-මෙවලම් නියෝජිතයෙකු සමඟ "සාරාංශ පෙළ" ව්‍යාපාරය ගොඩනඟා ඇත; සෑම නැවත බැලීමකටම මාදිලි ඇමතුම් 4ක් සහ තත්පර 9ක් ගතවේ. රැකියාව ඇත්ත වශයෙන්ම එක් ඇමතුමක රැකියාවක් විය. අපි නියෝජිතයා ඉවත් කර එය තනි ඇමතුමකට අඩු කළ විට, කාලය තත්පර 1.5 දක්වා අඩු වූ අතර පිරිවැය කාර්තුවකට අඩු විය. පාඩම: ඇත්ත වශයෙන්ම අවශ්ය විට නියෝජිතයා භාවිතා කරන්න.

නඩුව 2 - දුර්වල පැහැදිලි කිරීම, වැරදි ඇමතුම. ආධාරක නියෝජිතයෙකු තුළ, ශේෂ ප්‍රශ්නය සහ නැව්ගත කිරීමේ ප්‍රශ්නය යන දෙකෙහිම ආදර්ශය විසින් ලබා ගැනීම නම් අපැහැදිලි මෙවලමක් අහඹු ලෙස හැඳින්වේ. වාහන balance_getir සහ cargo_durumu_getir ලෙස බෙදා "call when" පැහැදිලි කිරීම් එකතු කළ විට, වැරදි වාහන තේරීම උදාහරණ 50 කින් 18 සිට 1 දක්වා අඩු විය.

නඩුව 3 - දෝෂය ගිලී ඇත. ඇණවුම සොයාගත නොහැකි වූ විට නියෝජිතයෙකු හිස් ප්‍රතිඵල ලබා දෙමින් සිටියේය; ආකෘතිය මෙය "ඇණවුම භාර දෙන ලදී" ලෙස අර්ථකථනය කර පාරිභෝගිකයා නොමඟ යවා ඇත. දෝෂ පණිවිඩය tool_result ("ඇණවුම සොයාගත නොහැක") වෙත පැහැදිලිව ලියා ඇති විට, ආකෘතිය නිවැරදිව පවසන්නේ "මට මෙම අංකය සොයාගත නොහැකි විය, ඔබට එය පරීක්ෂා කළ හැකිද?" ඔහු කියන්නට විය.

පොදු වැරදි

  • සෑම දෙයක්ම නියෝජිතයෙකු වෙත හැරවීම: එක් ඇමතුමක් ප්රමාණවත් වන අතර, නියෝජිතයා පිරිවැය සහ ප්රමාදය එකතු කරයි.
  • නොපැහැදිලි වාහන විස්තරය: ආදර්ශය අමතන්නේ කවදාදැයි නොදනී; වැරදි ලෙස තෝරා ගනී.
  • ආකෘතිය වාහනය ධාවනය කරන බව සිතීම: පටි වාහනය ධාවනය කරයි; ආකෘතියට අවශ්යයි.
  • දෝෂය ගිල දැමීම: ආදර්ශය වැරදි දේ දැන සිටිය යුතුය; දෝශය open tool_result ලෙස දෙන්න.
  • බොහෝ සමාන වාහන: මාදිලිය ව්‍යාකූල වේ; මෙවලම් කට්ටලය නාභිගත කර අවම වශයෙන් තබා ගන්න.
අවධානය: නිරූපිකාව "එම වාහනය අමතන්න" යැයි කී පමණින් ක්‍රියාමාර්ග ගත යුතු බව අදහස් නොවේ. විනාශකාරී මෙවලම් මත (මකන්න, පිටවීම, විද්‍යුත් තැපෑල) ඔබගේ යෙදුම අන්ධ ලෙස ඇමතුම ක්‍රියාත්මක නොකළ යුතුය - ඊළඟ ඒකකයේ ආරක්ෂක මාතෘකාවේ හරය මෙයයි.

සාරාංශයක් ලෙස

  • නියෝජිත = ආකෘතිය (තීරණය) + මෙවලම් (කාර්යයන්) + ලූප් (ඇමතුම් මෙවලම, ප්රතිඵලය ලබා ගන්න, නැවත තීරණය කරන්න).
  • තනි රටා ඇමතුමක් නියෝජිතයෙකු නොවේ; නියෝජිතයා යනු පියවරෙන් පියවර ක්‍රියාවලියකි.
  • ආකෘතිය වාහනය ධාවනය නොකරයි; ඔබගේ යෙදුම ක්‍රියාත්මක වේ (පටි) සහ ප්‍රතිඵලය tool_result ලෙස ලබා දෙයි.
  • මෙවලම නම, විස්තරය (විශේෂයෙන් "ඇමතුම් විට") සහ input_schema මගින් හඳුනා ගැනේ.
  • ලූපය මෙවලම_භාවිතය → පටි ධාවනය → මෙවලම්_ප්‍රතිඵලය → මාදිලිය "කළ" යැයි පවසන තෙක් ආකෘතිය දිගටම පවතී; දෝෂ ආකෘතියට පැහැදිලිව වාර්තා වේ.

යෙදුම් කාර්යය

නියෝජිතයාට ලබා දිය හැකි ඔබේම ව්‍යාපාරයෙන් මෙවලම් 3ක් සැලසුම් කරන්න. (1) එක් එක් සඳහා නම, විස්තරය "ඇමතුම් විට" සහ input_schema සමඟ ලියන්න; අවම වශයෙන් එකක් විනාශ නොවන කියවීමේ මෙවලමක් සහ එකක් ගණනය කිරීමක් වේවා. (2) යථාර්ථවාදී පරිශීලක ප්‍රශ්නයක් තෝරාගෙන පියවරෙන් පියවර අතින් ලියන්න (ලූපයක් තුළ) මෙම මෙවලම්වලින් කුමන ආදාන සමඟින් මොඩලය අමතන්නේ ද සහ tool_result පැමිණි පසු එය කරන්නේ කුමක් ද යන්න. (3) එක් මෙවලමක් අසමත් වන අවස්ථාවක් සකසන්න සහ දෝෂ පණිවිඩය ආකෘතියට ආපසු එන ආකාරය පෙන්වන්න.

පිරික්සුම් ලැයිස්තුව

  • [ ] මට නියෝජිතයා "ආකෘතිය + මෙවලම් + ලූප්" ලෙස නිර්වචනය කර එය අවශ්‍ය විට තීරණය කළ හැකිය.
  • [ ] මම දන්නවා වාහනය ධාවනය කරන්නේ පටි, නිරූපිකාවට එය අවශ්‍යයි.
  • මට [ ] නම, විස්තරය ("ඇමතුම් විට") සහ input_schema සමඟ ඝන වාහන විස්තරයක් ලිවිය හැක.
  • මට [ ] tool_use → tool_result චක්‍රය පියවරෙන් පියවර අනුගමනය කළ හැක.
  • [ ] මම ආදර්ශයට මෙවලම් දෝෂ විවෘත tool_result ලෙස වාර්තා කරමි.