(இந்த பாடத்தின் வீடியோவை பார்க்க மேலே உள்ள படத்தை கிளிக் செய்யவும்)
கருவிகள் ஆர்வமாக உள்ளன, ஏனெனில் அவை AI முகவர்களுக்கு பரந்த திறன்களை வழங்க அனுமதிக்கின்றன. முகவர் செய்யக்கூடிய செயல்களின் வரம்பு குறைவாக இருக்கக் கூடிய பதிலாக, ஒரு கருவியைச் சேர்ப்பதன் மூலம், முகவர் இப்போது பரந்த வரம்பிலான செயல்களை செய்ய முடியும். இந்த அத்தியாயத்தில், AI முகவர்கள் தங்கள் குறிக்கோள்களை அடைய குறிப்பிட்ட கருவிகளை எப்படி பயன்படுத்தலாம் என்பதை விளக்கும் கருவி பயன்பாட்டு வடிவமைப்பு மாதிரியைப் பார்ப்போம்.
இந்த பாடத்தில், கீழ்க்கண்ட கேள்விகளுக்கு பதில் தர முயல்கிறோம்:
இந்த பாடத்தை முடித்துவிட்ட பிறகு, நீங்கள்:
கருவி பயன்பாட்டு வடிவமைப்பு மாதிரி LLM-களுக்கு குறிப்பிடப்பட்ட குறிக்கோள்களை அடைய வெளியிட்ட கருவிகளுடன் தொடர்பு கொள்ளும் திறனைக் கொடுக்கிறது. கருவிகள் முகவர்களால் செயல்படுத்தக்கூடிய குறியீடுகளாகும். ஒரு கருவி எளிய கணக்குப்பேசி போன்ற செயல்பாடு அல்லது பங்கு விலைத் தேடல் அல்லது காலநிலை முன்னறிவு போன்ற மூன்றாம் பக்க சேவைக்கான API அழைப்பு ஆக இருக்கலாம். AI முகவர்களின்_Context-ல், கருவிகள் மாதிரி உருவாக்கிய செயல்பாட்டு அழைப்புகளுக்குப் பதிலளிக்கக் முகவர்களால் இயக்கப்பட வடிவமைக்கப்பட்டவை.
AI முகவர்கள் சிக்கலான வேலைகளை முடிக்க, தகவல் பெற, அல்லது முடிவுகள் எடுக்க கருவிகளை பயன்படுத்தலாம். கருவி பயன்பாட்டு வடிவமைப்பு மாதிரி பொதுவாக வெளியிட்ட அமைப்புகளோடு, உதாரணமாக தரவுத்தளங்கள், இணைய சேவைகள், அல்லது குறியீடு மொழிபெயர்ப்பாளர்கள் என்பவற்றோடு கூடிய அதிரடி தொடர்பு தேவையான சூழ்நிலைகளில் பயன்படுத்தப்படுகிறது. இது பல்வேறு பயன்பாட்டு வழிகளுக்கு பயனுள்ளதாக இருக்கிறது, அவை:
இந்த கட்டமைப்புகள் AI முகவர்க்கு பரந்த வரம்பிலான பணிகளை செய்ய அனுமதிக்கின்றன. கருவி பயன்பாட்டு வடிவமைப்பு மாதிரியை செயல்படுத்த தேவையான முக்கிய கூறுகள்:
செயல்பாடு/கருவி இலக்கணங்கள்: உள்ள கருவிகளின் விரிவான வரையறைகள், காரியப்பெயர், நோக்கம், தேவையான அளவுருக்கள், மற்றும் எதிர்பார்க்கப்படும் வெளியீடுகள். இத்தகைய இலக்கணங்கள் LLM-க்கு எந்த கருவிகள் கிடைக்கும் மற்றும் சரியான கோரிக்கைகளை எப்படி உருவாக்குவது என்பதை புரிந்துகொள்ள உதவும்.
செயல்பாடு இயக்கச் சட்டம்: பயனர் நோக்கம் மற்றும் உரையாடல்_Context-ை அடிப்படையாகக் கொண்டு கருவிகள் எப்போது மற்றும் எப்படி அழைக்கப்படுவதை வரையறுக்கும். இதன் கீழ் திட்டமிடும் முறைமைகள், வழிசெலுத்தும் இயந்திரங்கள், அல்லது கருத்து நுட்பமான ஓடுகளும் இருக்கலாம்.
செய்தி கையாளும் அமைப்பு: பயனர் உள்ளீடுகள், LLM பதில்கள், கருவி அழைப்புகள் மற்றும் கருவி வெளியீடுகளுக்கு இடையேயான உரையாடல் ஓட்டத்தை நிர்வகிக்கும் கூறுகள்.
கருவி ஒருங்கிணைப்பு கட்டமைப்பு: எளிய செயல்பாடுகளோ அல்லது சிக்கலான வெளிப்புற சேவைகளோ என முகவரை பல்வேறு கருவிகளுடன் இணைக்கும் உள்கட்டமைப்பு.
பிழை கையாளுதல் மற்றும் சரிபார்ப்பு: கருவி செயல்பாட்டில் தோல்விகளை கையாள, அளவுருக்களை சரிபார்க்கவும், எதிர்பாராத பதில்களை நிர்வகிக்கவும் பயன்படும் முறைகள்.
நிலைக் கட்டுப்பாடு: உரையாடல்_Context, முன்னொரு கருவி தொடர்புகள் மற்றும் நிலையான தரவை பின்தொடர்ந்து பன்முக உரையாடல்களில் இணக்கமானதை உறுதி செய்யவும்.
அடுத்து, செயல்பாடு/கருவி அழைப்பைப் பெரிதாகப் பார்ப்போம்.
செயல்பாடு அழைப்பே பெரிய மொழி மாதிரிகள் (LLM) கருவிகளுடன் தொடர்பு கொள்ள அனுமதிக்கும் முதன்மை வழி ஆகும். ‘செயல்பாடு’ மற்றும் ‘கருவி’ என்பது ஒரே பொருளாக பயன்படுத்தப்படுவதைக் நீங்கள் பெரும்பாலும் காண்பீர்கள், ஏனெனில் ‘செயல்பாடுகள்’ (மீண்டும் பயன்படுத்தக்கூடிய குறியீடு தொகுதிகள்) என்பது முகவர்கள் பணிகளை நிறைவேற்ற பயன்படும் ‘கருவிகள்’ ஆகும். ஒரு செயல்பாட்டின் குறியீடு இயக்கப்பட, ஒரு LLM கண்காணிப்பாளர் பயனர் கோரிக்கையை செயல்பாடு விவரணையுடன் ஒப்பிட வேண்டும். இந்த நோக்கத்திற்காக கிடைக்கும் செயல்பாடுகளின் விவரங்களை கொண்ட ஒரு இலக்கணம் LLMக்கு அனுப்பப்படுகிறது. அதன் பின்னர் LLM பணிக்கான சிறந்த செயல்பாட்டை தேர்ந்தெடுத்து அதன் பெயர் மற்றும் அளவுருக்களை திருப்பி அளிக்கும். தேர்ந்தெடுக்கப்பட்ட செயல்பாடு இயக்கப்படுகிறது, பதில் LLMக்கு திருப்பி அனுப்பப்படுகிறது, அது பயன்படுத்து அளிப்பதற்கு பயன்படுத்தப்படுகிறது.
முகவர்களுக்கான செயல்பாடு அழைப்பை உருவாக்க டெவலப்பர்கள் தேவையாக:
நமது எடுத்துக்காட்டு நகரத்தில் தற்போதைய நேரத்தைப் பெறுவதை பார்:
செயல்பாடு அழைப்பை ஆதரிக்கும் LLM ஐ துவக்கவும்:
எல்லா மாடல்களும் செயல்பாடு அழைப்பை ஆதரிப்பதில்லை, ஆகவே நீங்கள் பயன்படுத்தும் LLM அதனை ஆதரிக்கிறதா என்று சரிபார்க்க முக்கியம். Azure OpenAI செயல்பாடு அழைப்பை ஆதரிக்கிறது. நாம் முதலில் Azure OpenAI கிளையன்டை துவங்கலாம்.
# Azure OpenAI கிளையண்டை துவங்குக
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview"
)
செயல்பாடு இலக்கணம் உருவாக்கவும்:
அடுத்தது செயல்பாடு பெயர், அது செய்கின்றது என்ன என்பதற்கான விளக்கம் மற்றும் செயல்பாடு அளவுருக்களின் பெயர்கள் மற்றும் விளக்கங்களை உள்ளடக்கிய JSON இலக்கணம் வரையறுக்க வேண்டும். பின்னர் இந்த இலக்கணத்தையும், பயனர் கோரிக்கையையும் முற்போக்குத் தயாரிக்கப்பட்ட கிளையன்டுக்குக் கடத்திக்கொள்ள வேண்டும், உதாரணமாக சான் பிரான்சிஸ்கோவில் நேரம் காண. முக்கியமாக கவனிக்க வேண்டியது, கருவி அழைப்பு திருப்பி வருகிறது, கேள்விக்கான இறுதி பதில் இல்லை. மேலே கூறியபோல, LLM பணிக்கான தேர்ந்தெடுக்கப்பட்ட செயல்பாட்டு பெயர் மற்றும் அதற்கு அனுப்பப்பட உள்ள அளவுருக்களை அளிக்கிறது.
# மாதிரியை படிக்க செயல்பாட்டின் விளக்கம்
tools = [
{
"type": "function",
"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.chat.completions.create(
model=deployment_name,
messages=messages,
tools=tools,
tool_choice="auto",
)
# மாதிரியின் பதிலை செயலாக்கு
response_message = response.choices[0].message
messages.append(response_message)
print("Model's response:")
print(response_message)
Model's response:
ChatCompletionMessage(content=None, role='assistant', function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='call_pOsKdUlqvdyttYB67MOj434b', function=Function(arguments='{"location":"San Francisco"}', name='get_current_time'), type='function')])
பணியை நிறைவேற்ற தேவையான செயல்பாட்டு குறியீடு:
இப்போது 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"})
# செயல்பாட்டு அழைப்புகளை கையாள்க
if response_message.tool_calls:
for tool_call in response_message.tool_calls:
if tool_call.function.name == "get_current_time":
function_args = json.loads(tool_call.function.arguments)
time_response = get_current_time(
location=function_args.get("location")
)
messages.append({
"tool_call_id": tool_call.id,
"role": "tool",
"name": "get_current_time",
"content": time_response,
})
else:
print("No tool calls were made by the model.")
# இரண்டாவது API அழைப்பு: மாதிரியில் இருந்து இறுதி பதிலைப் பெறுக
final_response = client.chat.completions.create(
model=deployment_name,
messages=messages,
)
return final_response.choices[0].message.content
get_current_time called with location: San Francisco
Timezone found for san francisco
The current time in San Francisco is 09:24 AM.
செயல்பாடு அழைப்பே பெரும்பாலும், எல்லா முகவர் கருவி பயன்பாடு வடிவமைப்புகளின் மையமாக உள்ளது. இருப்பினும் அதை ஆரம்பத்திலிருந்து உருவாக்குவது சிரமமாக இருக்கலாம். பாடம் 2ல் கற்றதுபோல், முகவர் கட்டமைப்புகள் முன்கூட்டியே கட்டுமான உறுப்புகளை வழங்கி கருவி பயன்பாட்டை செயல்படுத்த உதவுகின்றன.
வேறு முகவர் கட்டமைப்புகளைப் பயன்படுத்தி கருவி பயன்பாட்டு வடிவமைப்பு மாதிரியை நீங்கள் எப்படி செயல்படுத்தலாம் என்பதற்கு சில உதாரணங்கள்:
Semantic Kernel என்பது .NET, Python, Java டெவலப்பர்களுக்கான திறந்த மூல AI கட்டமைப்பு ஆகும், LLM-களுடன் வேலை செய்வதில் பயன்படுத்தப்படுகிறது. இது செயல்பாடு அழைப்பை உங்கள் செயல்பாடுகளையும் அதன் அளவுருக்களையும் ஒளிவழியாக எழுதியல் அனுப்பும் முறையை தானாக கையாள்கிறது. மேலும், மாதிரி மற்றும் உங்கள் குறியீட்டின் இடையேயான தொடர்பையும் கையாள்கிறது. Semantic Kernel போன்ற முகவர் கட்டமைப்பைக் பயன்படுத்துவதன் மற்றொரு நன்மை, இது கோப்பு தேடல் மற்றும் கோடு தமிழிபெயர்ப்பாளர் போன்ற முன்கூட்டியே அமைக்கப்பட்ட கருவிகளை அணுக அனுமதிக்கிறது.
என்ற படி, Semantic Kernel-ல் செயல்பாட்டை அழைப்பது எப்படி செயல்படுகிறது என்பதை கீழ்காணும் வரைபடம் விளக்குகிறது:

Semantic Kernel-ல் செயல்பாடுகள்/கருவிகள் Plugins என்று அழைக்கப்படுகின்றன. நாம் முன்னதாகக் கண்ட get_current_time செயல்பாட்டை ஒரு வகுப்பாக மாற்றி, அதில் செயல்பாடாக வைத்து, அதனை ஒரு plugin ஆக மாற்றலாம். kernel_function அழகுபடுத்துபவர் (decorator) மூலம் செயல்பாட்டின் விளக்கத்தையும் சேர்க்கலாம். பின்னர் GetCurrentTimePlugin கொண்டு kernel உருவாக்கும்போது, kernel தானாக செயல்பாட்டையும் அதன் அளவுருக்களையும் ஒளிவழியாக எழுதி, LLMக்கு அனுப்புவதற்கான இலக்கணத்தை உருவாக்கும்.
from semantic_kernel.functions import kernel_function
class GetCurrentTimePlugin:
async def __init__(self, location):
self.location = location
@kernel_function(
description="Get the current time for a given location"
)
def get_current_time(location: str = ""):
...
from semantic_kernel import Kernel
# கர்னல் உருவாக்குக
kernel = Kernel()
# பிளக்இன் உருவாக்குக
get_current_time_plugin = GetCurrentTimePlugin(location)
# பிளக்இனைக் கர்னலுக்கு சேர்
kernel.add_plugin(get_current_time_plugin)
Azure AI Agent Service என்பது புதிதான முகவர் கட்டமைப்பு ஆகும், இது டெவலப்பர்களுக்கு உயர் தரமான, விரிவாக்கத்தக்க AI முகவர்களை பாதுகாப்புடன் கட்ட, நிறுவ மற்றும் பரிணாமப்படுத்த உதவுவதற்காக வடிவமைக்கப்பட்டுள்ளது. அடிப்படை கணினி மற்றும் சேமிப்பு வளங்களை நிர்வகிக்க தேவையில்லை. இது தொழில் பயன்பாடுகளுக்கு சிறப்பாக பொருந்தும், அதுவும் முழுமையாக நிர்வகிக்கப்படும் சேவையாகவும், தொழில் தர பாதுகாப்புடன்.
நேரடியாக LLM API மூலம் வளர்ப்பதைப்போல ஒப்பிட்டால், Azure AI Agent Service பின்வரும் நன்மைகள் உள்ளன:
Azure AI Agent Service-இல் கிடைக்கும் கருவிகள் இரண்டு வகைகளாகப் பிரிக்கப்படுகின்றன:
Agent Service இவை அனைத்தையும் toolset என இணைத்து பயன்படுத்த அனுமதிக்கிறது. அது உரையாடல் குறிப்பிட்ட நெகிழ்வான உரைகளை பதிவு செய்வதற்காக threads ஐ பயன்படுத்துகிறது.
நீங்கள் Contoso என்ற நிறுவனத்தின் விற்பனை முகவர் என்று நினைத்துக் கொள்ளுங்கள். உங்கள் விற்பனை தரவுகளைப் பற்றிய கேள்விகளுக்கு பதில் சொல்லக்கூடிய உரையாடல் முகவர்களை உருவாக்க விரும்புகிறீர்கள்.
பின்வரும் படம் Azure AI Agent Service-ஐப் பயன்படுத்தி உங்கள் விற்பனை தரவுகளைப் பகுப்பாய்வு செய்வதற்கான முறையை விளக்குகிறது:

இந்த சேவையுடன் எந்த கருவியையும் பயன்படுத்த நாம் ஒரு கிளையன்ட் உருவாக்கி, கருவி அல்லது கருவி தொகுப்பைப் பரிந்துரைக்கலாம். கணிப்புப் பொதுவாக பின்வரும் 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 செயல்பாட்டுடன் function calling பிரதிநிதியை தொடக்கி அதை கருவி தொகுப்பில் சேர்த்தல்
fetch_data_function = FunctionTool(fetch_sales_data_using_sqlite_query)
toolset.add(fetch_data_function)
# குறியீட்டு மொழிபெயர்ப்பாளர் கருவியை தொடக்கி அதை கருவி தொகுப்பில் சேர்த்தல்.
code_interpreter = code_interpreter = CodeInterpreterTool()
toolset.add(code_interpreter)
agent = project_client.agents.create_agent(
model="gpt-4o-mini", name="my-agent", instructions="You are helpful agent",
toolset=toolset
)
LLM-களால் அமைக்கப்படும் SQL பற்றிய பொதுவான கவலை இது: பாதுகாப்பு, குறிப்பாக SQL injection அல்லது தீய செயற்பாடுகள் போன்ற(database களை நீக்குவது அல்லது மாற்றுவது போன்ற) அபாயங்கள். இவ்வை கவலைகள் உண்மையானவை என்றாலும், தரவுத்தள அணுகல் அனுமதிகளை சரியான முறையில் கட்டமைப்பதன் மூலம் அவை சிறப்பாக கட்டுப்படுத்தப்படலாம். பெரும்பாலான தரவுத்தளங்களுக்கு, தரவுத்தளத்தை படித்த-only முறையாக கட்டமைப்பது இது சார்ந்தது. PostgreSQL அல்லது Azure SQL போன்ற சேவைகளுக்கு பயன்பாட்டிற்கு படித்த-only (SELECT) பங்கு வழங்கப்பட வேண்டும். secure சூழலில் செயலியை இயக்குதல் பாதுகாப்பை மேலும் உயர்த்துகிறது. நிறுவன சூழல்களில், தரவுகள் பொதுவாக செயல்பாட்டுக் கணினிகளிலிருந்து வெளியே கொண்டு வரப்பட்டு பயனர் நட்பு அமைப்புடன் வாசிக்க மட்டுமே முடியும் என்று தரவுத்தளத்துக்கோ அல்லது தரவுக்குவியலிற்கோ மாற்றப்படும். இந்த அணுகுமுறை தரவை பாதுகாப்பாகக் கொண்டு, செயல்திறன் மற்றும் அணுகல் வசதிக்காக சிறப்பாக அமைக்கவும், செயலிக்கு கட்டுப்படுத்தப்பட்ட வாசிக்க மட்டுமே அணுகல் வழங்கவும் உறுதி செய்கின்றது.
Azure AI Foundry Discord இல் சேர்ந்து மற்ற கற்றlernர்கள், அலுவலக நேரங்களுக்கு கலந்துகொண்டு உங்கள் AI முகவர் கேள்விகளுக்குப் பதிலெடுக்கவும்.
Agentic Design வடிவமைப்புகளை புரிந்து கொள்வது
விளக்கம்:
இந்தக் கட்டுரை AI மொழி மாதிரியாக உள்ள Co-op Translator மூலம் மொழி பெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சித்தாலும், தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக்கூடும் என்பதை தயவுசெய்து கருத்தில் கொள்ளவும். அசல் ஆவணம் அதன் அசல் மொழியில் அதிகாரப்பூர்வ மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்பாட்டிலிருந்து உருவாகும் எந்த புரிதல் தப்புகள் அல்லது தவறான புரிதலுக்கும் நாங்கள் பொறுப்பேற்கமாட்டோம்.