$lang['tuto'] = "سبق"; ?> Langchain.js کی ToolCallingAgentOutputParser کی

Langchain.js کی ToolCallingAgentOutputParser کی خرابی Ollama LLM اور ایک حسب ضرورت ٹول کے ساتھ ٹھیک کرنا

Temp mail SuperHeros
Langchain.js کی ToolCallingAgentOutputParser کی خرابی Ollama LLM اور ایک حسب ضرورت ٹول کے ساتھ ٹھیک کرنا
Langchain.js کی ToolCallingAgentOutputParser کی خرابی Ollama LLM اور ایک حسب ضرورت ٹول کے ساتھ ٹھیک کرنا

Langchain.js میں ToolCallingAgentOutputParser کی خرابیوں کو سمجھنا اور درست کرنا

Langchain.js v2 کے ساتھ کام کرتے وقت، ڈویلپرز اکثر اپنی مرضی کے ٹولز اور اولاما جیسے لینگویج ماڈلز کا استعمال کرتے ہوئے موثر ایجنٹس بنانا چاہتے ہیں۔ تاہم، ان اجزاء کو یکجا کرنے سے بعض اوقات ایسی خرابیاں پیدا ہو سکتی ہیں جن کو ڈیبگ کرنا مشکل ہوتا ہے۔

ایسی ہی ایک خرابی ہے "ToolCallingAgentOutputParser پر parseResult صرف ChatGeneration آؤٹ پٹ پر کام کرتا ہے،" جو ایجنٹ کے فریم ورک کے اندر ایک حسب ضرورت ٹول بناتے وقت ہو سکتا ہے۔ ایجنٹ اور آلے کے صحیح طریقے سے کام کرنے کو یقینی بنانے کے لیے اس مسئلے کی بنیادی وجہ کو سمجھنا بہت ضروری ہے۔

یہ مضمون ایک حسب ضرورت ٹول کے ایک سادہ نفاذ کی کھوج کرتا ہے جو Langchain کے createToolCallingAgent اور Ollama ماڈل کا استعمال کرتے ہوئے ایک عدد ان پٹ میں 2 کا اضافہ کرتا ہے۔ غلطی اور اس کے سیاق و سباق کا تجزیہ کرکے، ہم اسے بہتر طریقے سے سمجھ سکتے ہیں کہ اسے کیسے حل کیا جائے۔

درج ذیل حصے آپ کو کوڈ کے ذریعے رہنمائی کریں گے، غلطی کی وضاحت کریں گے، اور اس مسئلے کو حل کرنے کے لیے حل فراہم کریں گے۔ چاہے آپ Langchain.js میں نئے ہوں یا تجربہ کار، یہ گائیڈ آپ کو اس مسئلے کو مؤثر طریقے سے آگے بڑھانے میں مدد کرے گا۔

حکم استعمال کی مثال
tool() Langchain.js کا یہ فنکشن ایک حسب ضرورت ٹول کی وضاحت کرتا ہے جو آپریشن کرتا ہے۔ اس آرٹیکل میں، اس کا استعمال ایک ٹول بنانے کے لیے کیا گیا ہے جو ایک ان پٹ نمبر میں 2 کا اضافہ کرتا ہے، منطق کو آسانی سے قابل کال ڈھانچے میں لپیٹتا ہے۔
z.object() Zod لائبریری کا ایک حصہ، Langchain میں اسکیما کی توثیق کے لیے استعمال ہوتا ہے۔ یہ اس بات کو یقینی بناتا ہے کہ کسٹم ٹول کا ان پٹ ایک نمبر ہے، جو عملدرآمد کے دوران غلطیوں کو روکنے کے لیے مضبوط ان پٹ توثیق فراہم کرتا ہے۔
createToolCallingAgent() یہ کمانڈ ایک ایجنٹ بناتا ہے جو صارف کے سوالات کے جواب میں متعین ٹولز کو کال کر سکتا ہے۔ یہ اولاما جیسے زبان کے ماڈلز کے ساتھ ٹولز کو مربوط کرنے کی کلید ہے، جس سے بات چیت کے دوران ٹولز کو استعمال کرنا ممکن ہو جاتا ہے۔
ChatPromptTemplate.fromMessages() پلیس ہولڈرز کے ساتھ چیٹ پرامپٹ ٹیمپلیٹ بنانے کے لیے استعمال کیا جاتا ہے۔ یہ ٹیمپلیٹ ایجنٹ کے استعمال کرنے کے لیے مختلف قسم کے پیغامات (نظام، انسانی، جگہ دار) کو منظم کرتا ہے، اس کے گفتگو کے بہاؤ کو بہتر بناتا ہے۔
MessagesPlaceholder متحرک مواد کے لیے پرامپٹ ٹیمپلیٹ میں پلیس ہولڈر کے طور پر کام کرتا ہے، جیسے کہ چیٹ کی سرگزشت یا ایجنٹ سکریچ پیڈ۔ یہ عمل کے دوران گفتگو کے سیاق و سباق کو متحرک طور پر انجیکشن کرنے کی اجازت دیتا ہے۔
AgentExecutor() یہ طبقہ ایجنٹوں اور اوزاروں کو انجام دینے کا انتظام کرتا ہے۔ مثال میں، یہ ایجنٹ کے ذریعے استفسار چلانے اور ٹول کے آؤٹ پٹ سے نتیجہ جمع کرنے میں مدد کرتا ہے۔
await agentExecutor.invoke() ایجنٹ کے ذریعے استفسار چلانے اور نتیجہ کا متضاد طور پر انتظار کرنے کے لیے استعمال کیا جاتا ہے۔ یہ زبان کے ماڈلز اور ٹولز کے ساتھ تعامل کے لیے بہت ضروری ہے، کیونکہ یہ یقینی بناتا ہے کہ کوڈ آگے بڑھنے سے پہلے آپریشن کے مکمل ہونے کا انتظار کرتا ہے۔
try-catch یہ ایرر ہینڈلنگ ڈھانچہ غلط ان پٹ اقسام کو پکڑنے کے لیے کسٹم ٹول کے اندر استعمال ہوتا ہے۔ مستثنیات کو پکڑ کر، یہ یقینی بناتا ہے کہ نظام عمل درآمد کے بہاؤ کو توڑے بغیر مددگار خرابی کے پیغامات واپس کرتا ہے۔
expect() Chai assertion library سے, expect() کو یونٹ ٹیسٹ میں کسٹم ٹول کے آؤٹ پٹ کی تصدیق کے لیے استعمال کیا جاتا ہے۔ یہ جانچنے کے لیے ضروری ہے کہ آیا ٹول توقع کے مطابق کارکردگی کا مظاہرہ کرتا ہے۔

Langchain.js میں کسٹم ٹول اور ایجنٹ ایرر ہینڈلنگ کو سمجھنا

فراہم کردہ مثال میں، ہم Langchain.js v2 کے ساتھ کام کر رہے ہیں تاکہ ایک ایسا حسب ضرورت ٹول بنایا جا سکے جو علامہ زبان ماڈل. ٹول کا بنیادی مقصد ایک سادہ ریاضیاتی آپریشن کرنا ہے: ان پٹ ویلیو میں 2 کا اضافہ کرنا۔ ٹول لینگچین کا استعمال کرتے ہوئے بنایا گیا ہے۔ ٹول فنکشن، جو دوبارہ قابل استعمال افعال کی وضاحت کرتا ہے جن کو ایجنٹ کے ذریعہ طلب کیا جاسکتا ہے۔ اس بات کو یقینی بنانے کے لیے کہ ٹول صحیح طریقے سے کام کرتا ہے، ان پٹ اسکیما کو Zod لائبریری سے توثیق کیا جاتا ہے، اس بات کی ضمانت دیتا ہے کہ ان پٹ ایک درست نمبر ہے۔ یہ درست غلطی سے نمٹنے کو یقینی بناتا ہے اور ٹول کو غلط ان پٹس کی وجہ سے ناکام ہونے سے روکتا ہے۔

پھر کسٹم ٹول کو استعمال کرتے ہوئے ایک ایجنٹ میں شامل کیا جاتا ہے۔ تخلیق ٹول کالنگ ایجنٹ فنکشن یہ کمانڈ ایجنٹ کو ضرورت پڑنے پر ٹول کو کال کرنے کی اجازت دیتی ہے، اور ایجنٹ کو اولاما ماڈل سے تقویت ملتی ہے، جو ردعمل کی تخلیقی صلاحیتوں کو کنٹرول کرنے کے لیے مخصوص پیرامیٹرز جیسے درجہ حرارت کے ساتھ ترتیب دیا جاتا ہے۔ ایجنٹ اور ٹول کے درمیان ہموار تعامل کو آسان بنانے کے لیے، ایک چیٹ پرامپٹ ٹیمپلیٹ استعمال کیا جاتا ہے۔ یہ ٹیمپلیٹ مختلف قسم کے پیغامات، جیسے سسٹم پیغامات، انسانی ان پٹ، اور پلیس ہولڈرز کی وضاحت کر کے گفتگو کو منظم کرتا ہے۔ جگہ دار، جیسے پیغامات پلیس ہولڈربات چیت کو متحرک ہونے دیں، جس میں چیٹ کی سرگزشت جیسے عناصر شامل ہوں۔

اس مثال میں جن اہم مسائل پر توجہ دی گئی ہے وہ ہے Langchain ایجنٹ کے آؤٹ پٹ پارس کے ارد گرد نقص کو سنبھالنا۔ خرابی کا پیغام "ToolCallingAgentOutputParser پر parseResult صرف ChatGeneration آؤٹ پٹ پر کام کرتا ہے" پارسر کے ذریعہ متوقع آؤٹ پٹ کی قسم اور پیدا کردہ اصل آؤٹ پٹ کے درمیان مماثلت سے پیدا ہوتا ہے۔ اس غلطی کو سنبھالنے کے لیے، کسٹم ٹول کو مضبوط منطق میں لپیٹا جاتا ہے، اس بات کو یقینی بناتے ہوئے کہ تمام ان پٹ اور آؤٹ پٹ متوقع فارمیٹس کے مطابق ہوں۔ اس کا مزید انتظام کے ذریعے کیا جاتا ہے۔ ایجنٹ ایگزیکیٹر کلاس، جو ایجنٹ اور ٹولز کے عمل کو مربوط کرتا ہے، اس بات کو یقینی بناتا ہے کہ استفسار اور ٹول آؤٹ پٹ مناسب طریقے سے ہم آہنگ ہوں۔

آخر میں، اسکرپٹس کا استعمال کرتے ہوئے غیر مطابقت پذیر عمل درآمد کرتے ہیں انتظار کرو, نظام کو دوسرے عمل کو مسدود کیے بغیر آپریشنز کو سنبھالنے کی اجازت دیتا ہے۔ ایجنٹ آگے بڑھنے سے پہلے ٹول کے اپنا نتیجہ واپس کرنے کا انتظار کرتا ہے، اس بات کو یقینی بناتے ہوئے کہ جواب درست اور بروقت ہے۔ مزید برآں، ٹول کی فعالیت کی توثیق کرنے کے لیے یونٹ ٹیسٹ شامل کیے جاتے ہیں، اس بات کو یقینی بناتے ہوئے کہ یہ مستقل طور پر درست آؤٹ پٹ پیدا کرتا ہے۔ یہ ٹیسٹ نہ صرف ٹول کے ریاضیاتی عمل کی تصدیق کرتے ہیں بلکہ یہ بھی چیک کرتے ہیں کہ یہ غلط ان پٹ کو کتنی اچھی طرح سے ہینڈل کرتا ہے، جس سے حل کی مجموعی وشوسنییتا بہتر ہوتی ہے۔ یہ ماڈیولر اور غلطی سے بچنے والا ڈیزائن اسکرپٹ کو Langchain.js کے اندر مختلف ایپلی کیشنز کے لیے دوبارہ قابل استعمال اور موثر بناتا ہے۔

ماڈیولر اپروچ کے ساتھ Langchain.js کی خرابی کو ٹھیک کرنا

حل 1: Langchain.js اور Ollama LLM کا استعمال کرتے ہوئے ماڈیولر اپروچ اور ایرر ہینڈلنگ کے ساتھ JavaScript

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 کے ساتھ کام کرتے وقت، انضمام ایجنٹس اولاما جیسے ٹولز اور لینگویج ماڈلز کے ساتھ متحرک ایپلی کیشنز کی تعمیر کا ایک اہم پہلو ہے۔ ایک ایجنٹ آپ کو ایک حسب ضرورت ٹول، جو مخصوص کام انجام دیتا ہے، کو زبان کے ماڈل سے جوڑنے کی اجازت دیتا ہے، جو زیادہ بات چیت یا تخلیقی کاموں کو سنبھالتا ہے۔ ایجنٹوں کا استعمال کرتے ہوئے، ڈویلپر ورک فلو کو خودکار کر سکتے ہیں جہاں ایک ماڈل نہ صرف ردعمل پیدا کرتا ہے بلکہ حساب کتاب یا ڈیٹا پروسیسنگ کرنے کے لیے ٹولز کو بھی طلب کرتا ہے۔

اس انضمام میں کلیدی جزو ہے۔ تخلیق ٹول کالنگ ایجنٹ فنکشن یہ فنکشن ایجنٹ کو ضرورت پڑنے پر مخصوص ٹولز کو متحرک کرنے دیتا ہے، اس بات کو یقینی بناتا ہے کہ کام درست اور مؤثر طریقے سے مکمل ہوں۔ اگرچہ بنیادی توجہ اکثر ٹول خود بنانے پر ہوتی ہے، لیکن یہ سمجھنا کہ ایجنٹ کے ورک فلو کو کیسے منظم کیا جائے اور غلطیوں کو پارس کرنے سے بچنا بھی اتنا ہی اہم ہے۔ "ToolCallingAgentOutputParser پر parseResult صرف ChatGeneration آؤٹ پٹ پر کام کرتا ہے" جیسی خرابیاں عام طور پر اس وقت ہوتی ہیں جب ایجنٹ کا آؤٹ پٹ پارسنگ سسٹم کے ساتھ مطابقت نہیں رکھتا، ایجنٹ کے آؤٹ پٹ اور متوقع فارمیٹ کے درمیان مناسب سیدھ کی ضرورت کو اجاگر کرتا ہے۔

پرامپٹ ٹیمپلیٹس کا استعمال، جیسے ChatPromptTemplateمتحرک پیغامات اور سیاق و سباق کے پلیس ہولڈرز کی اجازت دے کر تعامل کو مزید تقویت بخشتا ہے۔ یہ ایجنٹ کو چیٹ کی تاریخ یا ایجنٹ کے سکریچ پیڈ کی بنیاد پر اپنے جوابات کو ایڈجسٹ کرنے کی اجازت دیتا ہے۔ پرامپٹ ٹیمپلیٹس کو بہتر بنانا اور ایجنٹ کے آؤٹ پٹس کو درست طریقے سے پارس کرنے کو یقینی بنانا آپ کی Langchain.js ایپلی کیشنز کو زیادہ قابل اعتماد اور موثر بناتے ہوئے بہت سی عام غلطیوں کو روک سکتا ہے۔

Langchain.js، ایجنٹس اور ٹولز کے بارے میں اکثر پوچھے گئے سوالات

  1. Langchain.js میں ایجنٹ کیا ہے؟
  2. ایجنٹ ایک ایسا جزو ہوتا ہے جو صارف کے استفسار کی بنیاد پر مخصوص کام انجام دینے کے لیے ٹولز اور زبان کے ماڈلز کے ساتھ تعامل کرتا ہے۔ یہ استعمال کرتا ہے۔ createToolCallingAgent ٹولز کو متحرک کرنے کا فنکشن۔
  3. آپ "ToolCallingAgentOutputParser پر parseResult" کی غلطی کو کیسے حل کرتے ہیں؟
  4. یہ خرابی اس وقت ہوتی ہے جب ایجنٹ کا آؤٹ پٹ پارسر سے مطابقت نہ رکھتا ہو۔ یقینی بنائیں کہ آؤٹ پٹ اس سے میل کھاتا ہے جس کی تجزیہ کار کی توقع ہے اور a کا استعمال کریں۔ ChatGeneration آؤٹ پٹ فارمیٹ
  5. کا مقصد کیا ہے AgentExecutor?
  6. دی AgentExecutor ایجنٹ اور اس کے ٹولز کے عمل کو منظم کرتا ہے، جس سے آپ Langchain.js ایپلی کیشنز میں پیچیدہ ورک فلو چلا سکتے ہیں۔
  7. کیسے کرتا ہے ChatPromptTemplate کام
  8. ChatPromptTemplate چیٹ پیغامات کو منظم شکل میں ترتیب دیتا ہے، جس سے متحرک مواد جیسے کہ چیٹ کی سرگزشت اور ایجنٹ سکریچ پیڈ کو گفتگو کے بہاؤ میں داخل کیا جا سکتا ہے۔
  9. کیوں ہے Zod آلے میں استعمال کیا جاتا ہے؟
  10. Zod ان پٹ کی توثیق کے لیے استعمال کیا جاتا ہے، اس بات کو یقینی بناتے ہوئے کہ کسٹم ٹول کا ان پٹ صحیح قسم کا ہے (مثلاً ایک نمبر)، جس سے غلطیوں کے امکانات کم ہو جاتے ہیں۔

Langchain.js میں خرابی سے نمٹنے کے بارے میں حتمی خیالات

"ToolCallingAgentOutputParser پر parseResult صرف ChatGeneration آؤٹ پٹ پر کام کرتا ہے" کو حل کرنے کے لیے آپ کے ایجنٹ کے آؤٹ پٹ اور اس کی تجزیہ کی توقعات کے درمیان محتاط صف بندی کی ضرورت ہوتی ہے۔ صحیح نقطہ نظر کے ساتھ، اس غلطی سے بچا جا سکتا ہے.

توثیق کے لیے Zod جیسے مناسب ٹولز کا استعمال کرتے ہوئے اور اس بات کو یقینی بنانے کے لیے کہ ایجنٹس، جیسے کہ اولاما کے ساتھ بنائے گئے، ان پٹ اور آؤٹ پٹس کو صحیح طریقے سے ہینڈل کرتے ہیں، آپ Langchain.js میں تجزیہ کے مسائل کا سامنا کیے بغیر مضبوط حل تشکیل دے سکتے ہیں۔

Langchain.js ایرر ریزولوشن کے لیے ذرائع اور حوالہ جات
  1. سرکاری Langchain دستاویزات کی وضاحت کرتا ہے، جو ٹول کی تخلیق اور ایجنٹ کی تشکیل کے بارے میں بصیرت فراہم کرتا ہے۔ Langchain دستاویزی اندر.
  2. مزید ان پٹ کی توثیق کے لیے Zod کے استعمال اور Langchain.js میں اس کے اطلاق کی وضاحت کرتا ہے۔ زوڈ دستاویزات اندر.
  3. اولاما زبان کے ماڈل اور کسٹم ایجنٹس کے اندر اس کے نفاذ کی وضاحت کرتا ہے۔ علامہ ایل ایل ایم اندر.