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 कुंजी प्राप्त होती है, तो इसे निम्नलिखित कमांड का उपयोग करके एक environment variable के रूप में सेट किया जा सकता है:

export OPENAI_API_KEY="आपकी-एपीआई-कुंजी"

अन्यथा, यदि आप एक environment variable सेट करना नहीं चाहते, तो आप सीधे API कुंजी को बीतनुमां आरंभित करते समय भी पास कर सकते हैं, जैसा नीचे दिखाया गया है:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="आपकी-एपीआई-कुंजी")

3. LCEL कार्यान्वयन

LangChain में, LLMs LangChain व्यक्ति भाषा (LCEL) के लिए Runnable Interface को कार्यान्वित करते हैं। इसका अर्थ है कि इसी तरह के कई फ़ंक्शन कॉल, जैसे invoke, stream, batch, और बहुत कुछ का समर्थन करते हैं।

LLMs स्ट्रिंग इनपुट या स्ट्रिंग प्रॉम्प्ट में परिणित हो सकने वाले ऑब्जेक्ट, जैसे List[BaseMessage] और PromptValue को स्वीकार करते हैं।

4. LLM उपयोग का उदाहरण

4.1 आवाहन

लेखीपद के साथ एक विशिष्ट प्रोम्प्ट के साथ एक LLM को आवाहन करने के लिए, invoke फ़ंक्शन का उपयोग किया जा सकता है, जैसा नीचे दिखाया गया है:

llm.invoke("यहां LLM के लिए प्रोम्प्ट प्रदान करें")

4.2 स्ट्रीमिंग

LLM से वास्तविक समय में पाठ आउटपुट प्राप्त और प्रसंस्करण करने का तरीका, स्ट्रीमिंग कहलाता है। नीचे एक LLM का उपयोग स्ट्रीमिंग प्रसंस्करण के लिए है:

for chunk in llm.stream("LLM स्ट्रीमिंग के लिए प्रोम्प्ट प्रदान करें"):
    print(chunk, end="", flush=True)

4.3 बैच प्रसंस्करण

बैच प्रसंस्करण से LLMs के बहुत से इनपुटों के पारलेल प्रसंस्करण की अनुमति है। आप इस तरह से एक बैच प्रोम्प्ट का प्रसंस्करण कर सकते हैं:

llm.batch(["प्रोम्प्ट 1", "प्रोम्प्ट 2", "प्रोम्प्ट 3"])

4.4 असमंचित प्रक्रियाएँ

बेहतर कुशलता के लिए, असमंचित प्रक्रियाएँ LLMs के साथ उपयोग की जा सकती हैं। ainvoke, astream, abatch, और astream_log जैसे असमंचित प्रक्रियाओं का उपयोग असमंचित निष्पादन करते हैं। नीचे एक असमंचित स्ट्रीमिंग प्रसंस्करण के लिए LLM का उपयोग का उदाहरण है:

async for chunk in llm.astream("LLM स्ट्रीमिंग के लिए एक असमंचित प्रोम्प्ट प्रदान करें"):
    print(chunk, end="", flush=True)

ये उदाहरण LLMs को LangChain framework के भीतर प्राकृतिक भाषा प्रसंस्करण कार्यों के लिए उपयोग करने के विभिन्न तरीकों का प्रदर्शन करते हैं।