A’ fighe a-steach RAG (Ginealach Leudaichte Ath-lorg) le Frèaman Lìn Ùr-nodha: Stiùireadh Practaigeach | B4N1

A’ fighe a-steach RAG (Ginealach Leudaichte Ath-lorg) le Frèaman Lìn Ùr-nodha: Stiùireadh Practaigeach

9 months ago · b4n1 Read time: 5 min

Ag aonachadh RAG (Ginealach Meudaichte Ath-lorg) le Frèaman Lìn Ùr-nodha: Stiùireadh Practaigeach

** Ro-ràdh**

Anns na bliadhnachan mu dheireadh, tha raon Pròiseas Cànain Nàdarra (NLP) air àrdachadh mòr fhaicinn ann an leasachadh Modalan Cànain Mòr (LLMn) agus an cleachdadh ann an grunn raointean. Ach, is e aon de na prìomh chuingealachaidhean aig LLMn nach eil iad comasach air eòlas bhon taobh a-muigh fhaighinn air ais agus a thoirt a-steach do na freagairtean aca. Seo far a bheil dòighean-obrach Ginealach Meudaichte Ath-ghairm (RAG) a’ tighinn a-steach. San artaigil seo, nì sinn sgrùdadh air buileachadh dhòighean RAG a’ cleachdadh FastAPI agus Django gus comasan LLM àrdachadh ann an tagraidhean lìn, a’ toirt a-steach orcastra le LangChain airson faighinn air ais agus giullachd dàta gun fhiosta.

Dè th' ann an RAG?

Is e dòigh-obrach a th’ ann an RAG a tha a’ cothlamadh neartan mhodalan Ath-lorg agus Ginealach gus freagairtean nas cruinne agus nas fiosrachail a thoirt gu buil. Is e am beachd bunaiteach air cùl RAG fiosrachadh buntainneach fhaighinn air ais bho bhunait eòlais no stòr-dàta, agus an uairsin am fiosrachadh seo a chleachdadh gus freagairt a ghineadh. Tha an dòigh-obrach seo a’ leigeil le LLMn eòlas bhon taobh a-muigh a luathachadh agus freagairtean nas cinntiche agus nas fiosrachail a thoirt seachad.

** Carson a chleachdas tu RAG le FastAPI agus Django?**

Tha FastAPI agus Django mar dhà de na frèaman lìn as mòr-chòrdte a thathas a’ cleachdadh airson tagraidhean lìn a thogail. Bidh iad a’ toirt seachad bun-structar làidir agus scalable airson a bhith a’ togail thagraidhean lìn, agus faodar an aonachadh gu furasta le dòighean RAG gus comasan LLM a neartachadh. Tha FastAPI na fhrèam lìn ùr-nodha a bheir seachad dòigh luath is èifeachdach airson tagraidhean lìn a thogail, fhad ‘s a tha Django na fhrèam lìn àrd-ìre a bheir seachad ailtireachd, teamplaidean, agus APIan airson tagraidhean lìn làidir a thogail.

** A’ cur RAG an gnìomh le FastAPI**

Tha FastAPI a’ toirt seachad dòigh shìmplidh is èifeachdach air dòighean RAG a bhuileachadh. Seo eisimpleir de bhloc còd a sheallas mar a chleachdas tu FastAPI gus RAG a chuir an gnìomh:

bho fastapi import FastAPI
bho langchain import LLMChain
bho langchain.chains.openai in-mhalairt OpenAIApi

app = FastAPI()

@app.get ("/rag")
async def rag (ceist: str):
    
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                ainm = "my_index",
                sgrìobhainnean =["doc1", "doc2", "doc3"]
            )
        )
    )

    # Cruthaich freagairt a’ cleachdadh an t-sreath LLM
    freagairt = llm_chain.run (ceist)

    tilleadh {"response": freagairt}

San eisimpleir seo, bidh sinn a’ mìneachadh slabhraidh LLM a’ cleachdadh a’ chlas ‘LLMChain’ bho LangChain. Bidh sinn an uairsin a’ mìneachadh co-phàirt trusaidh a’ cleachdadh a’ chlas ‘LangChainRetrieval’, a thathas a’ cleachdadh gus fiosrachadh buntainneach fhaighinn air ais bho bhunait eòlais no stòr-dàta. Mu dheireadh, bidh sinn a’ cleachdadh an dòigh ‘run’ gus freagairt a ghineadh a’ cleachdadh an t-sreath LLM.

A’ cur RAG an gnìomh le Django

Tha Django a 'toirt seachad frèam lìn àrd-ìre a ghabhas amalachadh gu furasta le dòighean RAG. Seo eisimpleir de bhloc còd a sheallas mar a chleachdas tu Django gus RAG a bhuileachadh:

bho django.http ion-phortadh JsonResponse
bho langchain import LLMChain
bho langchain.chains.openai in-mhalairt OpenAIApi

def rag (iarrtas):
    # Mìnich an t-sreath LLM
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                ainm = "my_index",
                sgrìobhainnean =["doc1", "doc2", "doc3"]
            )
        )
    )

    # Cruthaich freagairt a’ cleachdadh an t-sreath LLM
    freagairt = llm_chain.run(request.GET.get ("ceist"))

    tilleadh JsonResponse({"freagairt": freagairt})

San eisimpleir seo, bidh sinn a’ mìneachadh gnìomh seallaidh rag a bhios a’ gabhail ceist mar chur-a-steach agus a’ gineadh freagairt a’ cleachdadh an t-sreath LLM.

Orchstrating RAG le LangChain

Tha LangChain a’ toirt seachad dòigh shìmplidh is èifeachdach air dòighean RAG a chuir air dòigh. Seo eisimpleir de bhloc còd a sheallas mar a chleachdas tu LangChain gus RAG a chuir air dòigh:

bho langchain import LLMChain
bho langchain.chains.openai in-mhalairt OpenAIApi

# Mìnich an t-sreath LLM
llm_chain = LLMChain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        index=LangChainIndex(
            ainm = "my_index",
            sgrìobhainnean =["doc1", "doc2", "doc3"]
        )
    )
)

# Cruthaich freagairt a’ cleachdadh an t-sreath LLM
freagairt = llm_chain.run ("Dè th' ann an RAG?")

clò-bhualadh (freagairt)

San eisimpleir seo, bidh sinn a’ mìneachadh slabhraidh LLM a’ cleachdadh a’ chlas ‘LLMChain’ bho LangChain. Bidh sinn an uairsin a’ cleachdadh an dòigh ‘run’ gus freagairt a ghineadh a’ cleachdadh an t-sreath LLM.

** 5-10 Òrdughan/Biotag as motha a chleachdar**

Seo na 5-10 òrdughan / pìosan as motha a chleachdar airson RAG a chuir an gnìomh le FastAPI agus Django:

  1. bho langchain import LLMChain: Cuir a-steach an clas LLMChain bho LangChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Sònraich sreath LLM a' cleachdadh a' chlas 'LLMChain`.
  3. response = llm_chain.run(query): Cruthaich freagairt a' cleachdadh an t-sreath LLM.
  4. bho fastapi import FastAPI: Cuir a-steach an clas FastAPI bho FastAPI.
  5. app = FastAPI(): Mìnich tagradh FastAPI.
  6. @app.get ("/rag"): Sònraich slighe airson crìoch RAG.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Sònraich sreath LLM a' cleachdadh a' chlas 'LLMChain`.
  8. response = llm_chain.run(query): Cruthaich freagairt leis an t-sreath LLM.
  9. bho django.http import JsonResponse: Cuir a-steach an clas JsonResponse bho Django.
  10. tilleadh JsonResponse({"response": response}): Till freagairt JSON leis an fhreagairt a chaidh a chruthachadh.

Sealladh

Seo dealbh den loidhne-phìob RAG a’ cleachdadh Chart.js:

{
  "type": "Bàr chòmhnard",
  "dàta": {
    "labels": ["Ais-ghlacadh", "Ginealach", "Post-giollachd"],
    "stòr-dàta": [
      {
        "label": "Pìob-loidhne RAG",
        "dàta": [10, 20, 30],
        "cùl-dath": [
          "rgb(255, 99, 132, 0.2)",
          "rgb(54, 162, 235, 0.2)",
          "rgb(255, 206, 86, 0.2)"
        ],
        "Crìochan Dath": [
          "rgb(255, 99, 132, 1)",
          "rgb(54, 162, 235, 1)",
          "rgb(255, 206, 86, 1)"
        ],
        "Leud na crìche": 1
      }
    ]
  },
  "roghainnean": {
    "tiotal": {
      "taisbeanadh": fìor,
      "text": "Pìob-loidhne RAG"
    },
    "sgàilean": {
      "yAxes": [
        {
          "breacan": {
            "toiseach AtZero": fìor
          }
        }
      ]
    }
  }
}

Tha an dealbh seo a’ sealltainn loidhne-phìoban RAG le trì ìrean: lorg, gineadh, agus iar-giullachd.

** Co-dhùnadh**

San artaigil seo, rinn sinn sgrùdadh air buileachadh dhòighean RAG a’ cleachdadh FastAPI agus Django gus comasan LLM àrdachadh ann an tagraidhean lìn, a’ toirt a-steach orcastra le LangChain airson faighinn air ais agus giullachd dàta gun fhiosta. Thug sinn cuideachd seachad stiùireadh practaigeach mu bhith a’ buileachadh RAG le FastAPI agus Django, a’ toirt a-steach eisimpleirean còd agus sealladh air loidhne-phìoban RAG. Tha sinn an dòchas gu bheil an artaigil seo air goireas feumail a thoirt do luchd-leasachaidh a tha ag iarraidh dòighean RAG a chuir an gnìomh anns na tagraidhean lìn aca.


Have Questions?

Let's Talk

Contact me on LinkedIn