Kubatanidza RAG (Kudzoreredza-Yakawedzerwa Chizvarwa) neYazvino Webhu Zvimiro: A Inoshanda Guide. | B4N1

Kubatanidza RAG (Kudzoreredza-Yakawedzerwa Chizvarwa) neYazvino Webhu Zvimiro: A Inoshanda Guide.

9 months ago · b4n1 Read time: 3 min

** Kubatanidza RAG (Kudzoreredza-Yakawedzerwa Chizvarwa) neMamanje Web Frameworks: A Inoshanda Guide**

Introduction

Mumakore achangopfuura, munda weNatural Language Processing (NLP) wakaona kuwedzera kwakakosha mukuvandudzwa kweLarge Language Models (LLMs) uye mashandisiro avo munzvimbo dzakasiyana siyana. Nekudaro, chimwe chezvipimo zvikuru zveLLMs kusakwanisa kudzoreredza nekubatanidza ruzivo rwekunze mumhinduro dzavo. Apa ndipo panopinda maitiro ekudzoreredza-Augmented Generation (RAG). Muchikamu chino, tichaongorora kushandiswa kweRAG maitiro ekushandisa FastAPI uye Django kusimudzira LLM hunyanzvi mumashandisirwo ewebhu, kusanganisira orchestration neLangChain yekudzoreredza data uye kugadzirisa.

Chii chinonzi RAG?

RAG inyanzvi inosanganisa masimba eKudzosa uye Mamodheru eGeneration kuti ibudise mhinduro dzakarurama uye dzine ruzivo. Pfungwa yekutanga kuseri kweRAG ndeyekutanga kutora ruzivo rwakakodzera kubva kune ruzivo kana dhatabhesi, wozoshandisa ruzivo urwu kuburitsa mhinduro. Iyi nzira inobvumira maLLM kuti awedzere ruzivo rwekunze uye kupa mhinduro dzakarurama uye dzine ruzivo.

Nei Uchishandisa RAG neFastAPI uye Django?

FastAPI uye Django ndiwo maviri eanonyanya kufarirwa ewebhu masisitimu anoshandiswa pakuvaka mawebhu application. Ivo vanopa yakasimba uye scalable zvivakwa zvekuvaka webhu maapplication, uye anogona kubatanidzwa zviri nyore neRAG matekiniki ekusimudzira kugona kweLLM. FastAPI inzira yemazuva ano yewebhu inopa nzira inokurumidza uye inoshanda yekuvaka mawebhusaiti, nepo Django iri yepamusoro-soro yewebhu dhizaini inopa dhizaini, matemplate, uye maAPI ekuvaka akasimba ewebhu maapplication.

Kushandisa RAG ne FastAPI

FastAPI inopa nzira iri nyore uye inoshanda yekushandisa RAG maitiro. Heino muenzaniso kodhi block inoratidza mashandisiro eFastAPI kuita RAG:

kubva fastapi pinza FastAPI
kubva ku langchain import LLMChain
kubva ku langchain.chains.openai import OpenAIApi

app = FastAPI ()

@app.get("/rag")
async def rag (mubvunzo: str):
    
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        kutora=LangChainRetrieval(
            index=LangChaindex(
                zita = "index_yangu",
                zvinyorwa="doc1", "doc2", "doc3"]
            )
        )
    )

    # Gadzira mhinduro uchishandisa iyo LLM ketani
    mhinduro = llm_chain.run(mubvunzo)

    dzorera {"mhinduro": mhinduro}

Mumuenzaniso uyu, tinotsanangura cheni yeLLM tichishandisa iyo LLMChain kirasi kubva kuLangChain. Isu tinozotsanangura chikamu chekutora tichishandisa kirasi ye LangChainRetrieval, iyo inoshandiswa kutora ruzivo rwakakodzera kubva kune ruzivo kana dhatabhesi. Chekupedzisira, tinoshandisa nzira ye run kugadzira mhinduro tichishandisa ketani yeLLM.

**Kuita RAG neDjango **

Django inopa yakakwira-level web framework iyo inogona kubatanidzwa nyore nyore neRAG maitiro. Heino muenzaniso kodhi block inoratidza mashandisiro eDjango kuita RAG:

kubva django.http import JsonResponse
kubva ku langchain import LLMChain
kubva ku langchain.chains.openai import OpenAIApi

def rag (chikumbiro):
    # Tsanangura iyo LLM ketani
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        kutora=LangChainRetrieval(
            index=LangChaindex(
                zita = "index_yangu",
                zvinyorwa="doc1", "doc2", "doc3"]
            )
        )
    )

    # Gadzira mhinduro uchishandisa iyo LLM ketani
    mhinduro = llm_chain.run(request.GET.get("query"))

    return JsonResponse({"mhinduro": mhinduro})

Mumuenzaniso uyu, tinotsanangura basa rekuona rag rinotora mubvunzo sekuisa uye rinoburitsa mhinduro uchishandisa ketani yeLLM.

Kuronga RAG neLangChain

LangChain inopa iri nyore uye inoshanda nzira yekuronga RAG matekiniki. Heino muenzaniso kodhi block inoratidza mashandisiro eLangChain kuronga RAG:

kubva ku langchain import LLMChain
kubva ku langchain.chains.openai import OpenAIApi

# Tsanangura iyo LLM ketani
llm_chain = LLMChain(
    llm=OpenAIApi(),
    kutora=LangChainRetrieval(
        index=LangChaindex(
            zita = "index_yangu",
            zvinyorwa="doc1", "doc2", "doc3"]
        )
    )
)

# Gadzira mhinduro uchishandisa iyo LLM ketani
mhinduro = llm_chain.run("Chii chinonzi RAG?")

dhinda(mhinduro)

Mumuenzaniso uyu, tinotsanangura cheni yeLLM tichishandisa iyo LLMChain kirasi kubva kuLangChain. Isu tinobva tashandisa nzira ye run kugadzira mhinduro tichishandisa ketani yeLLM.

Pamusoro 5-10 Inonyanya Kushandiswa Mirairo/Zvidimbu

Heano epamusoro 5-10 anonyanya kushandiswa mirairo / zvimedu zvekushandisa RAG neFastAPI uye Django:

  1. kubva ku langchain import LLMChain: Pinza iyo LLMChain kirasi kubva kuLangChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(zita="my_index", documents=["doc1", "doc2", "doc3"]))): Tsanangura cheni yeLLM uchishandisa LLMChain kirasi.
  3. response = llm_chain.run(mubvunzo): Gadzira mhinduro uchishandisa cheni yeLLM.
  4. kubva ku fastapi import FastAPI: Ngenisa iyo FastAPI kirasi kubva FastAPI.
  5. app = FastAPI (): Tsanangura purogiramu yeFastAPI.
  6. @app.get("/rag"): Tsanangura nzira yeRAG yekugumisira.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(zita="my_index", documents=["doc1", "doc2", "doc3"]))): Tsanangura cheni yeLLM uchishandisa LLMChain kirasi.
  8. response = llm_chain.run(mubvunzo): Gadzira mhinduro uchishandisa cheni yeLLM.
  9. kubva kudjango.http pinza JsonResponse: Pinza iyo JsonResponse kirasi kubva kuDjango.
  10. dzorera JsonResponse({"mhinduro": mhinduro}): Dzosa mhinduro yeJSON nemhinduro yakagadzirwa.

Kuona

Heino tarisiro yepombi yeRAG uchishandisa Chart.js:

{
  "type": "horizontalBar",
  "data": {
    "labels": ["Kudzosa", "Generation", "Post-processing"],
    "datasets": [
      {
        "label": "RAG Pipeline",
        "data": [10, 20, 30],
        "backgroundColor": [
          "rgba(255, 99, 132, 0.2)",
          "rgba(54, 162, 235, 0.2)",
          "rgba(255, 206, 86, 0.2)"
        ],
        "borderColor": [
          "rgba(255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)",
          "rgba(255, 206, 86, 1)"
        ],
        "borderWidth": 1
      }
    ]
  },
  "sarudzo": {
    "zita": {
      "kuratidza": chokwadi,
      "text": "RAG Pipeline"
    },
    "zvikero": {
      "yAxes": [
        {
          "zvikwekwe": {
            "beginAtZero": chokwadi
          }
        }
      ]
    }
  }
}

Kuona uku kunoratidza pombi yeRAG ine matanho matatu: kudzoreredza, chizvarwa, uye post-kugadzirisa.

Mhedziso

Muchikamu chino, takaongorora kushandiswa kweRAG maitiro ekushandisa FastAPI neDjango kusimudzira LLM hunyanzvi mumashandisirwo ewebhu, kusanganisira orchestration neLangChain yekudzoreredza data uye kugadzirisa. Isu takapawo gwara rinoshanda rekushandisa RAG neFastAPI neDjango, kusanganisira mienzaniso yekodhi uye kuratidzwa kwepombi yeRAG. Tinovimba kuti chinyorwa ichi chapa chishandiso chinobatsira kune vanogadzira vanotarisa kushandisa RAG matekiniki mumawebhu maapplication avo.


Have Questions?

Let's Talk

Contact me on LinkedIn