அலகு 9 / 11

AI முகவர்கள் மற்றும் கருவி பயன்பாடு

ஆதாயங்கள்:

  • ஒரு முகவரை 'மாடல் + டூல்ஸ் + லூப்' என வரையறுத்து அது எப்போது தேவை என்று தீர்மானித்தல்
  • பெயர், விளக்கம் மற்றும் input_schema உடன் கருவி வரையறையை எழுதுதல்
  • tool_use மற்றும் tool_result loop இன் ஓட்டம் மற்றும் பிழை கையாளுதலை கண்காணித்தல்

இப்போது வரை, மாதிரி எப்போதும் ஒரு வேலையைச் செய்துள்ளது: உரை உள்ளீட்டைப் பெறுதல், உரை பதில்களை உருவாக்குதல். ஆனால் உண்மையான வேலை பெரும்பாலும் உரையை விட அதிகமாக தேவைப்படுகிறது; கணக்கீடு செய்தல், தரவுத்தளத்தை வினவுதல், API ஐ அழைப்பது, தற்போதைய மாற்று விகிதத்தைக் கண்டறிதல். மாடல் இந்த விஷயங்களைத் தானே செய்ய முடியாது - ஆனால் அவை எப்போது செய்ய வேண்டும் என்பதை அவளால் தீர்மானிக்க முடியும் மற்றும் யாரையாவது செய்யச் சொல்லலாம். இந்த கருவியின் பயன்பாடு மாதிரியை அளிக்கிறது, இது AI முகவர்களின் அடிப்படையாகும். இந்த யூனிட்டில், ஏஜென்ட் என்றால் என்ன, கருவி எவ்வாறு வரையறுக்கப்படுகிறது மற்றும் டூல்_யூஸ் லூப் எவ்வாறு செயல்படுகிறது என்பதைக் கற்றுக்கொள்வோம்.

ஏஜென்ட் என்றால் என்ன? மாதிரி + கருவிகள் + லூப்

AI முகவர் மூன்று பகுதிகளைக் கொண்டுள்ளது: மாதிரி (முடிவு எடுக்கும் மூளை), கருவிகள் (மாடல் அழைக்கக்கூடிய செயல்பாடுகள்: வானிலை, தரவுத்தள வினவல், மின்னஞ்சல் அனுப்புதல்), மற்றும் லூப் (லூப்; மாதிரி கருவியை அழைக்கிறது, முடிவைப் பெறுகிறது, என்ன செய்ய வேண்டும் என்பதை மீண்டும் தீர்மானிக்கிறது மற்றும் பல).

முக்கியமான வேறுபாடு: ஒற்றை முறை அழைப்பு முகவர் அல்ல. முகவர் என்பது ஒரு செயல்முறையாகும், இதில் மாதிரியானது படிப்படியாகத் தொடரும், ஒவ்வொரு அடியிலும் கருவியின் விளைவுகளின் அடிப்படையில் அடுத்த நகர்வைத் தேர்ந்தெடுக்கும். "ஒரு மனிதனைப் போல சிந்தியுங்கள், உங்கள் கைகளைப் பயன்படுத்துங்கள், முடிவைப் பாருங்கள், மீண்டும் சிந்தியுங்கள்."

ஒரு முக்கியமான உண்மை: மாடல் தானே வாகனத்தை இயக்காது. "இந்த உள்ளீடுகளுடன் இந்த கருவியை நான் அழைக்க விரும்புகிறேன்" என்று மாடல் கூறுகிறது. உங்கள் பயன்பாடு (ஒரு சேணம் என்று அழைக்கப்படுகிறது) கருவியை இயக்கி, முடிவை மாதிரிக்கு வழங்குகிறது. இது பாதுகாப்பிற்கு இன்றியமையாதது: மாடல் உங்கள் கணினியை நேரடியாகத் தொடாது; ஒவ்வொரு செயலும் உங்கள் கட்டுப்பாட்டில் உள்ளது.

உதவிக்குறிப்பு: முகவருடன் ஒவ்வொரு பிரச்சனையையும் தீர்க்க முயற்சிக்காதீர்கள். முகவர்; தாமதங்கள், செலவுகள் மற்றும் பிழைகளின் அபாயத்தை அதிகரிக்கிறது. முதலில் கேளுங்கள்: "இது ஒற்றை அழைப்பு அல்லது நிலையான பணிப்பாய்வு மூலம் தீர்க்கப்படுமா?" பதில் ஆம் எனில், முகவர் தேவையில்லை. முகவர் என்பது திறந்தநிலை பணிகளுக்கானது, அங்கு படிகளை முன்கூட்டியே அறிய முடியாது.

கருவி வரையறை: பெயர், விளக்கம், input_schema

மாதிரியில் ஒரு கருவியை அறிமுகப்படுத்த, நீங்கள் மூன்று விஷயங்களைக் கொடுக்கிறீர்கள்:

  • பெயர்: வாகனத்தின் அடையாளம், எ.கா. பெற_வானிலை.
  • விளக்கம்: கருவி என்ன செய்கிறது மற்றும் அதை எப்போது அழைக்க வேண்டும். சரியான நேரத்தில் சரியான கருவியைத் தேர்வுசெய்ய மாதிரியை அனுமதிக்கும் மிக முக்கியமான பகுதி இதுவாகும். "என்ன செய்கிறது" என்பதை மட்டும் எழுதாமல் "எப்போது அழைக்கவும்" என்றும் எழுதுங்கள்.
  • input_schema (input schema): JSON ஸ்கீமா, எந்த அளவுருவை கருவி எதிர்பார்க்கிறது, எந்த வகையைச் சேர்ந்தது என்பதை வரையறுக்கிறது.

# வாகன வரையறை (கருத்து - JSON திட்டம்){ "name": "get_order_status", "description": "ஒரு ஆர்டரின் தற்போதைய ஷிப்பிங் நிலையை மீட்டெடுக்கிறது. பயனர் ஆர்டர் எண் எங்கே அல்லது எப்போது வரும் என்று கேட்கும் போது அழைக்கவும்.", "input_schema": { "type": "object"no:" "properties": "properties:" "ஸ்ட்ரிங்", "விளக்கம்": "ஆர்டர் எண், எ.கா. SP-1024"} }, "தேவை": ["order_no"] }}

ஒரு நல்ல கருவி விளக்கத்திற்கான விதிகள்: தெளிவான மற்றும் சுருக்கமான பெயர், "எப்போது பயன்படுத்த வேண்டும்" என்ற விளக்கம், ஒவ்வொரு அளவுருவிற்கும் விளக்கம், உண்மையிலேயே கட்டாயம் தேவைப்படுவதை வைப்பது. வாகனங்களின் எண்ணிக்கையை கவனம் செலுத்துங்கள்; இதேபோன்ற டஜன் கணக்கான வாகன மாதிரிகள் ஆச்சரியமளிக்கின்றன.

பகுதி

அது என்ன செய்கிறது?

நல்ல உதாரணம்

மோசமான உதாரணம்

பெயர்

வாகன ஐடி

ஒழுங்கு_நிலை_கெடிர்

கொண்டு

விளக்கம்

அது என்ன செய்கிறது + எப்போது அழைக்க வேண்டும்

"சரக்கு நிலையைத் தருகிறது; ஆர்டர் எங்கே என்று பயனர் கேட்கும்போது அழைக்கவும்"

"தரவைப் பெறுகிறது"

உள்ளீடு_திட்டம்

அளவுரு வகை மற்றும் தேவை

{order_no: சரம், சிறுகுறிப்பு}

வரைபடம் இல்லை / விளக்கம் இல்லை

tool_use → tool_result Loop

சுழற்சி இதுபோல் செயல்படுகிறது, படிப்படியாக:

  1. நீங்கள் பயனர் கேள்வி + கருவி விளக்கங்களை மாதிரிக்கு அனுப்புகிறீர்கள்.
  2. மாடல் நேரடியாக பதிலளிக்கிறது அல்லது ஒரு கருவி_பயன்பாட்டுத் தொகுதியை உருவாக்குகிறது: "order_no=SP-1024 உடன் order_durumu_getir ஐ அழைக்கவும்."
  3. உங்கள் பயன்பாடு உண்மையில் கருவியை இயக்குகிறது (தரவுத்தளத்தை வினவுகிறது).
  4. நீங்கள் முடிவை கருவி_முடிவாக மாதிரிக்கு அனுப்புகிறீர்கள்.
  5. இதன் விளைவாக, மாதிரியானது இறுதிப் பதிலை உருவாக்குகிறது அல்லது மற்றொரு கருவியை அழைக்கிறது. "நான் முடித்துவிட்டேன்" என்று மாதிரி சொல்லும் வரை சுழற்சி தொடர்கிறது.

# ஏஜென்ட் லூப் (கருத்து) செய்திகள் = [user_question]while True: response = model.uret(messages, tools=tool_definitions) if response.tur == "tool_use": result = harness.run(response.tool_name, response.entries) # APPLICATION மூலம் செய்திகளை திருப்பி அனுப்பவும் # இறுதி பதில்; வளைய முடிவடைகிறது

நவீன SDKகள் இந்த லூப்பை இயக்கும் டூல் ரன்னர்களை வழங்குகின்றன; நீங்கள் கருவி செயல்பாடுகளை எழுதுங்கள். ஆனால் திரைக்குப் பின்னால் அதுதான் நடக்கிறது.

பிழை மேலாண்மை

கருவிகள் தோல்வியடையலாம்: ஆர்டர் கிடைக்கவில்லை, API நேரம் முடிந்தது, உள்ளீடு தவறானது. நீங்கள் கருவியை இயக்க முடியாவிட்டால், விளக்கமான கருவி_முடிவு ("பிழை: ஆர்டர் எண் SP-9999 காணப்படவில்லை") மற்றும் பிழைக் கொடி போன்ற பிழையை மாதிரிக்கு திருப்பி விடுங்கள். மாடல் இதைப் பார்த்து பயனருக்கு மெதுவாக விளக்கலாம் அல்லது வேறு வழியில் முயற்சிக்கலாம். பிழையை விழுங்காதீர்கள் மற்றும் வெற்று முடிவுகளைத் தர வேண்டாம்; என்ன தவறு நடந்தது என்பது மாதிரி தெரிந்திருக்க வேண்டும்.

பலவீனமான/வலுவான வாகனத்தின் விளக்கம்

பலவீனமான (காலவரையற்ற பெயர்ச்சொல், "எப்போது" இல்லை):

name: "data", description: "fetches data"# மாடலுக்கு எப்போது, எப்படி அழைப்பது என்று தெரியவில்லை; அது ஒன்றும் அழைக்கவில்லை அல்லது தவறாக அழைக்கிறது.

வலுவான (நிகர பெயர் + எப்போது + அளவுரு விளக்கம்):

name: "musteri_bakiyesi_getir"விளக்கம்: "வாடிக்கையாளரின் நடப்புக் கணக்கு இருப்பைத் திருப்பித் தருகிறது. பயனர் டெபிட், கிரெடிட் அல்லது பேலன்ஸ் கேட்கும் போது அழைக்கவும். பணம் செலுத்தாது." input_schema: {custeri_id: string ("வாடிக்கையாளர் ஐடி")}# சரியான அளவுருவை அறிந்து, சரியான நேரத்தில் மாடல் அழைக்கிறது.

மூன்று சிறிய வழக்குகள்

வழக்கு 1 - தேவையற்ற முகவர். ஒரு குழு பல கருவி முகவர் மூலம் "உரையை சுருக்கவும்" வணிகத்தை உருவாக்கியது; ஒவ்வொரு மறுபரிசீலனைக்கும் 4 மாடல் அழைப்புகள் மற்றும் 9 வினாடிகள் ஆகும். வேலை உண்மையில் ஒரு அழைப்பு வேலை. நாங்கள் முகவரை அகற்றி, அதை ஒரே அழைப்பாகக் குறைத்தபோது, ​​நேரம் 1.5 வினாடிகளாகவும், செலவு கால் பகுதியாகவும் குறைந்தது. பாடம்: உண்மையில் தேவைப்படும்போது முகவரைப் பயன்படுத்தவும்.

வழக்கு 2 - பலவீனமான விளக்கம், தவறான அழைப்பு. ஒரு சப்போர்ட் ஏஜெண்டில், பேலன்ஸ் கேள்வி மற்றும் ஷிப்பிங் கேள்வி இரண்டிலும் ஃபெட்ச் எனப்படும் ஒரு தெளிவற்ற கருவி மாதிரியால் தோராயமாக அழைக்கப்பட்டது. வாகனங்களை balance_getir மற்றும் cargo_durumu_getir எனப் பிரித்து, "எப்போது அழைக்கவும்" விளக்கங்கள் சேர்க்கப்பட்டபோது, ​​தவறான வாகனத் தேர்வு 50 உதாரணங்களில் 18ல் இருந்து 1 ஆகக் குறைந்தது.

வழக்கு 3 - பிழை விழுங்கப்பட்டது. ஆர்டர் கிடைக்காதபோது ஒரு ஏஜென்ட் வெற்று முடிவுகளைத் திருப்பிக் கொடுத்தார்; மாடல் இதை "ஆர்டர் டெலிவரி செய்யப்பட்டது" என்று விளக்கி வாடிக்கையாளரை தவறாக வழிநடத்தியது. டூல்_ரிசல்ட் ("ஆர்டர் கிடைக்கவில்லை")க்கு பிழைச் செய்தியை வெளிப்படையாக எழுதினால், "இந்த எண்ணை என்னால் கண்டுபிடிக்க முடியவில்லை, அதைச் சரிபார்க்க முடியுமா?" என்று மாடல் சரியாகச் சொல்கிறது. அவர் சொல்ல ஆரம்பித்தார்.

பொதுவான தவறுகள்

  • எல்லாவற்றையும் ஒரு முகவராக மாற்றுதல்: ஒரு அழைப்பு போதும், ஏஜென்ட் செலவு மற்றும் தாமதத்தை சேர்க்கிறது.
  • தெளிவற்ற வாகன விளக்கம்: மாடல் எப்போது அழைக்க வேண்டும் என்று தெரியவில்லை; தவறாக தேர்ந்தெடுக்கிறது.
  • மாதிரி வாகனம் ஓடுகிறது என்று நினைத்து: சேணம் வாகனத்தை இயக்குகிறது; மாதிரி தான் விரும்புகிறது.
  • பிழையை விழுங்குதல்: என்ன தவறு என்று மாதிரி தெரிய வேண்டும்; பிழையை open tool_result எனக் கொடுங்கள்.
  • பல ஒத்த வாகனங்கள்: மாடல் குழப்பமடைகிறது; கருவித்தொகுப்பை ஒருமுகப்படுத்தவும் குறைவாகவும் வைத்திருங்கள்.
கவனம்: மாடல் "அந்த வாகனத்தை அழைக்கவும்" என்று கூறுவதால் நடவடிக்கை எடுக்க வேண்டும் என்று அர்த்தமல்ல. அழிவுகரமான கருவிகளில் (நீக்கு, செக்அவுட், மின்னஞ்சல்) உங்கள் பயன்பாடு கண்மூடித்தனமாக அழைப்பை இயக்கக்கூடாது - இது அடுத்த யூனிட்டில் பாதுகாப்பு தலைப்பின் மையமாகும்.

சுருக்கமாக

  • முகவர் = மாதிரி (முடிவு) + கருவிகள் (செயல்பாடுகள்) + லூப் (அழைப்பு கருவி, முடிவைப் பெறுங்கள், மீண்டும் முடிவு செய்யுங்கள்).
  • ஒற்றை முறை அழைப்பு ஒரு முகவர் அல்ல; முகவர் ஒரு படிப்படியான செயல்முறை.
  • மாதிரி வாகனம் ஓடவில்லை; உங்கள் பயன்பாடு இயங்குகிறது (ஹார்னெஸ்) மற்றும் முடிவை tool_result ஆக வழங்குகிறது.
  • கருவி பெயர், விளக்கம் (குறிப்பாக "எப்போது அழைப்பு") மற்றும் input_schema மூலம் அடையாளம் காணப்படுகிறது.
  • டூல்_யூஸ் → ஹார்னஸ் ரன்ஸ் → கருவி_முடிவு → மாடல் "முடிந்தது" என்று கூறும் வரை லூப் தொடர்கிறது; பிழைகள் மாதிரிக்கு வெளிப்படையாக தெரிவிக்கப்படுகின்றன.

விண்ணப்ப பணி

உங்கள் சொந்த வணிகத்திலிருந்து 3 கருவிகளை வடிவமைக்கவும், அவை முகவருக்கு வழங்கப்படலாம். (1) பெயர், விளக்கம் "எப்போது அழைக்கவும்", மற்றும் உள்ளீடு_ஸ்கீமாவை ஒவ்வொன்றிற்கும் எழுதவும்; குறைந்தபட்சம் ஒன்று அழிவில்லாத வாசிப்பு கருவியாகவும் மற்றொன்று கணக்கீடுகளாகவும் இருக்கட்டும். (2) ஒரு யதார்த்தமான பயனர் கேள்வியைத் தேர்ந்தெடுத்து, கைமுறையாக படிப்படியாக எழுதவும் (ஒரு சுழற்சியில்) இந்த கருவிகளில் எந்த மாதிரியை எந்த உள்ளீடுகளுடன் அழைக்கும் மற்றும் tool_result வந்த பிறகு அது என்ன செய்யும். (3) கருவிகளில் ஒன்று தோல்வியடையும் சூழ்நிலையை அமைத்து, பிழை செய்தி மாதிரிக்கு எவ்வாறு திரும்பும் என்பதைக் காட்டுகிறது.

சரிபார்ப்பு பட்டியல்

  • [ ] நான் முகவரை "மாடல் + கருவிகள் + லூப்" என வரையறுத்து, அது எப்போது தேவை என்று முடிவு செய்யலாம்.
  • [ ] சேணம் வாகனத்தை இயக்குகிறது என்று எனக்குத் தெரியும், மாடல் அதை விரும்புகிறது.
  • நான் [ ] பெயர், விளக்கம் ("எப்போது அழைக்கவும்") மற்றும் input_schema ஆகியவற்றைக் கொண்டு திடமான வாகன விளக்கத்தை எழுத முடியும்.
  • நான் [ ] tool_use → tool_result சுழற்சியை படிப்படியாக பின்பற்ற முடியும்.
  • [ ] நான் கருவிப் பிழைகளை மாதிரிக்கு திறந்த tool_result எனப் புகாரளிக்கிறேன்.