Skip to content

Latest commit

 

History

History
381 lines (245 loc) · 45.9 KB

File metadata and controls

381 lines (245 loc) · 45.9 KB

మాడ్యూల్ 04: టూల్స్‌తో AI ఏజెంట్లు

విషయ సూచిక

మీరు నేర్చుకునేది ఏమిటి

ఇప్పటి వరకు, మీరు AIతో సంభాషణలు ఎలా జరుపుకోవాలో, పురోగతులను సక్రమంగా ఎలా సెట్ చేసుకోవాలో, మీ డాక్యుమెంట్లలో ప్రతిస్పందనలను ఎలా ఆధారపెట్టుకోవాలో నేర్చుకున్నారు. కానీ ఇంతకు మించి ఒక ప్రాథమిక పరిమితి ఉంది: భాషా మోడళ్ళు కేవలం వచనం ఉత్పత్తి చేస్తాయి. అవి వాతావరణం చూసేందుకు, లెక్కింపులు చేయడానికి, డేటాబేసులను విచారణ చేయడానికి లేదా బాహ్య వ్యవస్థలతో పని చేసేందుకు వీలలేదు.

టూల్స్ ఈ పరిస్థితే మార్చేస్తాయి. మోడల్‌కు కాల్ చేయగల ఫంక్షన్లకు యాక్సెస్ ఇచ్చినప్పుడు, ఇది వచనం జనరేటర్ నుండి చర్యలు తీసే ఏజెంట్‌గా మారుతుంది. మోడల్ ఎప్పుడుతె కావాలి, ఏ టూల్ ఉపయోగించాలో, ఏ పారా మీటర్లు ఇవ్వాలో నిర్ణయిస్తుంది. మీ కోడ్ ఫంక్షన్‌ను అమలు చేసి ఫలితాన్ని తిరిగి ఇస్తుంది. మోడల్ ఆ ఫలితాన్ని తన ప్రతిస్పందనలో చేర్చుకుంటుంది.

ముందస్తు జ్ఞానం

  • పూర్తయింది మాడ్యూల్ 01 - పరిచయం (Azure OpenAI వనరులు వ్యవస్థాపించబడినవి)
  • ముందటి మాడ్యూల్స్ పూర్తయినవి సిఫార్సు చేయబడింది (ఈ మాడ్యూల్ మాడ్యూల్ 03 నుండి RAG భావనలు టూల్స్ vs RAG పోలికలో సూచిస్తుంది)
  • రూట్ డైరెక్టరీలో .env ఫైల్ Azure ప్రమాణపత్రాలతో (మాడ్యూల్ 01లో azd up ద్వారా సృష్టించబడింది)

గమనిక: మీరు మాడ్యూల్ 01 పూర్తి చేయనట్లైతే, ముందుగా అక్కడి డిప్లాయ్‌మెంట్ సూచనలను అనుసరించండి.

టూల్స్‌తో AI ఏజెంట్లను అర్థం చేసుకోవడం

📝 గమనిక: ఈ మాడ్యూల్‌లో "ఏజెంట్లు" అంటే టూల్-కాలింగ్ సామర్థ్యంతో మెరుగుపర్చబడిన AI సహాయకులను సూచిస్తాయి. ఇది మాడ్యూల్ 05: MCPలో చర్చించే Agentic AI ప్యాటర్న్స్ (ప్లానింగ్, మెమరీ, బహుళ-దశ కారణాలవతరణతో స్వతంత్ర ఏజెంట్లు) నుండి వేరు.

టూల్స్ లేకుండా, భాషా మోడల్ కేవలం తన శిక్షణ డేటాలోనుండి వచనం ఉత్పత్తి చేయగలదు. ప్రస్తుత వాతావరణం అడగండి అంటే, అది ఊహించాల్సి ఉంటుంది. టూల్స్ ఇవ్వండి అంటే, అది వాతావరణ APIని కాల్ చేయగలదు, లెక్కింపు చేయగలదు లేదా డేటాబేస్‌ను విచారించగలదు — ఆ నిజమైన ఫలితాలను తన ప్రతిస్పందనలో చేర్చుతుంది.

Without Tools vs With Tools

టూల్స్ లేకపోతే మోడల్ ఊహించాల్సి ఉంటుంది — టూల్స్‌తో అది APIలు కాల్ చేసి, లెక్కచేసి, వాస్తవ సమయ డేటాను అందించగలదు.

టూల్స్ ఉన్న AI ఏజెంట్ ఒక కారణం మరియు చర్య (ReAct) ప్యాటర్న్‌ని అనుసరిస్తుంది. మోడల్ కేవలం ప్రతిస్పందించదు — అది ఏమి కావాలో ఆలోచిస్తుంది, టూల్‌ను కాల్ చేసి చర్య తీస్తుంది, ఫలితాన్ని పరిశీలిస్తుంది, ఇంకా చర్య తీసుకోవాలా లేక తుది జవాబుని ఇవ్వాలా అనేది నిర్ణయిస్తుంది:

  1. కారణం — ఏజెంట్ వినియోగదారుడి ప్రశ్నను విశ్లేషించి ఏ సమాచారం కావాలో నిర్ణయిస్తుంది
  2. చర్య — సరైన టూల్‌ను ఎంచుకుని, సరైన పామీటర్లను సృష్టించి, దానిని కాల్ చేస్తుంది
  3. పరిశీలన — టూల్ అవుట్పుట్‌ను పొందుతూ ఫలితాన్ని అంచనా వేస్తుంది
  4. మళ్లీ లేదా ప్రతిస్పందన — ఎక్కువ డేటా కావాలంటే లూప్‌లోకి వెళ్తుంది; లేదంటే సహజ భాష జవాబు తయారు చేస్తుంది

ReAct Pattern

ReAct చక్రం — ఏజెంట్ ఏమి చేయాలో ఆలోచిస్తుంది, టూల్‌ను కాల్ చేస్తుంది, ఫలితం పర్యవేక్షిస్తుంది, మరియు తుది జవాబును ఇవ్వేవరకు లూప్ చేస్తుంది.

ఇది ఆటోమేటిక్‌గా జరుగుతుంది. మీరు టూల్స్ మరియు వాటి వివరాలను నిర్వచిస్తారు. మోడల్ ఎప్పుడెప్పుడు, ఎలా వాటిని ఉపయోగించాలో నిర్ణయిస్తదు.

టూల్ కాలింగ్ ఎలా పని చేస్తుంది

టూల్ నిర్వచనాలు

WeatherTool.java | TemperatureTool.java

మీరు స్పష్టమైన వివరాలు మరియు పామీటర్ స్పెసిఫికేషన్లతో ఫంక్షన్లను నిర్వచిస్తారు. మోడల్ ఈ వివరాలను తన సిస్టమ్ ప్రాంప్ట్‌లో చూసి ఏ టూల్ ఏ పని చేస్తుందో అర్థం చేసుకుంటుంది.

@Component
public class WeatherTool {
    
    @Tool("Get the current weather for a location")
    public String getCurrentWeather(@P("Location name") String location) {
        // మీ వాతావరణ లుకప్ లాజిక్
        return "Weather in " + location + ": 22°C, cloudy";
    }
}

@AiService
public interface Assistant {
    String chat(@MemoryId String sessionId, @UserMessage String message);
}

// Spring Boot ద్వారా సాయం ఆటోమేటిక్‌గా వైర్డ్ అయింది:
// - ChatModel బీన్
// - @Component తరగతుల నుండి అన్ని @Tool పద్ధతులు
// - సెషన్ నిర్వహణ కోసం ChatMemoryProvider

క్రింది డయాగ్రామ్ ప్రతి అనోటేషన్‌ను విడగొట్టి AIకు ఎప్పుడు టూల్‌ను కాల్ చేయాలో, ఏ Arguments ఇవ్వాలో ఎలా సహాయపడుతుందో చూపిస్తుంది:

Anatomy of Tool Definitions

టూల్ నిర్వచన నిర్మాణం — @Tool AIకి ఎప్పుడు ఉపయోగించాలో చెప్పుతుంది, @P ప్రతి పామీటర్ వివరిస్తుంది, @AiService స్టార్టప్పులో వాటిని కలపుతుంది.

🤖 GitHub Copilot చాట్‌తో ప్రయత్నించండి: WeatherTool.java తెరిచి అడగండి:

  • "Mock డేటా కాకుండా నిజమైన వాతావరణ API OpenWeatherMapను ఎలా అనుసరించాలి?"
  • "ఏమి మంచి టూల్ వివరణ కావాలి, ఇది AIకి సరైన ఉపయోగం ఆసాధ్యం చేస్తుంది?"
  • "API లోపాలు మరియు రేటు పరిమితులని టూల్ ఇంప్లిమెంటేషన్లలో ఎలా నిర్వహించాలి?"

నిర్ణయ తీసుకోవడం

వినియోగదారు "సియాటిల్‌లో వాతావరణం ఏమిటి?" అడుగుతే, మోడల్ యాదృచ్ఛికంగా టూల్ ఎంచుకోవడం కాదు. అది వినియోగదారు ఉద్దేశాన్ని అందుబాటులో ఉన్న ప్రతీ టూల్ వివరణతో పోల్చి, ప్రాముఖ్యత స్కోరింగ్ చేసి ఉత్తమని ఎంచుకుంటుంది. ఆ తరువాత సరైన పామీటర్లతో, ఉదాహరణకు locationను "Seattle"గా సెట్ చేసి, నిర్మితమైన ఫంక్షన్ కాల్‌ను సృష్టిస్తుంది.

వినియోగదారు అభ్యర్థనకు ఏ టూల్ సరిపోకపోతే, మోడల్ తన జ్ఞానంతో జవాబు ఇస్తుంది. ఒకటి కాకుండా పలు టూల్స్ సరిపోతే, అత్యంత నిర్దిష్టాన్ని ఎంచుకుంటుంది.

How the AI Decides Which Tool to Use

మోడల్ వినియోగదారు ఉద్దేశంతో అందుబాటులో ఉన్న ప్రతీ టూల్‌ను అంచనా వేసి ఉత్తమాన్ని ఎంచుకుంటుంది — అందుకే స్ఫటిక వివరణలు టూల్ వివరాలు రాయడం ముఖ్యమైంది.

ఎగ్జిక్యూషన్

AgentService.java

స్ప్రింగ్ బూట్ ప్రకటనాత్మక @AiService ఇంటర్ఫేస్‌ను అన్ని రిజిస్టర్డ్ టూల్‌లతో ఆటో-వైర్డ్ చేస్తుంది, మరియు LangChain4j టూల్ కాల్ల్స్‌ను ఆటోమేటిక్‌గా అమలు చేస్తుంది. వెనుకన దీనికి ఆరు దశలుగా సమగ్ర టూల్ కాల్స్ ప్రవహిస్తాయి — వినియోగదారు యొక్క సహజ భాషా ప్రశ్న నుండి సహజ భాష జవాబుకు:

Tool Calling Flow

ముగింపు-ముగింపు ప్రవాహం — వినియోగదారు ప్రశ్న అడుగుతుంది, మోడల్ టూల్ ఎంచుకుంటుంది, LangChain4j టూల్‌ను అమలుచేస్తుంది మరియు ఫలితాన్ని సహజ ప్రతిస్పందనలో కలుపుతుంది.

మీరు ToolIntegrationDemo ను మాడ్యూల్ 00లో నడిపించినట్లయితే, ఈ ప్యాటర్న్ పేరు చర్యలో చూసారు — Calculator టూల్స్ అదే విధంగా కాల్ చేయబడ్డాయి. ఈ క్రింది సీక్వెన్స్ డయాగ్రామ్ ఆ డెమోలో యంత్రం క్రింద జరిగిందని స్పష్టంగా చూపిస్తుంది:

Tool Calling Sequence Diagram

క్విక్ స్టార్ట్ డెమో నుండి టూల్ కాలింగ్ లూప్ — AiServices మీ సందేశం మరియు టూల్ స్కీమాలు LLMకి పంపుతుంది, LLM add(42, 58) వంటి ఫంక్షన్ కాల్‌తో జవాబు ఇస్తుంది, LangChain4j లోకల్‌గా Calculator విధానాన్ని అమలు చేస్తుంది మరియు ఫలితాన్ని తుది జవాబుకు తిరిగి పోతుంది.

🤖 GitHub Copilot చాట్‌తో ప్రయత్నించండి: AgentService.java తెరిచి అడగండి:

  • "ReAct ప్యాటర్న్ ఎలా పని చేస్తుంది మరియు AI ఏజెంట్లకొరకు ఇది ఎందుకు సమర్ధవంతం?"
  • "ఏజెంట్ ఏ టూల్ ఎప్పుడు మరియు ఏ క్రమంలో ఉపయోగించాలో ఎలా నిర్ణయిస్తుంది?"
  • "ఒక టూల్ అమలు విఫలమైతే ఏమవుతుంది - లోపాలు బాగా హ్యాండిల్ చేయడం ఎలా?"

ప్రతిస్పందన ఉత్పత్తి

మోడల్ వాతావరణ డేటాను అందుకొని వినియోగదారుకు సహజ భాషలో ప్రతిస్పందన రూపొందిస్తుంది.

ఆర్కిటెక్చర్: స్ప్రింగ్ బూట్ ఆటో-వైరింగ్

ఈ మాడ్యూల్ LangChain4j యొక్క స్ప్రింగ్ బూట్ ఇంటిగ్రేషన్‌ను, ప్రకటనాత్మక @AiService ఇంటర్ఫేస్‌లతో ఉపయోగిస్తుంది. ప్రారంభ సమయంలో స్ప్రింగ్ బూట్ ప్రతి @Componentలో @Tool విధానాలు ఉన్నవి, మీ ChatModel బీను, ముందు ChatMemoryProviderని కనుగొని వాటిని ఒకే Assistant ఇంటర్ఫేస్‌కు జీరో బాయిలర్‌ప్లేట్‌తో వేరుస్తుంది.

Spring Boot Auto-Wiring Architecture

@AiService ఇంటర్ఫేస్ ChatModel, టూల్ కంపోనెంట్లు, మెమరీ ప్రొవైడర్‌ను కలుపుతుంది — స్ప్రింగ్ బూట్ ఆటోమాటిక్‌గా వైరింగ్ పద్ధతిని నిర్వహిస్తుంది.

ఇది పూర్తి అభ్యర్థన జీవ చక్రాన్ని సీక్వెన్స్ డయాగ్రామ్‌గా చూపుతుంది — HTTP అభ్యర్థన నుండి కంట్రోలర్, సర్వీస్ మరియు ఆటో-వైర్డ్ ప్రాక్సీ ద్వారా టూల్ అమలుకు వెనక్కి తిరుగు వరకు:

Spring Boot Tool Calling Sequence

సంపూర్ణ స్ప్రింగ్ బూట్ అభ్యర్థన జీవ చక్రం — HTTP అభ్యర్థన కంట్రోలర్ మరియు సర్వీస్ ద్వారా ఆటో-వైర్డ్ అసిస్టెంట్ ప్రాక్సీకి ప్రవహిస్తుంది, ఇది LLM మరియు టూల్ కాల్ల్స్‌ని ఆటోమేటిక్‌గా సమన్వయపరుస్తుంది.

ఈ విధానం ముఖ్యమైన లాభాలు:

  • స్ప్రింగ్ బూట్ ఆటో-వైరింగ్ — ChatModel మరియు టూల్స్ ఆటోమేటిక్‌గా ఇన్‌జెక్ట్ చేయబడతాయి
  • @MemoryId ప్యాటర్న్ — ఆటోమేటిక్ సెషన్ ఆధారిత మెమరీ నిర్వహణ
  • ఏకైక ఉదాహరణ — అసిస్టెంట్ ఒకసారి సృష్టించి మెరుగైన పనితీరు కోసం తిరిగి ఉపయోగిస్తారు
  • టైప్-సేఫ్ ఎగ్జిక్యూషన్ — జావా విధానాలను నేరుగా టైప్ మార్చుకొని కాల్ చేస్తుంది
  • బహుళ-టర్న్ ఆర్కెస్ట్రేషన్ — టూల్ చైనింగ్‌ని ఆటోమేటిక్‌గా నిర్వహిస్తుంది
  • జీరో బాయిలర్‌ప్లేట్ — మాన్యువల్ AiServices.builder() కాల్స్ లేదా మెమరీ HashMap అవసరం లేదు

మరాఫీంగ్ (manual AiServices.builder()) మరింత కోడ్తో, స్ప్రింగ్ బూట్ ఇంటిగ్రేషన్ లాభాలు లేకుండా ఉంటుంది.

టూల్ చైనింగ్

టూల్ చైనింగ్ — ఒకే ప్రశ్నకు పలు టూల్స్ అవసరమైనప్పుడు టూల్-ఆధారిత ఏజెంట్ల నిజమైన శక్తి ఇక్కడ కనిపిస్తుంది. "సియాటిల్‌లో వాతావరణం ఫారన్హీట్‌లో ఏమిటి?" అడగండి, ఏజెంట్ రెండు టూల్స్‌ను చైనింగ్ చేస్తుంది: మొదట getCurrentWeather కాల్ చేసి సెల్సియస్ లో ఉష్ణోగ్రతను పొందుతుంది, ఆ తరువాత ఆ విలువను celsiusToFahrenheit కి పంపించి మార్పిడి చేస్తుంది — ఇవి ఒకే సంభాషణ టర్న్‌లో జరగుతుంది.

Tool Chaining Example

టూల్ చైనింగ్ కార్యంలో — ఏజెంట్ ముందుగా getCurrentWeather కాల్ చేస్తుంది, ఆపై సెల్సియస్ ఫలితాన్ని celsiusToFahrenheitకి పంపించి కూర్పైన జవాబును ఇస్తుంది.

సౌమ్య విఫలతలు — మాక్ డేటాలో లేని నగరంలో వాతావరణం అడగండి. టూల్ లోపం సందేశాన్ని ఇస్తుంది, AI సహాయం చేయలేకపోతున్నట్లు వివరిస్తుంది, అప్లికేషన్ క్రాష్ అవ్వదు. టూల్స్ భద్రంగా విఫలమవుతాయి. క్రింది డయాగ్రామ్ రెండు విధానాలను పోలుస్తుంది — సరైన లోప nicheోడింపు తో ఏజెంట్ ఎక్సెప్షన్‌ను పట్టుకొని సహాయక ప్రతిస్పందన ఇస్తుంది, లేకపోతే మొత్తం అప్లికేషన్ క్రాష్ అవుతుంది:

Error Handling Flow

ఒక టూల్ విఫలమైతే ఏజెంట్ లోప nicheోడింపును పట్టుకొని క్రాష్ కాకుండా సహాయక వివరణ ఇస్తుంది.

ఇది ఒకే సంభాషణ టర్న్‌లో జరుగుతుంది. ఏజెంట్ స్వతంత్రంగా పలు టూల్ కాల్ల్స్‌ను సమన్వయపరుస్తుంది.

అనువర్తనాన్ని నడపండి

డిప్లాయ్‌మెంట్‌ను ధృవీకరించండి:

రూట్ డైరెక్టరీలో Azure ప్రమాణపత్రాలతో .env ఫైల్ ఉండి ఉండటం నిర్ధారించుకోండి (మాడ్యూల్ 01లో సృష్టించబడింది). ఈ మాడ్యూల్ డైరెక్టరీ నుండి ( 04-tools/ ) ఈ కమాండ్‌ను నడిపించండి:

Bash:

cat ../.env  # AZURE_OPENAI_ENDPOINT, API_KEY, DEPLOYMENT చూపించాలి

PowerShell:

Get-Content ..\.env  # AZURE_OPENAI_ENDPOINT, API_KEY, DEPLOYMENT చూపించాలి

అనువర్తనాన్ని ప్రారంభించండి:

గమనిక: మీరు ఇప్పటికే రూట్ డైరెక్టరీ నుండి ./start-all.sh ఉపయోగించి అన్ని అనువర్తనాలు ప్రారంభించి ఉంటే (మాడ్యూల్ 01లో వివరిచెను), ఈ మాడ్యూల్ ఇప్పటికే 8084 పోర్ట్‌లో నడుస్తోంది. క్రింద ఇవ్వబడిన స్టార్ట్ కమాండ్లను వదిలి సూటిగా http://localhost:8084 కి వెళ్లండి.

వికల్పం 1: స్ప్రింగ్ బూట్ డాష్‌బోర్డు ఉపయోగించడం (VS Code వినియోగదారులకు సిఫార్సు)

డెవ్ కంటైనర్ స్ప్రింగ్ బూట్ డాష్‌బోర్డు ఎక్స్టెన్షన్‌ను కలిగి ఉంది, ఇది అన్ని స్ప్రింగ్ బూట్ అనువర్తనాలను నిర్వహించేందుకు విజువల్ ఇంటర్ఫేస్ ఇస్తుంది. మీరు ఇది VS Code ఎడిటర్ ఎడమ వైపు యాక్టివిటీ బార్‌లో (స్ప్రింగ్ బూట్ చిహ్నం కోసం చూడండి) కనుగొనవచ్చు.

స్ప్రింగ్ బూట్ డాష్‌బోర్డులో మీరు:

  • పని స్థలంలోని అందుబాటులో ఉన్న అన్ని స్ప్రింగ్ బూట్ అనువర్తనాలను చూడగలరు
  • ఒక క్లిక్‌తో అనువర్తనాలను ప్రారంభించు/నిలిపే మార్గం
  • రియల్-టైమ్‌లో అనువర్తన లాగ్‌లను చూడడం
  • అనువర్తనం స్థితి పర్యవేక్షణ

"tools" పక్కన ఉన్న ప్లే బటన్ క్లిక్ చేసి ఈ మాడ్యూల్ ప్రారంభించండి, లేదా ఒకేసారి అన్ని మాడ్యూల్‌లు ప్రారంభించండి.

VS Codeలో స్ప్రింగ్ బూట్ డాష్‌బోర్డు ఇలా కనిపిస్తుంది:

Spring Boot Dashboard

VS Codeలో స్ప్రింగ్ బూట్ డాష్‌బోర్డు — అన్ని మాడ్యూల్‌లను ఒక నుంచే ప్రారంభించండి, నిలిపి, పర్యవేక్షించండి

వికల్పం 2: షెల్ స్క్రిప్టులు ఉపయోగించడం

01 నుంచి 04 వర్చువల్ వెబ్ అప్లికేషన్లను ప్రారంభించండి:

Bash:

cd ..  # రూట్ డైరెక్టరీ నుండి
./start-all.sh

PowerShell:

cd ..  # రూట్ డైరెక్టర్ నుండి
.\start-all.ps1

లేదా ఈ మాడ్యూల్‌ను మాత్రం ప్రారంభించండి:

Bash:

cd 04-tools
./start.sh

PowerShell:

cd 04-tools
.\start.ps1

రూట్ .env ఫైల్ నుండి ఎన్విరాన్‌మెంట్ వేరియబుల్స్‌ను ఆటోమేటిక్‌గా లోడుచేస్తాయి మరియు JARలు లేవు అయితే అవి నిర్మిస్తాయి.

గమనిక: మీరు ప్రారంభించే ముందు అన్ని మాడ్యూల్స్‌ను మానవీయంగా బిల్డింగ్ చేయాలని ఇష్టపడితే:

Bash:

cd ..  # Go to root directory
mvn clean package -DskipTests

PowerShell:

cd ..  # Go to root directory
mvn clean package -DskipTests

మీ బ్రౌజర్‌లో http://localhost:8084 ని తెరవండి.

ఆపడానికి:

Bash:

./stop.sh  # ఈ మాడ్యూల్ మాత్రమే
# లేదా
cd .. && ./stop-all.sh  # అన్ని మాడ్యూల్స్

PowerShell:

.\stop.ps1  # ఈ మాడ్యూల్ మాత్రమే
# లేదా
cd ..; .\stop-all.ps1  # అన్ని మాడ్యూల్స్

అప్లికేషన్ వినియోగం

అప్లికేషన్ ఒక వెబ్ ఇంటర్‌ఫేస్ అందిస్తుంది, అక్కడ మీరు వాతావరణ మరియు ఉష్ణోగ్రత రূপాంతర పరికరాలకు యాక్సెస్ ఉన్న AI ఏజెంట్‌తో పరస్పరం చెయ్యవచ్చు. ఇంటర్‌ఫేస్ ఇలా ఉంటుంది — ఇది తక్షణ ప్రారంభ ఉదాహరణలు మరియు అభ్యర్థనలు పంపేందుకు చాట్ ప్యానెల్‌ను కలిగి ఉంది:

AI Agent Tools Interface

AI ఏజంట్ టూల్స్ ఇంటర్‌ఫేస్ - పరికరాలతో పరస్పరం కోసం తక్షణ ఉదాహరణలు మరియు చాట్ ఇంటర్‌ఫేస్

సులభమైన పరికరం వినియోగం ప్రయత్నించండి

"100 డిగ్రీ ఫారెన్‌హీట్‌ను సెల్సియస్‌గా మార్చండి" అనే సరళమైన అభ్యర్థనతో ప్రారంభించండి. ఏజెంట్ తెలుసుకుంటుంది ఇది ఉష్ణోగ్రత రূপాంతర పరికరాన్ని అవసరం, సరైన పారామీటర్లతో పిలుచుతుంది, మరియు ఫలితాన్ని తిరిగి ఇస్తుంది. ఇది సహజంగా అనిపిస్తుంది — మీరు ఏ పరికరాన్ని ఉపయోగించాలో లేదా ఎలా పిలవాలో వివరించలేదు.

పరికర హార్మోనీ పరీక్షించండి

ఇప్పుడు కొంచెం క్లిష్టమైనదాన్ని ప్రయత్నించండి: "సియాటెల్ వాతావరణం ఏమిటి మరియు దానిని ఫారెన్‌హీట్‌గా మార్చండి?" ఏజెంట్ దాన్ని దశల వారీగా పనిచేస్తుందనుచూడండి. మొదట వాతావరణాన్ని పొందుతుంది (సెల్సియస్ తిరిగి ఇస్తుంది), ఫారెన్‌హీట్‌కు మార్చాల్సిన అవసరం గుర్తిస్తుంది, మార్చే పరికరాన్ని పిలుస్తుంది, మరియు రెండింటిని ఒక సమాధానంగా కలిపి ఇస్తుంది.

సంభాషణ ప్రవాహం చూడండి

చాట్ ఇంటర్‌ఫేస్ సంభాషణ చరిత్రను ఇలా నిలిపి ఉంచుతుంది, మీరు బహుళ-టర్న్ పరస్పర చర్యలు చేయగలరు. మీరు గత అభ్యర్థనలు మరియు సమాధానాలను చూసి సంభాషణను ఎప్పటికి తెలుసుకోవచ్చుని విశ్లేషించ వచ్చును మరియు ఏజెంట్ ఎలా అనేక మార్పిడి ద్వారా సందర్భాన్ని నిర్మిస్తుందో అర్థం చేసుకోవచ్చు.

Conversation with Multiple Tool Calls

సరళమైన మార్పిడి, వాతావరణ విచారణలు, మరియు పరికరం హార్మోనీ చూపించే బహుళ-టర్న్ సంభాషణ

వివిధ అభ్యర్థనలతో ప్రయోగం చేయండి

వివిధ కాంబినేషన్లను ప్రయత్నించండి:

  • వాతావరణ విచారణలు: "టోక్యోలో వాతావరణం ఎలా ఉంది?"
  • ఉష్ణోగ్రత రূপాంతరాలు: "25°C కెల్విన్‌లో ఎంత?"
  • సంయుక్త ప్రశ్నలు: "పారిస్‌లో వాతావరణం చెక్ చేసి 20°C కంటే ఎక్కువ ఉందా చెప్పండి"

ఏజెంట్ సహజ భాషను ఎలా అర్థం చేసుకుంటుందో మరియు సరైన పరికరం పిలువులకు మలచుతుందో గమనించండి.

కీలక కాన్సెప్ట్‌లు

ReAct ప్యాటర్న్ (తార్కిక విశ్లేషణ మరియు చర్య)

ఏజెంట్ తార్కిక విశ్లేషణ (ఏం చేయాలనుకుంటుందో నిర్ణయించడం) మరియు చర్య (పరికరాలను ఉపయోగించడం) మధ్య మారుతూ ఉంటుంది. ఈ ప్యాటర్న్ స్వతంత్ర సమస్య పరిష్కారాన్ని సాధిస్తుంది, కేవలం ఆదేశాలు అనుసరించే మాదిరిగా కాకుండా.

పరికరం వివరణలు ముఖ్యం

మీ పరికరం వివరణల నాణ్యత ఏజెంట్ వాటిని ఎంత బాగా ఉపయోగిస్తుందో నేరుగా ప్రభావితం చేస్తుంది. స్పష్టంగా మరియు నిర్దిష్టంగా వివరిస్తే మోడల్ ఏ పరికరాన్ని ఎప్పుడు, ఎలా పిలవాలో అర్థం చేసుకుంటుంది.

సెషన్ నిర్వహణ

@MemoryId అనోటేషన్ ఆటోమేటిక్ సెషన్ ఆధారిత స్మృతి నిర్వహణను సక్రియం చేస్తుంది. ప్రతి సెషన్ IDకి, ChatMemoryProvider బీన్ నిర్వహించే ప్రత్యేక ChatMemory ఉదాహరణ ఉంటుంది, అందువల్ల అనేక వినియోగదారులు ఏజెంట్‌తో ఒకేసారి పరస్పరం చేయగలరు కానీ వారి సంభాషణలు కలగకుండా ఉంటాయి. ఈ диаг్రామ్ ఎలాగ్ అనేక వినియోగదారులు వారి సెషన్ IDల ఆధారంగా వித்தడైన స్మృతి నిల్వలకు మార్పిడి అవుతాయో చూపిస్తుంది:

Session Management with @MemoryId

ప్రతి సెషన్ ID వేరే సంభాషణ చరిత్రకి మ్యాప్ అవుతుంది — వినియోగదారులు ఒకరినొకరు సందేశాలు చూడరు.

లోప నిర్వహణ

పరికరాలు విఫలమవవచ్చు — APIలు టైమౌట్ కావచ్చు, పారామీటర్లు తప్పు ఉండొచ్చు, బాహ్య సేవలు డౌన్ అయ్యে ఉండొచ్చు. ప్రొడక్షన్ ఏజెంట్లకు లోప నిర్వహణ అవసరం, అలా మోడల్ సమస్యలను వివరిస్తూ లేదా ప్రత్యామ్నాయాలను ప్రయత్నిస్తూ మొత్తం అప్లికేషన్ క్రాష్ కాకుండా సురక్షితం చేస్తుంది. పరికరం ఒక ఎక్సెప్షన్ విసురుతుంటే, LangChain4j దాన్ని పట్టు, లోప సందేశాన్ని మోడల్‌కి తిరిగి నింపుతుంది, తద్వారా మోడల్ సహజ భాషలో సమస్య వివరించగలదు.

అందుబాటులో ఉన్న పరికరాలు

కింది డయాగ్రామ్ మీరు నిర్మించగల పరికరాల విస్తృత సిస్టమ్‌ను చూపిస్తుంది. ఈ మాడ్యూల్ వాతావరణ మరియు ఉష్ణోగ్రత పరికరాలను చూపిస్తేనూ, అదే @Tool ప్యాటర్న్ ఏ Java మిథడ్‌కు సరిపోతుంది — డేటాబేస్ విచారణలు నుండి చెల్లింపు ప్రక్రియల వరకూ.

Tool Ecosystem

ఏ Java మిథడ్‌కు @Tool అనోటేట్ చేస్తే AIకి అందుబాటులో ఉంటుంది — ఈ ప్యాటర్న్ డేటాబేసులు, APIలు, ఇమెయిల్స్, ఫైల్ ఆపరేషన్స్ మరియు మరిన్ని విస్తరిస్తుంది.

ఎప్పుడు పరికరం ఆధారిత ఏజెంట్లను ఉపయోగించాలి

ప్రతి అభ్యర్థనకు పరికరాలు అవసరం కాదు. నిర్ణయం AIకి బాహ్య సిస్టమ్స్‌తో ఇంటరాక్ట్ కావాల్సిన అవసరం ఉందా లేదా తన స్వంత జ్ఞానం ఆధారంగా సమాధానం ఇవ్వగలదా అనేదానిపై ఉంటంది. కింది గైడ్ పరికరాలు విలువ కలిగించేవారు ఎప్పుడు, అవి అవసరం లేనిదే ఎప్పుడు అనేది సారాంశం చేయుతుంది:

When to Use Tools

తక్షణ నిర్ణయ గైడ్ — పరికరాలు రియల్-టైమ్ డేటా, లెక్కలకి మరియు చర్యలకు ఉపయోగపడతాయి; సాధారణ జ్ఞానం మరియు సృజనాత్మక పనులకు అవి అవసరం ఉండవు.

పరికరాలు vs RAG

03, 04 మాడ్యూల్స్ రెండూ AI చేయగలదాన్ని పెంచుతాయి, కానీ మూలంగా వేర్వేరు రీతులలో. RAG మోడల్‌కు డాక్యుమెంట్లను రీట్రీవ్ చేసి జ్ఞానం అందిస్తుంది. పరికరాలు ఫంక్షన్‌లను పిలిచి చర్యలు తీసుకునే సామర్థ్యాన్ని ఇస్తాయి. క్రింది డయాగ్రామ్ పక్కపక్కన ఈ రెండు విధానాలను పోలుస్తుంది — ప్రతి వర్క్‌ఫ్లో ఎలా పనిచేస్తుందో, వాటి మధ్య ట్రేడ్-ఆఫ్స్ ఏవో:

Tools vs RAG Comparison

RAG స్థిరమైన డాక్యుమెంట్ల నుంచి సమాచారం తీసుకుంటుంది — పరికరాలు చర్యలు తీసుకుంటూ డైనమిక్, రియల్-టైమ్ డేటా పొందుతాయి. అనేక ప్రొడక్షన్ సిస్టమ్స్ రెండింటినీ కలుపుకొంటాయి.

ప్రాక్టిస్‌లో, అనేక ప్రొడక్షన్ సిస్టమ్స్ రెండు విధానాలను కలిపి వినియోగిస్తాయి: RAG మీ డాక్యుమెంటేషన్‌లో సమాధానానికి గ్రౌండింగ్ చేయడానికి మరియు పరికరాలు ప్రత్యక్ష డేటాను తీయడానికి లేదా ఆపరేషన్లు చేయడానికి.

తదుపరి దశలు

తదుపరి మాడ్యూల్: 05-mcp - Model Context Protocol (MCP)


నావిగేషన్: ← మునుపటి: Module 03 - RAG | ప్రధానానికి తిరిగి | తదుపరి: Module 05 - MCP →


సాఫ్ట్‌నోటీసు: ఈ డాక్యూమెంట్ Co-op Translator అనే AI భాషాబదలీ సేవ ఉపయోగించి అనువాదం చేయబడింది. మేము ఖచ్చితత్వానికి యత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో తప్పులు లేదా అసమర్థతలు ఉండొచ్చు. అసలు డాక్యూమెంట్ native భాషలో ఉన్నదేనని అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారం కోసం, నైపుణ్యమైన మనుష్యుల ద్వారా అనువాదం చేయించడం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వలన వచ్చిన ఏవైనా అపసమజ్ఞతలు లేదా తప్పుగా అర్థం చేసుకోవడంపై మేము బాధ్యత వహించము.