1. LLM کی تعارف

بڑے زبان ماڈلز (LLMs) LangChain کے اہم حصے ہیں۔ LangChain خود بڑے زبان ماڈل کی خصوصیات فراہم نہیں کرتا ہے؛ بلکہ یہ مختلف عوامی بڑے زبان ماڈل کو احاطہ کرتا ہے اور بڑے زبان ماڈلز کو استعمال کرنے کے لئے ایک معیاری انٹرفیس فراہم کرتا ہے، جس کی بنا پر ڈویلپرز کے لیے آسانی ہو جاتی ہے۔

اب تک، LangChain نے بہت سے بڑے زبان ماڈلز کو احاطہ کیا ہے اور اس کے ساتھ ساتھ کسٹم ماڈلز کو بھی سپورٹ کرتا ہے۔ ڈویلپرز اپنے خود کے نئے ماڈل انٹرفیس کو احاطہ کرسکتے ہیں۔

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

2. ترتیب

2.1 انسٹالیشن

LangChain میں OpenAI LLM استعمال کرنے کے لئے، صارفین کو مندرجہ ذیل کمانڈ چلانے سے OpenAI Python پیکیج انسٹال کرنا ہوگا:

pip install openai

2.2 API کی ترتیب دیں

OpenAI API تک رسائی حاصل کرنے کے لئے، ایک API کی کی ضرورت ہوتی ہے، جو OpenAI پلیٹ فارم پر اکاؤنٹ بنا کر حاصل کیا جا سکتا ہے۔ جب API کی حاصل ہوجاتی ہے، تو یہ زیریں دی گئی کمانڈ کو استعمال کرکے ماحولی متغیر کے طور پر سیٹ کی جا سکتی ہے:

export OPENAI_API_KEY="آپ کا-api-کی"

یا تو، اگر آپ محیطی متغیر سیٹ نہیں کرنا چاہتے، تو آپ اوپنAI LLM کلاس کو شروع کرتے وقت API کی کی خود گزارش کرسکتے ہیں، جیسا کہ مندرجہ ذیل ہے:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="آپ کا-api-کی")

3. LCEL نافذ کارنامہ

LangChain میں، LLMs LangChain ایکسپریشن لینگویج (LCEL) کے لیے رننگل انٹرفیس نافذ کرتے ہیں۔ اس کا مطلب یہ ہے کہ یہ ان کو مختلف فرمانوں جیسے کہ invoke، stream، batch، اور دیگر کی مختلف فنکشن کالز کا سپورٹ کرتے ہیں۔

LLMs سٹرنگ ان پٹ یا وہ اشیاء جو ایک سٹرنگ پرمپٹ میں مجبور ہو سکتے ہیں، جیسے کہ List[BaseMessage] اور PromptValue کو قبول کرتے ہیں۔

4. LLM استعمال کی مثال

4.1 دعوت

ایک مخصوص پرمپٹ کے ساتھ LLM کو دعوت دینے کے لئے، invoke فنکشن کا استعمال کیا جا سکتا ہے، جیسا کہ نیچے دکھایا گیا ہے:

llm.invoke("یہاں ایل ایل ایم کے لئے ایک پرمپٹ فراہم کریں")

4.2 سٹریمنگ

LLM سے حقیقت میں وقت پر متن کو حاصل کرنے اور پروسیسنگ کے طریقہ کو سٹریمنگ کہتے ہیں۔ نیچے ایل ایل ایم کو سٹریمنگ پروسیسنگ کے لئے ایک مثال دی گئی ہے:

llm.stream("یہاں ایل ایل ایم کے لئے سٹریمنگ کا پرمپٹ فراہم کریں"):
    print(chunk, end="", flush=True)

4.3 بیچ پروسیسنگ

بیچ پروسیسنگ بڑے زبان ماڈلز کے لئے متعدد داخلیات کے متوازی پروسیسنگ کی اجازت دیتا ہے۔ آپ ایسے بیچ کو درج ذیل طریقے سے پروسیس کرسکتے ہیں:

llm.batch(["پرمپٹ 1", "پرمپٹ 2", "پرمپٹ 3"])

4.4 غیر متزامن عمل

بہتر کارکردگی کیلئے، غیر متزامن عملوں کا استعمال LLM کے ساتھ کیا جاسکتا ہے۔ غیر متزامن عملوں میں ainvoke، astream، abatch، اور astream_log جیسے غیر متزامن ایکشنز شامل ہیں۔ مندرجہ ذیل مثال میں ایل ایل ایم کو غیر متزامن سٹریمنگ پروسیسنگ کے لئے استعمال کرنے کا طریقہ دکھایا گیا ہے:

async for chunk in llm.astream("یہاں ایل ایل ایم کے لئے غیر متزامن سٹریمنگ کا پرمپٹ فراہم کریں"):
    print(chunk, end="", flush=True)

یہ مثالیں درست طریقوں کو ظاہر کرتی ہیں جو LangChain فریم ورک کے اندر طبیعی زبان کی پروسیسنگ ٹاسکس کے لئے LLMs کا استفادہ کرنے کے مختلف طریقوں کو ظاہر کرتی ہیں۔