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

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

9 months ago · b4n1 Read time: 4 min

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

परिचय

अलिकडच्या वर्षांत, नॅचरल लँग्वेज प्रोसेसिंग (NLP) च्या क्षेत्रात मोठ्या भाषेच्या मॉडेल्स (LLM) आणि विविध डोमेनमधील त्यांच्या अनुप्रयोगांच्या विकासामध्ये लक्षणीय वाढ झाली आहे. तथापि, LLM च्या प्रमुख मर्यादांपैकी एक म्हणजे त्यांच्या प्रतिसादांमध्ये बाह्य ज्ञान पुनर्प्राप्त करण्यात आणि समाविष्ट करण्यात त्यांची असमर्थता. इथेच रिट्रीव्हल-ऑगमेंटेड जनरेशन (RAG) तंत्रे लागू होतात. या लेखात, आम्ही वेब ॲप्लिकेशन्समध्ये LLM क्षमता वाढवण्यासाठी फास्टएपीआय आणि जँगो वापरून RAG तंत्रांची अंमलबजावणी एक्सप्लोर करू, ज्यामध्ये अखंड डेटा पुनर्प्राप्ती आणि प्रक्रिया करण्यासाठी LangChain सह ऑर्केस्ट्रेशन समाविष्ट आहे.

RAG म्हणजे काय?

RAG हे एक तंत्र आहे जे अधिक अचूक आणि माहितीपूर्ण प्रतिसाद देण्यासाठी पुनर्प्राप्ती आणि जनरेशन मॉडेल्सची ताकद एकत्र करते. RAG ची मूळ कल्पना ही आहे की प्रथम ज्ञान बेस किंवा डेटाबेसमधून संबंधित माहिती पुनर्प्राप्त करणे आणि नंतर प्रतिसाद निर्माण करण्यासाठी ही माहिती वापरणे. हा दृष्टिकोन LLM ला बाह्य ज्ञानाचा लाभ घेण्यास आणि अधिक अचूक आणि माहितीपूर्ण प्रतिसाद प्रदान करण्यास अनुमती देतो.

फास्टएपीआय आणि जँगोसह आरएजी का वापरावे?

फास्टएपीआय आणि जँगो हे वेब ॲप्लिकेशन तयार करण्यासाठी वापरले जाणारे दोन सर्वात लोकप्रिय वेब फ्रेमवर्क आहेत. ते वेब ॲप्लिकेशन्स तयार करण्यासाठी एक मजबूत आणि स्केलेबल इन्फ्रास्ट्रक्चर प्रदान करतात आणि LLM क्षमता वाढवण्यासाठी RAG तंत्रांसह सहजपणे एकत्रित केले जाऊ शकतात. FastAPI हे एक आधुनिक वेब फ्रेमवर्क आहे जे वेब ऍप्लिकेशन्स तयार करण्यासाठी एक जलद आणि कार्यक्षम मार्ग प्रदान करते, तर Django एक उच्च-स्तरीय वेब फ्रेमवर्क आहे जे मजबूत वेब ऍप्लिकेशन्स तयार करण्यासाठी आर्किटेक्चर, टेम्पलेट्स आणि API प्रदान करते.

फास्टएपीआय सह RAG ची अंमलबजावणी करणे

फास्टएपीआय RAG तंत्रांची अंमलबजावणी करण्याचा एक सोपा आणि कार्यक्षम मार्ग प्रदान करते. येथे एक उदाहरण कोड ब्लॉक आहे जो RAG ची अंमलबजावणी करण्यासाठी FastAPI कसे वापरावे हे दर्शवितो:

``अजगर फास्टएपीआय वरून फास्टएपीआय आयात करा langchain आयात LLMCchain कडून langchain.chains.openai वरून OpenAIApi आयात करा

ॲप = फास्टएपीआय()

@app.get("/rag") async def rag(क्वेरी: str):

llm_chain = LLMCchain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        index=LangChainIndex(
            name="my_index",
            दस्तऐवज=["doc1", "doc2", "doc3"]
        )
    )
)

# LLM चेन वापरून प्रतिसाद निर्माण करा
प्रतिसाद = llm_chain.run(क्वेरी)

परत करा {"प्रतिसाद": प्रतिसाद}

या उदाहरणात, आम्ही LangChain मधील `LLMChain` वर्ग वापरून LLM चेन परिभाषित करतो. त्यानंतर आम्ही `LangChainRetrieval` वर्ग वापरून पुनर्प्राप्ती घटक परिभाषित करतो, जो ज्ञान बेस किंवा डेटाबेसमधून संबंधित माहिती पुनर्प्राप्त करण्यासाठी वापरला जातो. शेवटी, आम्ही LLM चेन वापरून प्रतिसाद निर्माण करण्यासाठी `रन` पद्धत वापरतो.

**जँगोसह RAG ची अंमलबजावणी करणे**


Django एक उच्च-स्तरीय वेब फ्रेमवर्क प्रदान करते जे RAG तंत्रांसह सहजपणे एकत्रित केले जाऊ शकते. येथे एक उदाहरण कोड ब्लॉक आहे जे RAG लागू करण्यासाठी Django कसे वापरायचे ते दाखवते:

``अजगर
django.http वरून JsonResponse आयात करा
langchain आयात LLMCchain कडून
langchain.chains.openai वरून OpenAIApi आयात करा

def rag(विनंती):
    # LLM चेन परिभाषित करा
    llm_chain = LLMCchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                name="my_index",
                दस्तऐवज=["doc1", "doc2", "doc3"]
            )
        )
    )

    # LLM चेन वापरून प्रतिसाद निर्माण करा
    प्रतिसाद = llm_chain.run(request.GET.get("query"))

    JsonResponse ({"response": response}) परत करा

या उदाहरणात, आम्ही व्ह्यू फंक्शन rag परिभाषित करतो जे इनपुट म्हणून क्वेरी घेते आणि LLM चेन वापरून प्रतिसाद निर्माण करते.

लँगचेनसह आरएजी ऑर्केस्ट्रेट करणे

LangChain RAG तंत्रे ऑर्केस्ट्रेट करण्याचा एक सोपा आणि कार्यक्षम मार्ग प्रदान करते. येथे एक उदाहरण कोड ब्लॉक आहे जे RAG ऑर्केस्ट्रेट करण्यासाठी LangChain कसे वापरायचे हे दर्शवते:

``अजगर langchain आयात LLMCchain कडून langchain.chains.openai वरून OpenAIApi आयात करा

LLM चेन परिभाषित करा

llm_chain = LLMCchain( llm=OpenAIApi(), retrieval=LangChainRetrieval( index=LangChainIndex( name="my_index", दस्तऐवज=["doc1", "doc2", "doc3"] ) ) )

LLM चेन वापरून प्रतिसाद निर्माण करा

प्रतिसाद = llm_chain.run("RAG म्हणजे काय?")

मुद्रित (प्रतिसाद)


या उदाहरणात, आम्ही LangChain मधील `LLMChain` वर्ग वापरून LLM चेन परिभाषित करतो. त्यानंतर आम्ही LLM चेन वापरून प्रतिसाद निर्माण करण्यासाठी `रन` पद्धत वापरतो.

**टॉप ५-१० सर्वाधिक वापरलेले कमांड/स्निपेट**


फास्टएपीआय आणि जँगोसह आरएजी लागू करण्यासाठी येथे शीर्ष 5-10 सर्वात जास्त वापरल्या जाणाऱ्या कमांड/स्निपेट्स आहेत:

1. `लँगचेन इंपोर्ट एलएलएमचेन’: लँगचेन वरून `एलएलएमचेन` क्लास इंपोर्ट करा.
2. `llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"])))`: `LLM चा क्लास` वापरून LLM चेन परिभाषित करा.
3. `response = llm_chain.run(query)`: LLM चेन वापरून प्रतिसाद निर्माण करा.
4. फास्टएपीआय वरून फास्टएपीआय आयात करा: फास्टएपीआय वरून फास्टएपीआय क्लास इंपोर्ट करा.
5. `app = FastAPI()`: FastAPI अनुप्रयोग परिभाषित करा.
6. `@app.get("/rag")`: RAG एंडपॉइंटसाठी मार्ग परिभाषित करा.
7. `llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"])))`: `LLM चा क्लास` वापरून LLM चेन परिभाषित करा.
8. `response = llm_chain.run(query)`: LLM चेन वापरून प्रतिसाद निर्माण करा.
9. `from django.http आयात JsonResponse`: Django वरून `JsonResponse` वर्ग आयात करा.
10. `return JsonResponse({"response": response})`: व्युत्पन्न केलेल्या प्रतिसादासह JSON प्रतिसाद परत करा.

**व्हिज्युअलायझेशन**


Chart.js वापरून RAG पाइपलाइनचे व्हिज्युअलायझेशन येथे आहे:

``json
{
  "प्रकार": "क्षैतिज पट्टी",
  "डेटा": {
    "labels": ["पुनर्प्राप्ती", "जनरेशन", "पोस्ट-प्रोसेसिंग"],
    "डेटासेट": [
      {
        "label": "RAG पाइपलाइन",
        "डेटा": [१०, २०, ३०],
        "backgroundcolor": [
          "rgba(255, 99, 132, 0.2)",
          "rgba(54, 162, 235, 0.2)",
          "rgba(255, 206, 86, 0.2)"
        ],
        "बॉर्डर कलर": [
          "rgba(255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)",
          "rgba(255, 206, 86, 1)"
        ],
        "बॉर्डर रुंदी": 1
      }
    ]
  },
  "पर्याय": {
    "शीर्षक": {
      "डिस्प्ले": खरे,
      "text": "RAG पाइपलाइन"
    },
    "स्केल्स": {
      "yAxes": [
        {
          "ticks": {
            "beginAtZero": खरे
          }
        }
      ]
    }
  }
}

हे व्हिज्युअलायझेशन RAG पाइपलाइन तीन टप्प्यांसह दाखवते: पुनर्प्राप्ती, निर्मिती आणि पोस्ट-प्रोसेसिंग.

निष्कर्ष

या लेखात, आम्ही वेब ॲप्लिकेशन्समध्ये LLM क्षमता वाढवण्यासाठी फास्टएपीआय आणि जँगो वापरून आरएजी तंत्रांची अंमलबजावणी एक्सप्लोर केली आहे, ज्यामध्ये अखंड डेटा पुनर्प्राप्ती आणि प्रक्रिया करण्यासाठी LangChain सह ऑर्केस्ट्रेशन समाविष्ट आहे. आम्ही फास्टएपीआय आणि जँगोसह RAG लागू करण्यासाठी एक व्यावहारिक मार्गदर्शक देखील प्रदान केले आहे, ज्यामध्ये कोड उदाहरणे आणि RAG पाइपलाइनचे दृश्य समाविष्ट आहे. आम्हाला आशा आहे की या लेखाने त्यांच्या वेब ऍप्लिकेशन्समध्ये RAG तंत्र लागू करू पाहणाऱ्या विकासकांसाठी एक उपयुक्त संसाधन प्रदान केले आहे.


Have Questions?

Let's Talk

Contact me on LinkedIn