$lang['tuto'] = "பயிற்சிகள்"; ?> Ollama LLM மற்றும் தனிப்பயன்

Ollama LLM மற்றும் தனிப்பயன் கருவி மூலம் Langchain.js இன் ToolCallingAgentOutputParser பிழையை சரிசெய்தல்

Temp mail SuperHeros
Ollama LLM மற்றும் தனிப்பயன் கருவி மூலம் Langchain.js இன் ToolCallingAgentOutputParser பிழையை சரிசெய்தல்
Ollama LLM மற்றும் தனிப்பயன் கருவி மூலம் Langchain.js இன் ToolCallingAgentOutputParser பிழையை சரிசெய்தல்

Langchain.js இல் ToolCallingAgentOutputParser பிழைகளைப் புரிந்துகொண்டு சரிசெய்தல்

Langchain.js v2 உடன் பணிபுரியும் போது, ​​டெவலப்பர்கள் தனிப்பயன் கருவிகள் மற்றும் Ollama போன்ற மொழி மாதிரிகளைப் பயன்படுத்தி திறமையான முகவர்களை உருவாக்குவதை நோக்கமாகக் கொண்டுள்ளனர். இருப்பினும், இந்த கூறுகளை ஒருங்கிணைப்பது சில நேரங்களில் பிழைகளை சரிசெய்ய கடினமாக இருக்கும்.

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

Langchain இன் createToolCallingAgent மற்றும் Ollama மாதிரியைப் பயன்படுத்தி, எண்ணை உள்ளீட்டில் 2ஐ சேர்க்கும் தனிப்பயன் கருவியின் எளிய செயலாக்கத்தை இந்தக் கட்டுரை ஆராய்கிறது. பிழை மற்றும் அதன் சூழலை பகுப்பாய்வு செய்வதன் மூலம், அதை எவ்வாறு சரிசெய்வது என்பதை நாம் நன்கு புரிந்து கொள்ள முடியும்.

பின்வரும் பிரிவுகள் குறியீட்டின் மூலம் உங்களுக்கு வழிகாட்டும், பிழையை விளக்கும் மற்றும் இந்த சிக்கலைத் தீர்ப்பதற்கான தீர்வுகளை வழங்கும். நீங்கள் Langchain.js க்கு புதியவராக இருந்தாலும் சரி அல்லது அனுபவம் வாய்ந்தவராக இருந்தாலும் சரி, இந்தச் சிக்கலைத் திறம்பட கடந்து செல்ல இந்த வழிகாட்டி உதவும்.

கட்டளை பயன்பாட்டின் உதாரணம்
tool() Langchain.js இலிருந்து இந்த செயல்பாடு ஒரு செயல்பாட்டைச் செய்யும் தனிப்பயன் கருவியை வரையறுக்கிறது. இந்தக் கட்டுரையில், உள்ளீட்டு எண்ணுடன் 2ஐச் சேர்க்கும் ஒரு கருவியை உருவாக்க இது பயன்படுகிறது, தர்க்கத்தை எளிதில் அழைக்கக்கூடிய கட்டமைப்பில் மூடுகிறது.
z.object() Zod நூலகத்தின் ஒரு பகுதி, லாங்செயினில் ஸ்கீமா சரிபார்ப்புக்கு பயன்படுத்தப்படுகிறது. தனிப்பயன் கருவிக்கான உள்ளீடு ஒரு எண்ணாக இருப்பதை இது உறுதிசெய்கிறது, செயல்பாட்டின் போது பிழைகளைத் தடுக்க வலுவான உள்ளீட்டு சரிபார்ப்பை வழங்குகிறது.
createToolCallingAgent() இந்த கட்டளையானது பயனர் வினவல்களுக்கு பதிலளிக்கும் வகையில் வரையறுக்கப்பட்ட கருவிகளை அழைக்கக்கூடிய ஒரு முகவரை உருவாக்குகிறது. ஒல்லாமா போன்ற மொழி மாதிரிகளுடன் கருவிகளை ஒருங்கிணைப்பதில் இது முக்கியமானது, இது உரையாடலின் போது கருவிகளை செயல்படுத்துவதை சாத்தியமாக்குகிறது.
ChatPromptTemplate.fromMessages() பிளேஸ்ஹோல்டர்களுடன் அரட்டை ப்ராம்ட் டெம்ப்ளேட்டை உருவாக்கப் பயன்படுகிறது. இந்த டெம்ப்ளேட் அதன் உரையாடல் ஓட்டத்தை மேம்படுத்தி, முகவர் பயன்படுத்த பல்வேறு வகையான செய்திகளை (கணினி, மனித, ஒதுக்கிடங்கள்) ஒழுங்கமைக்கிறது.
MessagesPlaceholder அரட்டை வரலாறு அல்லது ஏஜென்ட் ஸ்கிராட்ச்பேட் போன்ற டைனமிக் உள்ளடக்கத்திற்கான ப்ராம்ட் டெம்ப்ளேட்டில் ஒதுக்கிடமாக செயல்படுகிறது. இது செயலாக்கத்தின் போது உரையாடல் சூழலை மாறும் வகையில் உட்செலுத்த அனுமதிக்கிறது.
AgentExecutor() இந்த வகுப்பு முகவர்கள் மற்றும் கருவிகளின் செயல்பாட்டை நிர்வகிக்கிறது. எடுத்துக்காட்டில், இது முகவர் மூலம் வினவலை இயக்கவும், கருவியின் வெளியீட்டில் இருந்து முடிவை சேகரிக்கவும் உதவுகிறது.
await agentExecutor.invoke() ஏஜென்ட் மூலம் வினவலை இயக்கவும், ஒத்திசைவின்றி முடிவுக்காக காத்திருக்கவும் பயன்படுகிறது. மொழி மாதிரிகள் மற்றும் கருவிகளுடன் தொடர்புகொள்வதற்கு இது மிகவும் முக்கியமானது, ஏனெனில் இது செயல்பாட்டிற்குச் செல்வதற்கு முன் குறியீடு காத்திருக்கிறது.
try-catch தவறான உள்ளீட்டு வகைகளைப் பிடிக்க தனிப்பயன் கருவியில் இந்த பிழை கையாளுதல் அமைப்பு பயன்படுத்தப்படுகிறது. விதிவிலக்குகளைப் பிடிப்பதன் மூலம், செயல்பாட்டின் ஓட்டத்தை மீறாமல், பயனுள்ள பிழைச் செய்திகளை கணினி வழங்குவதை இது உறுதி செய்கிறது.
expect() Chai உறுதிப்படுத்தல் நூலகத்திலிருந்து, தனிப்பயன் கருவியின் வெளியீட்டைச் சரிபார்க்க, யூனிட் சோதனையில் expect() பயன்படுத்தப்படுகிறது. கருவி எதிர்பார்த்தபடி செயல்படுகிறதா என்பதைச் சோதிக்க இது அவசியம்.

Langchain.js இல் தனிப்பயன் கருவி மற்றும் முகவர் பிழை கையாளுதல் ஆகியவற்றைப் புரிந்துகொள்வது

வழங்கப்பட்ட எடுத்துக்காட்டில், Langchain.js v2 உடன் இணைந்து ஒரு தனிப்பயன் கருவியை உருவாக்க நாங்கள் வேலை செய்கிறோம். ஒல்லமா மொழி மாதிரி. கருவியின் முக்கிய நோக்கம் ஒரு எளிய கணித செயல்பாட்டைச் செய்வதாகும்: உள்ளீட்டு மதிப்பில் 2 ஐச் சேர்த்தல். கருவி லாங்செயினைப் பயன்படுத்தி உருவாக்கப்பட்டுள்ளது கருவி செயல்பாடு, இது ஒரு முகவரால் செயல்படுத்தப்படக்கூடிய மறுபயன்பாட்டு செயல்பாடுகளை வரையறுக்கிறது. கருவி சரியாகச் செயல்படுவதை உறுதிசெய்ய, உள்ளீட்டுத் திட்டம் Zod நூலகத்தில் சரிபார்க்கப்பட்டு, உள்ளீடு செல்லுபடியாகும் எண் என்பதை உறுதிப்படுத்துகிறது. இது சரியான பிழை கையாளுதலை உறுதி செய்கிறது மற்றும் தவறான உள்ளீடுகளால் கருவி தோல்வியடைவதைத் தடுக்கிறது.

தனிப்பயன் கருவி பின்னர் ஒரு முகவருடன் இணைக்கப்பட்டது createToolCallingAgent செயல்பாடு. இந்தக் கட்டளையானது, கருவியை தேவைப்படும்போது அழைக்க ஏஜென்ட்டை அனுமதிக்கிறது, மேலும் பதில்களின் படைப்பாற்றலைக் கட்டுப்படுத்த வெப்பநிலை போன்ற குறிப்பிட்ட அளவுருக்களுடன் உள்ளமைக்கப்பட்ட ஒல்லாமா மாதிரி மூலம் முகவர் இயக்கப்படுகிறது. முகவருக்கும் கருவிக்கும் இடையே சுமூகமான தொடர்புகளை எளிதாக்க, அரட்டை ப்ராம்ட் டெம்ப்ளேட் பயன்படுத்தப்படுகிறது. இந்த டெம்ப்ளேட், சிஸ்டம் செய்திகள், மனித உள்ளீடு மற்றும் பிளேஸ்ஹோல்டர்கள் போன்ற பல்வேறு வகையான செய்திகளை வரையறுத்து உரையாடலை ஒழுங்கமைக்கிறது. போன்ற இடங்கள் MessagesPlaceholder, அரட்டை வரலாறு போன்ற கூறுகளுடன் உரையாடலை டைனமிக் ஆக அனுமதிக்கவும்.

இந்த எடுத்துக்காட்டில் குறிப்பிடப்பட்ட முக்கிய சிக்கல்களில் ஒன்று, லாங்செயின் ஏஜெண்டின் அவுட்புட் பாகுபடுத்தலில் உள்ள பிழை கையாளுதல் ஆகும். "ParseResult on ToolCallingAgentOutputParser ChatGeneration வெளியீட்டில் மட்டுமே இயங்குகிறது" என்ற பிழை செய்தியானது, பாகுபடுத்தி எதிர்பார்க்கும் வெளியீட்டின் வகைக்கும் உருவாக்கப்பட்ட உண்மையான வெளியீட்டிற்கும் இடையே உள்ள பொருத்தமின்மையால் ஏற்படுகிறது. இந்த பிழையைக் கையாள, தனிப்பயன் கருவி வலுவான தர்க்கத்தில் மூடப்பட்டிருக்கும், அனைத்து உள்ளீடுகளும் வெளியீடுகளும் எதிர்பார்க்கப்படும் வடிவங்களுக்கு இணங்குவதை உறுதி செய்கிறது. இது மேலும் நிர்வகிக்கப்படுகிறது முகவர் நிறைவேற்றுபவர் கிளாஸ், இது முகவர் மற்றும் கருவிகளின் செயல்பாட்டை ஒருங்கிணைக்கிறது, வினவல் மற்றும் கருவி வெளியீடு சரியாக ஒத்திசைக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்துகிறது.

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

மாடுலர் அணுகுமுறையுடன் Langchain.js பிழையை சரிசெய்தல்

தீர்வு 1: ஜாவாஸ்கிரிப்ட் மட்டு அணுகுமுறை மற்றும் Langchain.js மற்றும் Ollama LLM ஐப் பயன்படுத்தி பிழை கையாளுதல்

import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { Ollama } from "@langchain/ollama";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { createToolCallingAgent } from "langchain/agents";
import { AgentExecutor } from "langchain/agents";
// Initialize LLM with Ollama
const llm = new Ollama({
    model: "llama3",
    temperature: 0.7,
});
// Custom tool to add 2 to the input number
const magicTool = tool(
    async (input) => {
        return input + 2;
    },
    {
        name: "magic_function",
        description: "Applies a magic function to an input",
        schema: z.object({ input: z.number() }),
    };
);
const tools = [magicTool];
// Setup ChatPromptTemplate with placeholders
const prompt = ChatPromptTemplate.fromMessages([
    ["system", "You are a helpful assistant called iHelp"],
    ["placeholder", "{chat_history}"],
    ["human", "{input}"],
    ["placeholder", "{agent_scratchpad}"],
]);
// Agent configuration
const agent = createToolCallingAgent({ llm, tools, prompt });
// Execute agent query
const agentExecutor = new AgentExecutor({ agent, tools });
const query = "What is the value of magic_function(3)?";
await agentExecutor.invoke({ input: query });

Langchain.js ஏஜெண்டிற்கான மேம்படுத்தப்பட்ட பிழை கையாளுதல்

தீர்வு 2: Langchain.js இல் தனிப்பயன் கருவியின் வெளியீட்டை சரிபார்க்க யூனிட் சோதனைகளை கையாளுவதில் பிழை

import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { Ollama } from "@langchain/ollama";
import { createToolCallingAgent } from "langchain/agents";
import { AgentExecutor } from "langchain/agents";
// Initialize LLM with Ollama
const llm = new Ollama({ model: "llama3", temperature: 0.7 });
// Custom tool with added error handling
const magicTool = tool(
    async (input) => {
        try {
            if (typeof input !== "number") throw new Error("Invalid input type!");
            return input + 2;
        } catch (err) {
            return err.message;
        }
    },
    {
        name: "magic_function",
        description: "Adds 2 to input and handles errors",
        schema: z.object({ input: z.number() }),
    }
);
const tools = [magicTool];
// Agent and execution
const agent = createToolCallingAgent({ llm, tools });
const agentExecutor = new AgentExecutor({ agent, tools });
const query = "magic_function('abc')"; // Test with invalid input
await agentExecutor.invoke({ input: query });
// Unit test example
import { expect } from "chai";
it("should return 5 when input is 3", async () => {
    const result = await magicTool(3);
    expect(result).to.equal(5);
});

Langchain.js மற்றும் Ollama LLM ஒருங்கிணைப்பில் முகவர்களின் பங்கை ஆராய்தல்

Langchain.js உடன் பணிபுரியும் போது, ​​ஒருங்கிணைக்கிறது முகவர்கள் ஒல்லாமா போன்ற கருவிகள் மற்றும் மொழி மாதிரிகள் மாறும் பயன்பாடுகளை உருவாக்குவதற்கான முக்கியமான அம்சமாகும். குறிப்பிட்ட பணிகளைச் செய்யும் தனிப்பயன் கருவியை, அதிக உரையாடல் அல்லது உருவாக்கும் பணிகளைக் கையாளும் மொழி மாதிரியுடன் இணைக்க முகவர் உங்களை அனுமதிக்கிறது. முகவர்களைப் பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் பணிப்பாய்வுகளை தானியக்கமாக்க முடியும், அங்கு ஒரு மாதிரி பதில்களை உருவாக்குவது மட்டுமல்லாமல் கணக்கீடுகள் அல்லது தரவு செயலாக்கத்தைச் செய்வதற்கான கருவிகளையும் செயல்படுத்துகிறது.

இந்த ஒருங்கிணைப்பின் முக்கிய அங்கம் createToolCallingAgent செயல்பாடு. இந்தச் செயல்பாடு, தேவைப்படும்போது குறிப்பிட்ட கருவிகளைத் தூண்டுவதற்கு முகவரை அனுமதிக்கிறது, மேலும் பணிகள் துல்லியமாகவும் திறமையாகவும் முடிக்கப்படுவதை உறுதி செய்கிறது. கருவியை உருவாக்குவதிலேயே முதன்மை கவனம் பெரும்பாலும் இருக்கும் போது, ​​முகவரின் பணிப்பாய்வுகளை எவ்வாறு நிர்வகிப்பது மற்றும் பாகுபடுத்தும் பிழைகளைத் தவிர்ப்பது எப்படி என்பதைப் புரிந்துகொள்வது சமமாக முக்கியமானது. "ParseResult on ToolCallingAgentOutputParser ChatGeneration வெளியீட்டில் மட்டுமே இயங்குகிறது" போன்ற பிழைகள் பொதுவாக ஏஜென்ட்டின் வெளியீடு பாகுபடுத்தும் முறையுடன் ஒத்துப்போகவில்லை, ஏஜென்ட்டின் வெளியீடு மற்றும் எதிர்பார்க்கப்படும் வடிவமைப்பிற்கு இடையே சரியான சீரமைப்பின் அவசியத்தை எடுத்துக்காட்டுகிறது.

போன்ற உடனடி வார்ப்புருக்களின் பயன்பாடு ChatPrompt டெம்ப்ளேட், டைனமிக் செய்திகள் மற்றும் சூழல் பிளேஸ்ஹோல்டர்களை அனுமதிப்பதன் மூலம் தொடர்புகளை மேலும் மேம்படுத்துகிறது. அரட்டை வரலாறு அல்லது ஏஜெண்டின் ஸ்க்ராட்ச்பேட் ஆகியவற்றின் அடிப்படையில் ஏஜென்ட் தனது பதில்களைச் சரிசெய்ய இது அனுமதிக்கிறது. உடனடி டெம்ப்ளேட்களை மேம்படுத்துதல் மற்றும் முகவரின் வெளியீடுகள் சரியாகப் பாகுபடுத்தப்படுவதை உறுதிசெய்தல், உங்கள் Langchain.js பயன்பாடுகளை மிகவும் நம்பகமானதாகவும் திறமையானதாகவும் மாற்றும் பல பொதுவான பிழைகளைத் தடுக்கலாம்.

Langchain.js, முகவர்கள் மற்றும் கருவிகள் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. Langchain.js இல் முகவர் என்றால் என்ன?
  2. ஒரு முகவர் என்பது பயனர் வினவலின் அடிப்படையில் குறிப்பிட்ட பணிகளைச் செய்ய கருவிகள் மற்றும் மொழி மாதிரிகளுடன் தொடர்பு கொள்ளும் ஒரு கூறு ஆகும். இது பயன்படுத்துகிறது createToolCallingAgent கருவிகளைத் தூண்டுவதற்கான செயல்பாடு.
  3. "ParseResult on ToolCallingAgentOutputParser" பிழையை எவ்வாறு தீர்ப்பது?
  4. ஏஜெண்டின் வெளியீடு பாகுபடுத்தியுடன் பொருந்தாதபோது இந்தப் பிழை ஏற்படுகிறது. பகுப்பான் எதிர்பார்ப்புடன் வெளியீடு பொருந்துவதை உறுதிசெய்து, a ஐப் பயன்படுத்தவும் ChatGeneration வெளியீட்டு வடிவம்.
  5. இதன் நோக்கம் என்ன AgentExecutor?
  6. தி AgentExecutor முகவர் மற்றும் அதன் கருவிகளின் செயலாக்கத்தை நிர்வகிக்கிறது, இது Langchain.js பயன்பாடுகளில் சிக்கலான பணிப்பாய்வுகளை இயக்க அனுமதிக்கிறது.
  7. எப்படி செய்கிறது ChatPromptTemplate வேலை?
  8. ChatPromptTemplate அரட்டை செய்திகளை கட்டமைக்கப்பட்ட வடிவத்தில் ஒழுங்கமைக்கிறது, அரட்டை வரலாறு மற்றும் முகவர் ஸ்கிராட்ச்பேட் போன்ற மாறும் உள்ளடக்கத்தை உரையாடல் ஓட்டத்தில் செருக அனுமதிக்கிறது.
  9. ஏன் உள்ளது Zod கருவியில் பயன்படுத்தப்பட்டது?
  10. Zod உள்ளீடு சரிபார்ப்புக்கு பயன்படுத்தப்படுகிறது, தனிப்பயன் கருவிக்கான உள்ளீடு சரியான வகையைச் சேர்ந்தது (எ.கா. எண்), இது பிழைகளின் வாய்ப்புகளைக் குறைக்கிறது.

Langchain.js இல் பிழை கையாளுதல் பற்றிய இறுதி எண்ணங்கள்

"ParseResult on ToolCallingAgentOutputParser ChatGeneration வெளியீட்டில் மட்டுமே வேலை செய்யும்" பிழையைத் தீர்க்க, உங்கள் ஏஜென்ட்டின் வெளியீடு மற்றும் அதன் பாகுபடுத்தும் எதிர்பார்ப்புகளுக்கு இடையே கவனமாக சீரமைக்க வேண்டும். சரியான அணுகுமுறையுடன், இந்த பிழை தவிர்க்கப்படலாம்.

சரிபார்ப்பிற்காக Zod போன்ற பொருத்தமான கருவிகளைப் பயன்படுத்துவதன் மூலமும், Ollama உடன் கட்டமைக்கப்பட்டவை போன்ற முகவர்கள் உள்ளீடுகள் மற்றும் வெளியீடுகளைச் சரியாகக் கையாளுவதை உறுதி செய்வதன் மூலம், பாகுபடுத்தும் சிக்கல்களை எதிர்கொள்ளாமல் Langchain.js இல் வலுவான தீர்வுகளை உருவாக்கலாம்.

Langchain.js பிழைத் தீர்மானத்திற்கான ஆதாரங்கள் மற்றும் குறிப்புகள்
  1. உத்தியோகபூர்வ Langchain ஆவணங்களை விரிவுபடுத்துகிறது, இது கருவி உருவாக்கம் மற்றும் முகவர் உள்ளமைவுகள் பற்றிய நுண்ணறிவுகளை வழங்குகிறது. லாங்செயின் ஆவணம் உள்ளே.
  2. உள்ளீடு சரிபார்ப்புக்கான Zod இன் பயன்பாடு மற்றும் Langchain.js இல் அதன் பயன்பாடு ஆகியவற்றை மேலும் விளக்குகிறது. Zod ஆவணம் உள்ளே.
  3. ஒல்லாமா மொழி மாதிரி மற்றும் தனிப்பயன் ஏஜெண்டுகளுக்குள் செயல்படுத்தப்படுவதை விவரிக்கிறது. ஒல்லாமா எல்.எல்.எம் உள்ளே.