आधुनिक वेब फ्रेमवर्क के साथ आरएजी (पुनर्प्राप्ति-संवर्धित पीढ़ी) को एकीकृत करना: एक व्यावहारिक मार्गदर्शिका | B4N1

आधुनिक वेब फ्रेमवर्क के साथ आरएजी (पुनर्प्राप्ति-संवर्धित पीढ़ी) को एकीकृत करना: एक व्यावहारिक मार्गदर्शिका

9 months ago · b4n1 Read time: 5 min

आरएजी (पुनर्प्राप्ति-संवर्धित पीढ़ी) को आधुनिक वेब फ्रेमवर्क के साथ एकीकृत करना: एक व्यावहारिक मार्गदर्शिका

परिचय

हाल के वर्षों में, प्राकृतिक भाषा प्रसंस्करण (एनएलपी) के क्षेत्र में बड़े भाषा मॉडल (एलएलएम) के विकास और विभिन्न डोमेन में उनके अनुप्रयोगों में महत्वपूर्ण वृद्धि देखी गई है। हालाँकि, एलएलएम की प्रमुख सीमाओं में से एक उनकी प्रतिक्रियाओं में बाहरी ज्ञान को पुनः प्राप्त करने और शामिल करने में असमर्थता है। यहीं पर रिट्रीवल-ऑगमेंटेड जेनरेशन (आरएजी) तकनीक चलन में आती है। इस लेख में, हम वेब अनुप्रयोगों में एलएलएम क्षमताओं को बढ़ाने के लिए फास्टएपीआई और डीजेंगो का उपयोग करके आरएजी तकनीकों के कार्यान्वयन का पता लगाएंगे, जिसमें निर्बाध डेटा पुनर्प्राप्ति और प्रसंस्करण के लिए लैंगचेन के साथ ऑर्केस्ट्रेशन भी शामिल है।

आरएजी क्या है?

आरएजी एक ऐसी तकनीक है जो अधिक सटीक और सूचनात्मक प्रतिक्रियाएँ उत्पन्न करने के लिए पुनर्प्राप्ति और पीढ़ी मॉडल की शक्तियों को जोड़ती है। आरएजी के पीछे मूल विचार यह है कि पहले ज्ञान आधार या डेटाबेस से प्रासंगिक जानकारी प्राप्त की जाए, और फिर प्रतिक्रिया उत्पन्न करने के लिए इस जानकारी का उपयोग किया जाए। यह दृष्टिकोण एलएलएम को बाहरी ज्ञान का लाभ उठाने और अधिक सटीक और सूचनात्मक प्रतिक्रियाएँ प्रदान करने की अनुमति देता है।

FastAPI और Django के साथ RAG का उपयोग क्यों करें?

फास्टएपीआई और डीजेंगो दो सबसे लोकप्रिय वेब फ्रेमवर्क हैं जिनका उपयोग वेब एप्लिकेशन बनाने के लिए किया जाता है। वे वेब अनुप्रयोगों के निर्माण के लिए एक मजबूत और स्केलेबल बुनियादी ढांचा प्रदान करते हैं, और एलएलएम क्षमताओं को बढ़ाने के लिए आरएजी तकनीकों के साथ आसानी से एकीकृत किया जा सकता है। फास्टएपीआई एक आधुनिक वेब फ्रेमवर्क है जो वेब एप्लिकेशन बनाने का तेज़ और कुशल तरीका प्रदान करता है, जबकि Django एक उच्च स्तरीय वेब फ्रेमवर्क है जो मजबूत वेब एप्लिकेशन बनाने के लिए आर्किटेक्चर, टेम्पलेट और एपीआई प्रदान करता है।

FASTAPI के साथ RAG का कार्यान्वयन

फास्टएपीआई आरएजी तकनीकों को लागू करने का एक सरल और कुशल तरीका प्रदान करता है। यहां एक उदाहरण कोड ब्लॉक है जो दर्शाता है कि RAG को लागू करने के लिए फास्टएपीआई का उपयोग कैसे करें:

फास्टएपीआई से फास्टएपीआई आयात करें
लैंगचेन से LLMChain आयात करें
langchan.chins.openai से OpenAIApi आयात करें

ऐप = फास्टएपीआई()

@app.get("/rag")
एसिंक डीईएफ़ रैग (क्वेरी: एसटीआर):
    
    एलएलएम_चेन = एलएलएमचेन(
        एलएलएम=OpenAIApi(),
        पुनर्प्राप्ति=LangChainRetrieval(
            सूचकांक=LangChainIndex(
                नाम = "my_index",
                दस्तावेज़=["doc1", "doc2", "doc3"]
            )
        )
    )

    # एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करें
    प्रतिक्रिया = llm_चेन.रन(क्वेरी)

    वापसी {"प्रतिक्रिया": प्रतिक्रिया}

इस उदाहरण में, हम लैंगचेन से एलएलएमचेन वर्ग का उपयोग करके एलएलएम श्रृंखला को परिभाषित करते हैं। फिर हम 'LangChainRetrieval' वर्ग का उपयोग करके एक पुनर्प्राप्ति घटक को परिभाषित करते हैं, जिसका उपयोग ज्ञान आधार या डेटाबेस से प्रासंगिक जानकारी प्राप्त करने के लिए किया जाता है। अंत में, हम एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करने के लिए रन विधि का उपयोग करते हैं।

Django के साथ RAG लागू करना

Django एक उच्च स्तरीय वेब ढांचा प्रदान करता है जिसे RAG तकनीकों के साथ आसानी से एकीकृत किया जा सकता है। यहां एक उदाहरण कोड ब्लॉक है जो दर्शाता है कि RAG को लागू करने के लिए Django का उपयोग कैसे करें:

django.http से JsonResponse आयात करें
लैंगचेन से LLMChain आयात करें
langchan.chins.openai से OpenAIApi आयात करें

डीईएफ़ रैग(अनुरोध):
    # एलएलएम श्रृंखला को परिभाषित करें
    एलएलएम_चेन = एलएलएमचेन(
        एलएलएम=OpenAIApi(),
        पुनर्प्राप्ति=LangChainRetrieval(
            सूचकांक=LangChainIndex(
                नाम = "my_index",
                दस्तावेज़=["doc1", "doc2", "doc3"]
            )
        )
    )

    # एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करें
    प्रतिक्रिया = llm_चेन.रन(request.GET.get("क्वेरी"))

    वापसी JsonResponse({"प्रतिक्रिया": प्रतिक्रिया})

इस उदाहरण में, हम एक व्यू फ़ंक्शन रैग को परिभाषित करते हैं जो एक क्वेरी को इनपुट के रूप में लेता है और एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करता है।

लैंगचेन के साथ ऑर्केस्ट्रेटिंग आरएजी

लैंगचेन आरएजी तकनीकों को व्यवस्थित करने का एक सरल और कुशल तरीका प्रदान करता है। यहां एक उदाहरण कोड ब्लॉक है जो दर्शाता है कि RAG को व्यवस्थित करने के लिए लैंगचेन का उपयोग कैसे करें:

लैंगचेन से LLMChain आयात करें
langchan.chins.openai से OpenAIApi आयात करें

# एलएलएम श्रृंखला को परिभाषित करें
एलएलएम_चेन = एलएलएमचेन(
    एलएलएम=OpenAIApi(),
    पुनर्प्राप्ति=LangChainRetrieval(
        सूचकांक=LangChainIndex(
            नाम = "my_index",
            दस्तावेज़=["doc1", "doc2", "doc3"]
        )
    )
)

# एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करें
प्रतिक्रिया = llm_चेन.रन("RAG क्या है?")

प्रिंट(प्रतिक्रिया)

इस उदाहरण में, हम लैंगचेन से एलएलएमचेन वर्ग का उपयोग करके एलएलएम श्रृंखला को परिभाषित करते हैं। फिर हम एलएलएम श्रृंखला का उपयोग करके प्रतिक्रिया उत्पन्न करने के लिए रन विधि का उपयोग करते हैं।

शीर्ष 5-10 सर्वाधिक प्रयुक्त कमांड/स्निपेट

यहां फास्टएपीआई और डीजेंगो के साथ आरएजी को लागू करने के लिए शीर्ष 5-10 सबसे अधिक उपयोग किए जाने वाले कमांड/स्निपेट हैं:

  1. लैंगचेन आयात एलएलएमचेन से: लैंगचेन से एलएलएमचेन वर्ग आयात करें।
  2. llm_चेन = LLMChain(llm=OpenAIApi(), पुनर्प्राप्ति=LangChainRetrieval(index=LangChainIndex(name='my_index', document=['doc1', 'doc2', 'doc3']))): LLMChain वर्ग का उपयोग करके LLM श्रृंखला को परिभाषित करें।
  3. प्रतिक्रिया = llm_चेन.रन(क्वेरी): एलएलएम श्रृंखला का उपयोग करके एक प्रतिक्रिया उत्पन्न करें।
  4. फास्टएपीआई से फास्टएपीआई आयात करें: फास्टएपीआई से फास्टएपीआई वर्ग को आयात करें।
  5. ऐप = फास्टएपीआई(): फास्टएपीआई एप्लिकेशन को परिभाषित करें।
  6. @app.get("/rag"): RAG समापन बिंदु के लिए एक मार्ग परिभाषित करें।
  7. llm_चेन = LLMChain(llm=OpenAIApi(), पुनर्प्राप्ति=LangChainRetrieval(index=LangChainIndex(name='my_index', document=['doc1', 'doc2', 'doc3']))): LLMChain वर्ग का उपयोग करके LLM श्रृंखला को परिभाषित करें।
  8. प्रतिक्रिया = llm_चेन.रन(क्वेरी): एलएलएम श्रृंखला का उपयोग करके एक प्रतिक्रिया उत्पन्न करें।
  9. django.http से JsonResponse आयात करें: Django से JsonResponse वर्ग को आयात करें।
  10. वापसी JsonResponse({"प्रतिक्रिया": प्रतिक्रिया}): उत्पन्न प्रतिक्रिया के साथ एक JSON प्रतिक्रिया लौटाएं।

विज़ुअलाइज़ेशन

यहां चार्ट.जेएस का उपयोग करके आरएजी पाइपलाइन का एक दृश्य दिया गया है:

{
  "प्रकार": "क्षैतिज पट्टी",
  "डेटा": {
    "लेबल": ["पुनर्प्राप्ति", "जनरेशन", "पोस्ट-प्रोसेसिंग"],
    "डेटासेट": [
      {
        "लेबल": "आरएजी पाइपलाइन",
        "डेटा": [10, 20, 30],
        "पृष्ठभूमि रंग": [
          "आरजीबीए(255, 99, 132, 0.2)",
          "आरजीबीए(54, 162, 235, 0.2)",
          "आरजीबीए(255, 206, 86, 0.2)"
        ],
        "सीमा रंग": [
          "आरजीबीए(255, 99, 132, 1)",
          "आरजीबीए(54, 162, 235, 1)",
          "आरजीबीए(255, 206, 86, 1)"
        ],
        "बॉर्डरविड्थ": 1
      }
    ]
  },
  "विकल्प": {
    "शीर्षक": {
      "प्रदर्शन": सत्य,
      "पाठ": "आरएजी पाइपलाइन"
    },
    "तराजू": {
      "yAxes": [
        {
          "टिक": {
            "beginAtZero": सत्य
          }
        }
      ]
    }
  }
}

यह विज़ुअलाइज़ेशन RAG पाइपलाइन को तीन चरणों के साथ दिखाता है: पुनर्प्राप्ति, पीढ़ी और पोस्ट-प्रोसेसिंग।

निष्कर्ष

इस लेख में, हमने वेब अनुप्रयोगों में एलएलएम क्षमताओं को बढ़ाने के लिए फास्टएपीआई और डीजेंगो का उपयोग करके आरएजी तकनीकों के कार्यान्वयन का पता लगाया, जिसमें निर्बाध डेटा पुनर्प्राप्ति और प्रसंस्करण के लिए लैंगचेन के साथ ऑर्केस्ट्रेशन भी शामिल है। हमने फास्टएपीआई और डीजेंगो के साथ आरएजी को लागू करने के लिए एक व्यावहारिक मार्गदर्शिका भी प्रदान की है, जिसमें कोड उदाहरण और आरएजी पाइपलाइन का विज़ुअलाइज़ेशन शामिल है। हमें उम्मीद है कि इस लेख ने उन डेवलपर्स के लिए एक उपयोगी संसाधन प्रदान किया है जो अपने वेब अनुप्रयोगों में आरएजी तकनीकों को लागू करना चाहते हैं।


Have Questions?

Let's Talk

Contact me on LinkedIn