Haɗa RAG (Ƙara Ƙarfafa Ƙarfafawa) tare da Tsarukan Yanar Gizo na Zamani: Jagora Mai Kyau | B4N1

Haɗa RAG (Ƙara Ƙarfafa Ƙarfafawa) tare da Tsarukan Yanar Gizo na Zamani: Jagora Mai Kyau

9 months ago · b4n1 Read time: 5 min

** Haɗa RAG (Ƙara Ƙarfafawa) tare da Tsarukan Yanar Gizo na Zamani: Jagora Mai Aikata ***

** Gabatarwa ***

A cikin 'yan shekarun nan, fannin Gudanar da Harshen Halitta (NLP) ya shaida gagarumin haɓakar haɓakar Manyan Harsuna (LLMs) da aikace-aikacen su a wurare daban-daban. Koyaya, ɗayan manyan iyakoki na LLM shine rashin iyawarsu don dawo da haɗa ilimin waje a cikin martanin su. Wannan shi ne inda dabarun Maidowa-Augmented Generation (RAG) ke shiga cikin wasa. A cikin wannan labarin, za mu bincika aiwatar da dabarun RAG ta amfani da FastAPI da Django don haɓaka damar LLM a cikin aikace-aikacen yanar gizo, ciki har da ƙididdiga tare da LangChain don dawo da bayanan da ba su dace ba.

Mene ne RAG?

RAG wata dabara ce da ta haɗu da ƙarfin samfuran Sakewa da Ƙarfafa don samar da ingantattun amsoshi masu fa'ida. Babban ra'ayin da ke bayan RAG shine a fara dawo da bayanan da suka dace daga tushen ilimi ko bayanan bayanai, sannan a yi amfani da wannan bayanin don samar da amsa. Wannan hanya tana ba LLMs damar yin amfani da ilimin waje da kuma samar da ƙarin ingantattun amsoshi masu fa'ida.

** Me yasa Amfani da RAG tare da FastAPI da Django?**

FastAPI da Django sune manyan mashahuran tsarin gidan yanar gizo da ake amfani da su don gina aikace-aikacen yanar gizo. Suna samar da ingantattun kayan aiki masu ƙarfi da ƙima don gina aikace-aikacen yanar gizo, kuma ana iya haɗa su cikin sauƙi tare da dabarun RAG don haɓaka ƙarfin LLM. FastAPI shine tsarin gidan yanar gizo na zamani wanda ke ba da hanya mai sauri da inganci don gina aikace-aikacen yanar gizo, yayin da Django babban tsarin gidan yanar gizo ne wanda ke samar da gine-gine, samfuri, da APIs don gina ƙaƙƙarfan aikace-aikacen yanar gizo.

** Aiwatar da RAG tare da FastAPI**

FastAPI yana ba da hanya mai sauƙi da inganci don aiwatar da dabarun RAG. Anan ga misalin toshe lambar da ke nuna yadda ake amfani da FastAPI don aiwatar da RAG:

`` Python daga fastapi shigo da FastAPI daga langchain shigo da LLMChain daga langchain.chains.openai shigo da OpenAIApi

app = FastAPI()

@app.get("/rag") async def rag(tambaya: str):

llm_chain = LLMChain (
    llm=Buɗe AIApi(),
    maidowa=LangChainRetrieval(
        index=LangChainIndex(
            suna = "my_index",
            takardun = ["doc1", "doc2", "doc3"]
        )
    )
)

# Samar da amsa ta amfani da sarkar LLM
amsa = llm_chain.run (tambaya)

mayar {"response": amsa}

A cikin wannan misalin, mun ayyana sarkar LLM ta amfani da ajin `LLMChain` daga LangChain. Sannan muna ayyana ɓangaren maidowa ta amfani da ajin `LangChainRetrieval`, wanda ake amfani da shi don maido da bayanai masu dacewa daga tushen ilimi ko ma'ajin bayanai. A ƙarshe, muna amfani da hanyar 'run' don samar da amsa ta amfani da sarkar LLM.

** Aiwatar da RAG tare da Django ***


Django yana ba da babban tsarin gidan yanar gizo wanda za'a iya haɗawa cikin sauƙi tare da dabarun RAG. Anan ga misalin toshe lambar da ke nuna yadda ake amfani da Django don aiwatar da RAG:

`` Python
daga django.http shigo da JsonResponse
daga langchain shigo da LLMChain
daga langchain.chains.openai shigo da OpenAIApi

def rag(buƙata):
    # ayyana sarkar LLM
    llm_chain = LLMChain (
        llm=Buɗe AIApi(),
        maidowa=LangChainRetrieval(
            index=LangChainIndex(
                suna = "my_index",
                takardun = ["doc1", "doc2", "doc3"]
            )
        )
    )

    # Samar da amsa ta amfani da sarkar LLM
    amsa = llm_chain.run(request.GET.get("tambaya"))

    mayar da JsonResponse ({"amsa": amsa})

A cikin wannan misalin, mun ayyana aikin gani 'rag' wanda ke ɗaukar tambaya azaman shigarwa kuma yana haifar da amsa ta amfani da sarkar LLM.

** Orchestrating RAG tare da LangChain ***

LangChain yana ba da hanya mai sauƙi da inganci don tsara dabarun RAG. Anan ga misalin toshe lambar da ke nuna yadda ake amfani da LangChain don tsara RAG:

`` Python daga langchain shigo da LLMChain daga langchain.chains.openai shigo da OpenAIApi

ayyana sarkar LLM

llm_chain = LLMChain ( llm=Buɗe AIApi(), maidowa=LangChainRetrieval( index=LangChainIndex( suna = "my_index", takardun = ["doc1", "doc2", "doc3"] ) ) )

Samar da amsa ta amfani da sarkar LLM

amsa = llm_chain.run ("Mene ne RAG?")

buga(amsa)


A cikin wannan misalin, mun ayyana sarkar LLM ta amfani da ajin `LLMChain` daga LangChain. Muna amfani da hanyar 'run' don samar da amsa ta amfani da sarkar LLM.

** Manyan Dokoki 5-10 da Akafi Amfani da su/Snippets**


Anan akwai manyan 5-10 da aka fi amfani da umarni/snippets don aiwatar da RAG tare da FastAPI da Django:

1. 'daga langchain shigo da LLMChain': Shigo aji 'LLMChain' daga LangChain.
2. `llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2","doc3")))))))))) tantance sarkar LLM ta amfani da ajin `LLMChain`.
3. `amsa = llm_chain.run(tambaya)`: Samar da amsa ta hanyar amfani da sarkar LLM.
4. `daga fastapi shigo da FastAPI`: Shigo aji 'FastAPI' daga FastAPI.
5. `app = FastAPI()`: Ƙayyade aikace-aikacen FastAPI.
6. `@app.get("/rag")`: Ƙayyade hanya don ƙarshen RAG.
7. `llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2","doc3")))))))))): Ƙayyade sarkar LLM ta amfani da ajin `LLMChain.
8. `amsa = llm_chain.run(tambaya)`: Samar da amsa ta amfani da sarkar LLM.
9. `daga django.http shigo da JsonResponse`: Shigo aji 'JsonResponse' daga Django.
10. `komawa JsonResponse({"amsa": amsa})': Mayar da martanin JSON tare da amsawar da aka samar.

**Kallon gani**


Anan ga hangen nesa na bututun RAG ta amfani da Chart.js:

Json
{
  "type": "horizontalBar",
  "data": {
    "labels": ["Dawowa", "Generation", "Post-processing"],
    "datasets": [
      {
        "label": "Bututun RAG",
        "bayanai": [10, 20, 30],
        "BackgroundLauni": [
          "rgba (255, 99, 132, 0.2)",
          "rgba (54, 162, 235, 0.2)",
          "rgba (255, 206, 86, 0.2)"
        ],
        "Launi Border": [
          "rgba (255, 99, 132, 1)",
          "rgba (54, 162, 235, 1)",
          "rgba (255, 206, 86, 1)"
        ],
        "BorderWidth": 1
      }
    ]
  },
  "zaɓi": {
    "take": {
      "nuna": gaskiya,
      "text": "RAG Pipeline"
    },
    "ma'auni": {
      "yAxes": [
        {
          "zama": {
            "beginAtZero": gaskiya
          }
        }
      ]
    }
  }
}

Wannan hangen nesa yana nuna bututun RAG tare da matakai uku: maidowa, tsarawa, da aiwatarwa.

Kammalawa

A cikin wannan labarin, mun bincika aiwatar da dabarun RAG ta amfani da FastAPI da Django don haɓaka damar LLM a cikin aikace-aikacen yanar gizo, gami da ƙungiyar ƙira tare da LangChain don dawo da bayanan da ba su dace ba. Mun kuma ba da jagora mai amfani don aiwatar da RAG tare da FastAPI da Django, gami da misalan lambobi da hangen nesa na bututun RAG. Muna fatan wannan labarin ya samar da albarkatu mai amfani ga masu haɓakawa waɗanda ke neman aiwatar da dabarun RAG a cikin aikace-aikacen yanar gizon su.


Have Questions?

Let's Talk

Contact me on LinkedIn