ai-agents-for-beginners

ಉತ್ತಮ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ಹೇಗೆ ವಿನ್ಯಾಸಗೊಳಿಸಬೇಕು

(ಈ ಪಾಠದ ವೀಡಿಯೊವನ್ನು ವೀಕ್ಷಿಸಲು ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ)

ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸವನ್ನು ಪ್ಯಾಟರ್ನ್

ಉಪಕರಣಗಳು ಆಸಕ್ತಿಕರವಾಗಿವೆ ಏಕೆಂದರೆ ಅವು AI ಏಜೆಂಟ್‌ಗಳಿಗೆ ವ್ಯಾಪಕವಾದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನೀಡುತ್ತವೆ. ಏಜೆಂಟ್ ಸೀಮಿತ ಘಟಕಗಳನ್ನು ನಡೆಸುವ ಬದಲು, ಉಪಕರಣ ಸೇರಿಸುವ ಮೂಲಕ ಏಜೆಂಟ್ ಈಗ ವ್ಯಾಪಕ ಕ್ರಿಯೆಗಳನ್ನು ನಡೆಸಬಹುದು. ಈ ಅಧ್ಯಾಯದಲ್ಲಿ, ನಾವು ಟೂಲ್ಗಳನ್ನು ಬಳಸಿ ಗುರಿಗಳನ್ನು ಸಾಧಿಸುವ ವಿಧಾನಗಳನ್ನು ವಿವರಿಸುವ ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ನೋಡಿಕೊಳ್ಳೋಣ.

ಪರಿಚಯ

ಈ ಪಾಠದಲ್ಲಿ, ನಾವು ಕೆಳಗಿನ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದೇವೆ:

ಕಲಿಕಾ ಗುರಿಗಳು

ಈ ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, ನೀವು ಸಾಧ್ಯವಾಗುವುದು:

ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಎಂದರೇನು?

ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ LLMಗಳಿಗೆ ಹೊರಗಿನ ಉಪಕರಣಗಳೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಬಲ್ಲ ಸಾಮರ್ಥ್ಯವನ್ನು ನೀಡುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಉಪಕರಣಗಳು ಏಜೆಂಟ್ ಕಾರ್ಯಾಚರಣೆ ಮಾಡಲು ಚಾಲಿತವಾಗಬಹುದಾದ ಕೋಡ್ ಆಗಿವೆ. ಒಂದು ಉಪಕರಣವು ಲಘು ಕಾರ್ಯವಾಗಿರಬಹುದು, ಹೀಗಾಗಿ ಕ್ಯಾಲ್ಕ್ಯುಲೇಟರ್ ಅಥವಾ ಥರ್ಡ್-ಪಾರ್ಟಿ ಸೇವೆಗಳಿಗೆ API ಕರೆಗಳು (ಸ್ಟಾಕ್ ಬೆಲೆ ಪರಿಶೀಲನೆ ಅಥವಾ ಹವಾಮಾನ ಮುನ್ಸೂಚನೆಗಳಂತಹ). AI ಏಜೆಂಟ್ ಗಳ ಸಂದರ್ಭದಲ್ಲಿ, ಉಪಕರಣಗಳನ್ನು ಮಾಡೆಲ್-ತಯಾರಿಸಿದ ಕಾರ್ಯ ಕಾಲ್‌ಗಳು ಮೂಲಕ ಏಜೆಂಟ್‌ಗಳು ನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.

ಇದನ್ನು ಯಾವ ಬಳಕೆ ಪ್ರಕರಣಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು?

AI ಏಜೆಂಟ್‌ಗಳು ಉಪಕರಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಕೀರ್ಣ ಕಾರ್ಯಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಬಹುದು, ಮಾಹಿತಿ ಪಡೆಯಬಹುದು, ಅಥವಾ ನಿರ್ಧಾರಗಳನ್ನು ಮಾಡಬಹುದು. ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬಾಹ್ಯ ವ್ಯವಸ್ಥೆಗಳಾಗಿ ಡೈನಾಮಿಕ್ ಸಂವಹನ ಅಗತ್ಯವಿರುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ, ಉದಾ: ಡೇಟಾಬೇಸ್, ವೆಬ್ ಸೇವೆಗಳು ಅಥವಾ ಕೋಡ್ ವಿಶ್ಲೇಷಕಗಳು. ಇದು ಕೆಳಗಿನ ಅನೇಕ ಬಳಕೆ ಪ್ರಕರಣಗಳಿಗೆ ಪ್ರಯೋಜನಕಾರಿಯಾಗಿರುತ್ತದೆ:

ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಜಾರಿಗೆ ಅಗತ್ಯವಿರುವ ಅಂಶಗಳು/ನಿರ್ಮಾಣ ಘಟಕಗಳು ಯಾವುವು?

ಈ ನಿರ್ಮಾಣ ಘಟಕಗಳು AI ಏಜೆಂಟ್‌ಗೆ ಅಗತ್ಯವಿರುವ ವಿಸ್ತೃತ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಜಾರಿಗೆ ಅಗತ್ಯವಿರುವ ಪ್ರಮುಖ ಅಂಶಗಳನ್ನು ನೋಡೋಣ:

ಮುಂದಿನ ಭಾಗದಲ್ಲಿ, ಕಾರ್ಯ/ಉಪಕರಣ ಕರೆ ಕುರಿತು ಹೆಚ್ಚಿನ ವಿವರ ನೋಡೋಣ.

ಕಾರ್ಯ/ಉಪಕರಣ ಕರೆ

ಕಾರ್ಯ ಕರೆ ಲಾರ್ಜ್ ಲ್ಯಾಂಗ್ವೇಜ್ ಮಾದರಿಗಳ (LLM) ಉಪಕರಣಗಳೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು ಪ್ರಾಥಮಿಕ ವಿಧಾನವಾಗಿದೆ. ನೀವು ‘ಕಾರ್ಯ’ ಮತ್ತು ‘ಉಪಕರಣ’ ಪದಗಳನ್ನು ಪರಿವರ್ತಿಸುವುದನ್ನು ಕಂಡಿರಬಹುದು ಏಕೆಂದರೆ ‘ಕಾರ್ಯಗಳು’ (ಪುನಃಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೋಡ್ ಬ್ಲಾಕ್‌ಗಳು) ಎಂಬವು ಏಜೆಂಟ್‌ಗಳು ಕಾರ್ಯಗಳನ್ನು ನಿಭಾಯಿಸಲು ಬಳಸುವ ‘ಉಪಕರಣಗಳಾಗಿವೆ’. ಕಾರ್ಯ ಕೋಡ್ ಅನ್ನು ಕರೆ ಮಾಡಲು, LLM ಬಳಕೆದಾರರ ವಿನಂತಿಯನ್ನು ಕಾರ್ಯ ವಿವರಣೆಯ ವಿರುದ್ಧ ಹೋಲಿಸಬೇಕು. ಇದಕ್ಕಾಗಿ ಎಲ್ಲ ಲಭ್ಯವಿರುವ ಕಾರ್ಯಗಳ ವಿವರಣೆಗಳನ್ನು ಒಳಗೊಂಡ schema ಅನ್ನು LLMಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ನಂತರ LLM ಸೂಕ್ತ ಕಾರ್ಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ ಅದರ ಹೆಸರು ಮತ್ತು ಆರ್ಗ್ಯೂಮೆಂಟುಗಳನ್ನು ನೀಡುತ್ತದೆ. ಆಯ್ಕೆಯಾದ ಕಾರ್ಯವನ್ನು ಕರೆಮಾಡಲಾಗುತ್ತದೆ, ಅದರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು LLMಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದು ಅದನ್ನು ಬಳಕೆದಾರರ ವಿನಂತಿಗೆ ಉತ್ತರಿಸಲು ಉಪಯೋಗಿಸುತ್ತದೆ.

ಕಾರ್ಯ ಕರೆ ಜಾರಿಗೆ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಬೇಕಾಗುತ್ತದೆ:

  1. ಕಾರ್ಯ ಕರೆ ಸಪೋರ್ಟ್ ಮಾಡುವ LLM ಮಾದರಿ
  2. ಕಾರ್ಯ ವಿವರಣೆಗಳನ್ನು ಒಳಗೊಂಡ schema
  3. ಪ್ರತಿ ಕಾರ್ಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಕೋಡ್

ನಗರದಲ್ಲಿ ಪ್ರಸ್ತುತ ಸಮಯವನ್ನು ಪಡೆಯುವ ಉದಾಹರಣೆಯನ್ನು ವಿವರಿಸಲು ಬಳಸೋಣ:

  1. ಕಾರ್ಯ ಕರೆ ಬೆಂಬಲಿಸುವ LLM ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ:

    ಎಲ್ಲಾ ಮಾದರಿಗಳು ಕಾರ್ಯ ಕರೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಬಳಸುವ LLM ಬೆಂಬಲಿತವೋ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುವುದು ಮುಖ್ಯ. ಅಜ್ಯೂರ್ ಓಪನ್ ಏಐ ಕಾರ್ಯ ಕರೆ ಬೆಂಬಲಿಸುತ್ತದೆ. ನಾವು OpenAI ಕ್ಲೈಂಟ್ ಅನ್ನು ಅಜ್ಯೂರ್ ಓಪನ್ ಏಐ ಪ್ರತಿಕ್ರಿಯೆಗಳ API ವಿರುದ್ಧ (ಸ್ಥಿರ /openai/v1/ ಎಂಡ್‌ಪಾಯಿಂಟ್ — ಯಾವುದೇ api_version ಅಗತ್ಯವಿಲ್ಲ) ಪ್ರಾರಂಭಿಸಬಹುದು.

     # ಆಜುರ್ ಓಪನ್ಎಐ (Responses API, v1 ಎಂಡ್‌ಪಾಯಿಂಟ್) ಗೆ ಓಪನ್ಎಐ ಕ್ಲೈಂಟ್ ಅನ್ನು ಮೂರು.Initialize ಮಾಡಿ
     client = OpenAI(
         base_url=f"{os.environ['AZURE_OPENAI_ENDPOINT'].rstrip('/')}/openai/v1/",
         api_key=os.environ["AZURE_OPENAI_API_KEY"],
     )
     deployment_name = os.environ["AZURE_OPENAI_DEPLOYMENT"]
    
  2. ಕಾರ್ಯ schema ರಚಿಸಿ:

    ನಂತರ ಕಾರ್ಯದ ಹೆಸರು, ಕಾರ್ಯ ಯಾವುದು ಮಾಡುತ್ತದೆ ಎಂಬ ವಿವರಣೆ, ಕಾರ್ಯ ಪರಿಮಾಣಗಳ ಹೆಸರು ಮತ್ತು ವಿವರಣೆಗಳನ್ನು ಒಳಗೊಂಡ JSON schema ವ್ಯಾಖ್ಯಾನ ಮಾಡೋಣ. ಈ schema ಅನ್ನು ಪೂರ್ವದಲ್ಲಿಯೂ ರಚಿಸಿದ ಕ್ಲೈಂಟ್‌ಗೆ, ಮತ್ತು ಬಳಕೆದಾರರ ‘San Francisco’ ನಲ್ಲಿ ಸಮಯ ಕಂಡುಹಿಡಿಯಲು ಮಾಡಿರುವ ವಿನಂತಿಯೊಂದಿಗೆ ಕಳುಹಿಸುವುದು. ಮುಖ್ಯವಾಗಿ ಗಮನಿಸಬೇಕಾದುದು, ಟೂಲ್ ಕಾಲ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ, ಪ್ರಶ್ನೆಗೆ ಅಂತಿಮ ಉತ್ತರವಲ್ಲ. ಮೇಲ್ಪಟ್ಟಂತೆ, LLM ಆಯ್ಕೆಮಾಡಿದ ಕಾರ್ಯದ ಹೆಸರು ಮತ್ತು ಆರ್ಗ್ಯೂಮೆಂಟುಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ.

     # ಮಾದರಿಯು ಓದುವುದಕ್ಕಾಗಿ ಕಾರ್ಯ ವಿವರಣೆ (ಪ್ರತಿಕ್ರಿಯೆಗಳ API ಫ್ಲಾಟ್ ಟೂಲ್ ಫಾರ್ಮ್ಯಾಟ್)
     tools = [
         {
             "type": "function",
             "name": "get_current_time",
             "description": "Get the current time in a given location",
             "parameters": {
                 "type": "object",
                 "properties": {
                     "location": {
                         "type": "string",
                         "description": "The city name, e.g. San Francisco",
                     },
                 },
                 "required": ["location"],
             },
         }
     ]
    
      
     # ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರ ಸಂದೇಶ
     messages = [{"role": "user", "content": "What's the current time in San Francisco"}]
    
     # ಮೊದಲ API ಕರೆ: ಮಾದರಿಯಿಂದ ಫಂಕ್ಷನ್ ಬಳಕೆಯನ್ನು ಕೇಳಿ
     response = client.responses.create(
         model=deployment_name,
         input=messages,
         tools=tools,
         tool_choice="auto",
         store=False,
     )
    
     # Responses API ಫಂಕ್ಷನ್_ಕಾಲ್ ಐಟಂಗಳಾಗಿ ಟೂಲ್ ಕಾಳ್‌ಗಳನ್ನು response.output ನಲ್ಲಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
     # ಮುಂದಿನ ತಿರುವಿನಲ್ಲಿ ಮಾದರಿಯು ಸಂಪೂರ್ಣ ಪ್ರಚ್ಛೇದವನ್ನು ಹೊಂದಲು ಅವುಗಳನ್ನು ಸಂಭಾಷಣೆಗೆ ಸೇರಿಸಿ.
     messages += response.output
    
     print("Model's response:")
     print(response.output)
      
    
     Model's response:
     [ResponseFunctionToolCall(arguments='{"location":"San Francisco"}', call_id='call_pOsKdUlqvdyttYB67MOj434b', name='get_current_time', type='function_call')]
    
  3. ಕಾರ್ಯ ಕೋಡ್ ಕಾರ್ಯಾಚರಣೆಗಾಗಿ:

    ಈಗ LLM ಆಯ್ಕೆ ಮಾಡಿದ ಕಾರ್ಯ ಕಾರ್ಯಗತಗೊಳ್ಳಬೇಕಾಗಿದ್ದರಿಂದ, ಅದನ್ನು ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಿ ಚಾಲನೆ ಮಾಡಬೇಕು. ನಾವು Pythonನಲ್ಲಿ ಪ್ರಸ್ತುತ ಸಮಯ ಪಡೆಯುವ ಕೋಡ್ ಜಾರಿಗೆ ತರಬಹುದು. ಅಂತಿಮ ಫಲಿತಾಂಶ ಪಡೆಯಲು ಪ್ರತಿಕ್ರಿಯೆ_ಸಂದೇಶದಿಂದ ಹೆಸರು ಮತ್ತು ಆರ್ಗ್ಯೂಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಕೋಡ್ ಕೂಡ ಬರೆಯಬೇಕು.

       def get_current_time(location):
         """Get the current time for a given location"""
         print(f"get_current_time called with location: {location}")  
         location_lower = location.lower()
            
         for key, timezone in TIMEZONE_DATA.items():
             if key in location_lower:
                 print(f"Timezone found for {key}")  
                 current_time = datetime.now(ZoneInfo(timezone)).strftime("%I:%M %p")
                 return json.dumps({
                     "location": location,
                     "current_time": current_time
                 })
          
         print(f"No timezone data found for {location_lower}")  
         return json.dumps({"location": location, "current_time": "unknown"})
    
     # ಫังก್ಷನ್ ಕರೆಗೆ ಹ್ಯಾಂಡಲ್ ಮಾಡಿ
     tool_calls = [item for item in response.output if item.type == "function_call"]
     if tool_calls:
         for tool_call in tool_calls:
             if tool_call.name == "get_current_time":
    
                 function_args = json.loads(tool_call.arguments)
    
                 time_response = get_current_time(
                     location=function_args.get("location")
                 )
    
                 # ಟೂಲ್ ಫಲಿತಾಂಶವನ್ನು function_call_output ಐಟಮ್ ретінде ಹಿಂತಿರುಗಿಸಿ
                 messages.append({
                     "type": "function_call_output",
                     "call_id": tool_call.call_id,
                     "output": time_response,
                 })
     else:
         print("No tool calls were made by the model.")
    
     # ಎರಡನೇ API ಕರೆ: ಮಾದರಿಯಿಂದ ಅಂತಿಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆಯಿರಿ
     final_response = client.responses.create(
         model=deployment_name,
         input=messages,
         tools=tools,
         store=False,
     )
    
     return final_response.output_text
    
       get_current_time called with location: San Francisco
       Timezone found for san francisco
       The current time in San Francisco is 09:24 AM.
    

ಕಾರ್ಯ ಕರೆ ಬಹುತೇಕ ಏಜೆಂಟ್ ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸದ ಹೃದಯವಾಗಿದೆ, ಆದರೆ ಅದನ್ನು ಪ್ರಾರಂಭದಿಂದ ಜಾರಿಗೊಳಿಸುವುದು ಕೆಲವೊಮ್ಮೆ ಸವಾಲಾಗಬಹುದು. ನಾವು ಪಾಠ 2 ನಲ್ಲಿ ಕಲಿತಂತೆ ಏಜೆಂಟ್ ಚಟುವಟಿಕೆ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು ಉಪಕರಣ ಬಳಕೆಗೆ ಪೂರ್ವನಿರ್ಮಿತ ಘಟಕಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ.

ಏಜೆಂಟ್ ಚಟುವಟಿಕೆ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳೊಂದಿಗೆ ಉಪಕರಣ ಬಳಕೆ ಉದಾಹರಣೆಗಳು

ಬಾಹ್ಯ ಏಜೆಂಟ್ ಚಟುವಟಿಕೆ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಜಾರಿಗೆ ತರಬಹುದಾದ ಕೆಲವು ಉದಾಹರಣೆಗಳು:

Microsoft ಏಜೆಂಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್

Microsoft ಏಜೆಂಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ತೆರವುಮುಖ AI ಫ್ರೇಮ್‌ವರ್ಕ್ ಆಗಿದೆ. ಇದು ಕಾರ್ಯ ಕರೆದುವಿಕೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ ಮತ್ತು Python ಕಾರ್ಯಗಳನ್ನಾಗಿ ಉಪಕರಣವನ್ನು @tool ಅಲಂಕಾರದಿಂದ ಪ್ರತಿಪಾದಿಸುತ್ತದೆ. ಫ್ರೇಮ್‌ವರ್ಕ್ ಮಾದರಿ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ನಡುವೆ ಸಂವಹನ ನಿರ್ವಹಿಸುವುದನ್ನು ಕೈಗೊಂಡಿದೆ. ಇದು File Search ಮತ್ತು Code Interpreter ರೀತಿ ಪೂರ್ವ ನಿರ್ಮಿತ ಉಪಕರಣಗಳಿಗೂ FoundryChatClient ಮೂಲಕ ಪ್ರವೇಶ ನೀಡುತ್ತದೆ.

ಕೆಳಗಿನ ಚಿತ್ರ Microsoft ಏಜೆಂಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್ ಜೊತೆಗೆ ಕಾರ್ಯ ಕರೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ:

function calling

Microsoft ಏಜೆಂಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ನಲ್ಲಿ, ಉಪಕರಣಗಳನ್ನು ಅಲಂಕರಿತ ಕಾರ್ಯಗಳಾಗಿ ವ್ಯವಹರಿಸಲ್ಪಡುತ್ತವೆ. ನಾವು ಮುಂದು ಹೇಳಿದ get_current_time ಕಾರ್ಯವನ್ನು ಉಪಕರಣವಾಗಿಸಲು @tool ಅಲಂಕಾರವನ್ನು ಬಳಸಿ ಪರಿವರ್ತಿಸಬಹುದು. ಫ್ರೇಮ್‌ವರ್ಕ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯ ಹಾಗೂ ಅದರ ಪರಿಮಾಣಗಳನ್ನು ಸರಣೀಕರಿಸಿ LLMಗೆ schema ರಚಿಸುತ್ತದೆ.

import os
from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

@tool(approval_mode="never_require")
def get_current_time(location: str) -> str:
    """Get the current time for a given location"""
    ...

# ಕ್ಲೈಂಟ್ ಅನ್ನು ರಚಿಸಿ
provider = FoundryChatClient(
    project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
    credential=AzureCliCredential(),
)

# ಏಜೆಂಟ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು ಟೂಲ್‌ನೊಂದಿಗೆ ಚಲಾಯಿಸಿ
agent = provider.as_agent(name="TimeAgent", instructions="Use available tools to answer questions.", tools=get_current_time)
response = await agent.run("What time is it?")

Microsoft Foundry ಏಜೆಂಟ್ ಸೇವೆ

Microsoft Foundry ಏಜೆಂಟ್ ಸೇವೆ ಅಭಿವೃದ್ಧಿಪಡಕರಿಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಉನ್ನತ ಗುಣಮಟ್ಟದ, ವ್ಯಾಪಕ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಣೆ ಹಾಗೂ ವಿಸ್ತಾರಗೊಳಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಿದ ಹೊಸ ಏಜೆಂಟ್ ಚಟುವಟಿಕೆಯ ಫ್ರೇಮ್‌ವರ್ಕ್. ಇದು ಮೂಲ ಕಂಪ್ಯೂಟ್ ಮತ್ತು ಸಂಗ್ರಹಣಾ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿರ್ವಹಿಸದೆ ಮಾಡಲಾಗುತ್ತದೆ. ಇದು ಉದ್ಯಮ ಅನ್ವಯಗಳಿಗೆ ವಿಶೇಷ ಉಪಯುಕ್ತ, ಸಂಪೂರ್ಣ ನಿರ್ವಹಿತ ಸೇವೆ ಮತ್ತು ಉದ್ಯಮ ಮಟ್ಟದ ಭದ್ರತೆ ಒದಗಿಸುತ್ತದೆ.

LLM API ನೇರವಾಗಿ ಅಭಿವೃದ್ಧಿಗೊಳಿಸುವಿಕೆಯಿಂದ ಹೋಲಿಸಿದರೆ, Microsoft Foundry ಏಜೆಂಟ್ ಸೇವೆ ಕೆಲವು ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ, ಅವುಗಳೆಂದರೆ:

Microsoft Foundry ಏಜೆಂಟ್ ಸೇವೆಯ ಉಪಕರಣಗಳನ್ನು ಎರಡು ವರ್ಗಗಳಿಗೆ ವಿಭಜಿಸಬಹುದು:

  1. ಜ್ಞಾನ ಉಪಕರಣಗಳು:
  2. ಕಾರ್ಯ ಉಪಕರಣಗಳು:

ಏಜೆಂಟ್ ಸೇವೆಯು ಈ ಉಪಕರಣಗಳನ್ನು toolset ಆಗಿ ಬಳಕೆ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಸಂಭಾಷಣೆಯ ಸಂದೇಶಗಳ ಇತಿಹಾಸವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ threads ಅನ್ನು ಸಹ ಉಪಯೋಗಿಸುತ್ತದೆ.

Contoso ಎಂಬ ಕಂಪನಿಯ ಸೆಲ್ಸ್ ಏಜೆಂಟ್ ನೀವು ಇರುತ್ತೀರಂತೆ ಕಲ್ಪಿಸಿ. ನೀವು ನಿಮ್ಮ ಮಾರಾಟ ಡೇಟಾ ಕುರಿತು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸುವ ಸಂಭಾಷಣಾ ಏಜೆಂಟ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಬಯಸುತ್ತೀರಿ.

ಕೆಳಗಿನ ಚಿತ್ರ Microsoft Foundry ಏಜೆಂಟ್ ಸೇವೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸೆಲ್ಸ್ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುವ ವಿಧಾನವನ್ನು ತೋರಿಸುತ್ತದೆ:

Agentic Service In Action

ಸೇವೆಯೊಂದಿಗೆ ಯಾವುದೇ ಉಪಕರಣವನ್ನು ಬಳಸಲು ನಾವು ಕ್ಲೈಂಟ್ ಸೃಷ್ಟಿಸಿ ಉಪಕರಣ ಅಥವಾ ಉಪಕರಣಸಂಪುಟವನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕೆಳಗಿನ Python ಕೋಡ್ ಬಳಸಿ. LLM ಉಪಕರಣಸಂಪುಟವನ್ನು ನೋಡಿ ಬಳಕೆದಾರರ ವಿನಂತಿ ಆಧಾರವಾಗಿ ಬಳಕೆದಾರ ಸೃಷ್ಟಿಸಿದ ಕಾರ್ಯವನ್ನು fetch_sales_data_using_sqlite_query ಅಥವಾ ಪೂರ್ವ-ನಿರ್ಮಿತ ಕೋಡ್ ಇಂಟರ್ಪ್ರೆಟರ್ ಅನ್ನು ಆರಿಸುತ್ತದೆ.

import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from fetch_sales_data_functions import fetch_sales_data_using_sqlite_query # fetch_sales_data_using_sqlite_query ಫಂಕ್ಷನ್ ಅನ್ನು fetch_sales_data_functions.py ಫೈಲಿನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು.
from azure.ai.projects.models import ToolSet, FunctionTool, CodeInterpreterTool

project_client = AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(),
    conn_str=os.environ["PROJECT_CONNECTION_STRING"],
)

# ಸಾಧನ ಸેટ್ ಪ್ರಾರಂಭಿಸಿ
toolset = ToolSet()

# fetch_sales_data_using_sqlite_query ಫಂಕ್ಷನ್ ಅನ್ನು ಫಂಕ್ಷನ್ ಕರೆ ಏಜೆಂಟ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಅದನ್ನು ಸಾಧನ ಸೆಟ್ಗೆ ಸೇರಿಸಿ
fetch_data_function = FunctionTool(fetch_sales_data_using_sqlite_query)
toolset.add(fetch_data_function)

# ಕೋಡ್ ಪ್ರಕಟಕಾರ ಸಾಧನವನ್ನು ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಅದನ್ನು ಸಾಧನ ಸೆಟ್ಗೆ ಸೇರಿಸಿ.
code_interpreter = CodeInterpreterTool()toolset.add(code_interpreter)

agent = project_client.agents.create_agent(
    model="gpt-5-mini", name="my-agent", instructions="You are helpful agent", 
    toolset=toolset
)

ನಂಬಿಕೆಯಾರ್ಹ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್ ಬಳಕೆಯ ವಿಶೇಷ ಪರಿಗಣನೆಗಳು ಯಾವುವು?

LLMಗಳಿಂದ ಡೈನಾಮಿಕ್ ಆಗ ನಿರ್ಮಾಣವಾಗುವ SQL ಬದಲಾಗಿ ಸಾಮಾನ್ಯ ಚಿಂತನೆ ಭದ್ರತೆ, ವಿಶೇಷವಾಗಿ SQL ಇಂಜೆಕ್ಷನ್ ಅಥವಾ ದುಷ್ಟ ಕ್ರಿಯೆಗಳ ಅಪಾಯ, ಉದಾ: ಡೇಟಾಬೇಸ್ ನಾಶ ಮಾಡುವುದು ಅಥವಾ ತಿದ್ದುವಿಕೆ. ಈ ಚಿಂತನೆಗಳಿಗೆ ಸಮಾಧಾನ ನೀಡಲು ಡೇಟಾಬೇಸ್ ಪ್ರವೇಶ ಅನುಮತಿಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ. ಬಹುತೇಕ ಡೇಟಾಬೇಸ್‌ಗಳಿಗಾಗಿ ಇದು ಡೇಟಾಬೇಸ್ಗೆ ಓದಲು ಮಾತ್ರ ಅನುಮತಿಯನ್ನು ಹೊಂದಿಸುವುದಾಗಿದೆ. PostgreSQL ಅಥವಾ Azure SQL ಸೇವೆಗಳಂತಹ ಡೇಟಾಬೇಸ್‌ಗಳಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಓದಲು ಮಾತ್ರ ವಹಿವಾಟಿನ (SELECT) ಪಾತ್ರ ನೀಡಲಾಗುತ್ತದೆ.

ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸುರಕ್ಷಿತ ಪರಿಸರದಲ್ಲಿ ನಡೆಸುವುದರಿಂದ ರಕ್ಷಣೆ ಹೆಚ್ಚಾಗುತ್ತದೆ. ಉದ್ಯಮ ಖಚಿತತೆಗಳಲ್ಲಿ, ಡೇಟಾ ಸಾಮಾನ್ಯವಾಗಿ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಂದ ಹೊರಹಾಕಿ ಓದಿ-ಮಾತ್ರ ಡೇಟಾಬೇಸ್ ಅಥವಾ ಡೇಟಾ ಗೋದಾಮಿಗೆ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನ ಡೇಟಾಗೆ ಭದ್ರತೆ, ಕಾರ್ಯಕ್ಷಮತೆ ಹಾಗೂ ಪ್ರವೇಶ ಸುಲಭತೆ ನಿಶ್ಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ನಿಯಂತ್ರಿತ ಓದುವ ಪ್ರವೇಶವಿದೆ.

ಉದಾಹರಣಾ ಕೋಡ್‌ಗಳು

ಉಪಕರಣ ಬಳಕೆ ವಿನ್ಯಾಸ ಪ್ಯಾಟರ್ನ್‌ಗಳ ಕುರಿತು ಮತ್ತಷ್ಟು ಪ್ರಶ್ನೆಗಳಿದೆಯೇ?

Microsoft Foundry Discord ಗೆ ಸೇರಿ, ಇತರ ಕಲಿಯುವವರನ್ನು ಭೇಟಿಯಾಗಿ, ಆಫೀಸ್ ಗಂಟೆಗಳಲ್ಲಿ ಪಾಲ್ಗೊಳ್ಳಿ ಮತ್ತು ನಿಮ್ಮ AI ಏಜೆಂಟ್ ಪ್ರಶ್ನೆಗಳು ಉತ್ತರ ಪಡೆಯಿರಿ.

ಮತ್ತಷ್ಟು ಸಂಪನ್ಮೂಲಗಳು

ಈ ಏಜೆಂಟ್‌ನ ಸ್ಮೋಕ್ಟೆಸ್ಟಿಂಗ್ (ऐच्छಿಕ)

ನೀವು ಪಾಠ 16 ರಲ್ಲಿ ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿಯೋಜಿಸಲು ಕಲಿತ ಮೇಲೆ, ನೀವು ಈ ಪಾಠದ TravelToolAgent ಅನ್ನು ಸ್ಮೋಕ್ಟೆಸ್ಟ್ ಮಾಡಬಹುದು (ಇದು ಇನ್ನೂ ತನ್ನ ಉಪಕರಣಗಳನ್ನು ಕರೆದದೆ ಮತ್ತು ಉತ್ತರ ನೀಡುತ್ತದೆಯೇ?) ಇದಕ್ಕಾಗಿ tests/lesson-04-smoke-tests.json ಅನ್ನು ಬಳಸಬಹುದು. ಇದನ್ನು ಹೇಗೆ ಚಾಲನೆ ಮಾಡುವುದು ಎಂಬುದನ್ನು ನೋಡಲು tests/README.md ನೋಡಿ.

ಹಿಂದಿನ ಪಾಠ

ಎಜೆಂಟಿಕ್ ವಿನ್ಯಾಸ ಮಾದರಿಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಮುಂದಿನ ಪಾಠ

ಎಜೆಂಟಿಕ್ RAG


ಅಸ್ವೀಕಾರ: ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ Co-op Translator ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಡ್ಡೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜು ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವ ಮೂಲಕ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳ ಬಗ್ಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.