Te whakauru RAG (Retrieval-Augmented Generation) me nga Anga Tukutuku Hou: He Aratohu Mahinga | B4N1

Te whakauru RAG (Retrieval-Augmented Generation) me nga Anga Tukutuku Hou: He Aratohu Mahinga

9 months ago · b4n1 Read time: 5 min

Ko te whakauru i te RAG (Whakatupuranga Whakanuia-Tiaki) me nga Anga Tukutuku Hou: He Aratohu Mahi

Whakataki

I nga tau tata nei, kua kite te mara o te Tukatuka Reo Maori (NLP) i te pikinga nui o te whanaketanga o nga Tauira Reo Nui (LLM) me o raatau tono ki nga momo rohe. Heoi, ko tetahi o nga here nui o nga LLM ko te kore e kaha ki te tiki me te whakauru i nga matauranga o waho ki roto i a raatau whakautu. I konei ka uru mai nga tikanga Retrieval-Augmented Generation (RAG). I roto i tenei tuhinga, ka tirotirohia e matou te whakatinanatanga o nga tikanga RAG ma te whakamahi i te FastAPI me te Django ki te whakarei ake i nga kaha o te LLM i roto i nga tono tukutuku, tae atu ki te orchestration me LangChain mo te tango me te tukatuka raraunga kore.

He aha te RAG?

Ko te RAG he tikanga e whakakotahi ana i nga kaha o nga tauira Tiaki me te Whakatupuranga kia pai ake ai nga whakautu tika me nga whakautu korero. Ko te whakaaro taketake i muri i te RAG ko te tiki tuatahi i nga korero e tika ana mai i te turanga matauranga, i te putunga raraunga ranei, katahi ka whakamahi i enei korero hei whakaputa whakautu. Ma tenei huarahi ka taea e nga LLM te whakamahi i nga matauranga o waho me te whakarato i nga whakautu tika me nga korero.

He aha te whakamahi RAG me FastAPI me Django?

Ko FastAPI me Django e rua o nga anga tukutuku rongonui e whakamahia ana mo te hanga tono paetukutuku. Ka whakaratohia e ratou he hanganga pakari me te tauineine mo te hanga tono paetukutuku, ka taea te whakauru ngawari ki nga tikanga RAG hei whakarei ake i nga kaha LLM. Ko te FastAPI he anga tukutuku hou e whakarato ana i te huarahi tere me te whai hua ki te hanga i nga tono paetukutuku, ko Django he anga tukutuku taumata teitei e whakarato ana i te hoahoanga, nga tauira, me nga API mo te hanga tono tukutuku pakari.

Te whakatinana RAG me te FastAPI

Ka whakaratohia e FastAPI he huarahi ngawari me te pai ki te whakatinana i nga tikanga RAG. Anei tetahi tauira poraka waehere e whakaatu ana me pehea te whakamahi i te FastAPI ki te whakatinana RAG:

mai fastapi kawemai FastAPI
mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi

taupānga = FastAPI()

@app.get("/rag")
async def rag(uiui: str):
    
    llm_mekameka = LLMChain(
        llm=TuwheraAIApi(),
        retrieval=LangChainRetrieval(
            taupū=LangChainIndex(
                ingoa="my_index",
                tuhinga=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Hangaia he whakautu ma te whakamahi i te mekameka LLM
    whakautu = llm_chain.run(uiui)

    whakahokia {"whakautu": whakautu}

I tenei tauira, ka tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain mai i LangChain. Ka tautuhia e matou he waahanga tango ma te whakamahi i te akomanga LangChainRetrieval, e whakamahia ana hei tiki i nga korero e tika ana mai i te turanga matauranga, i te papaunga raraunga ranei. Ka mutu, ka whakamahi matou i te tikanga rere ki te whakaputa urupare ma te whakamahi i te mekameka LLM.

Te whakatinana RAG me Django

Ka whakarato a Django i tetahi anga paetukutuku taumata-tiketike ka ngawari te whakauru ki nga tikanga RAG. Anei he tauira poraka waehere e whakaatu ana me pehea te whakamahi i a Django ki te whakatinana RAG:

mai i django.http kawemai JsonResponse
mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi

def rag(tono):
    # Tautuhia te mekameka LLM
    llm_mekameka = LLMChain(
        llm=TuwheraAIApi(),
        retrieval=LangChainRetrieval(
            taupū=LangChainIndex(
                ingoa="my_index",
                tuhinga=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Hangaia he whakautu ma te whakamahi i te mekameka LLM
    whakautu = llm_chain.run(tono.GET.get("Uiui"))

    whakahokia JsonResponse({"whakautu": whakautu})

I roto i tenei tauira, ka tautuhia e matou he mahinga tirohanga rag e tango ana i te patai hei whakaurunga ka whakaputa whakautu ma te whakamahi i te mekameka LLM.

Whakaahua RAG me LangChain

Ka whakaratohia e LangChain he huarahi ngawari me te whai hua ki te whakarite tikanga RAG. Anei tetahi tauira poraka waehere e whakaatu ana me pehea te whakamahi i te LangChain ki te whakarite RAG:

mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi

# Tautuhia te mekameka LLM
llm_mekameka = LLMChain(
    llm=TuwheraAIApi(),
    retrieval=LangChainRetrieval(
        taupū=LangChainIndex(
            ingoa="my_index",
            tuhinga=["doc1", "doc2", "doc3"]
        )
    )
)

# Hangaia he whakautu ma te whakamahi i te mekameka LLM
whakautu = llm_chain.run("He aha te RAG?")

tā(whakautu)

I tenei tauira, ka tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain mai i LangChain. Ka whakamahi tatou i te tikanga rere ki te whakaputa whakautu ma te whakamahi i te mekameka LLM.

Tiki 5-10 Nga Tono Whakamahinga/Momohipi

Anei nga 5-10 o runga o nga whakahau/snippets e whakamahia ana mo te whakatinana RAG me FastAPI me Django:

  1. mai i te langchain kawemai LLMChain: Kawemai i te akomanga LLMChain mai i LangChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(ingoa="my_index", documents=["doc1", "doc2", "doc3"]))): Tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain.
  3. whakautu = llm_chain.run(uiui): Hangaia he whakautu ma te whakamahi i te mekameka LLM.
  4. mai fastapi kawemai FastAPI: Kawemai i te akomanga FastAPI mai i FastAPI.
  5. app = FastAPI(): Tautuhia he tono FastAPI.
  6. @app.get("/rag"): Tautuhia he ara mo te pito mutunga RAG.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(ingoa="my_index", documents=["doc1", "doc2", "doc3"]))): Tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain.
  8. whakautu = llm_chain.run(uiui): Hangaia he whakautu ma te whakamahi i te mekameka LLM.
  9. mai i django.http kawemai JsonResponse: Kawemai i te akomanga JsonResponse mai i Django.
  10. whakahoki JsonResponse({"whakautu": whakautu}): Whakahokia he urupare JSON me te whakautu i hangaia.

Whakakitenga

Anei he tirohanga o te paipa RAG ma te whakamahi i te Chart.js:

{
  "type": "Pae whakapae",
  "raraunga": {
    "labels": ["Tikina", "Whakatupuranga", "Tukatuka-muri"],
    "raunga raraunga": [
      {
        "label": "RAG Pipeline",
        "raraunga": [10, 20, 30],
        "Tae papamuri": [
          "rgba(255, 99, 132, 0.2)",
          "rgba(54, 162, 235, 0.2)",
          "rgba(255, 206, 86, 0.2)"
        ],
        "Taitapa Tae": [
          "rgba(255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)",
          "rgba(255, 206, 86, 1)"
        ],
        "BorderWidth": 1
      }
    ]
  },
  "kōwhiringa": {
    "taitara": {
      "whakaatu": pono,
      "text": "RAG Pipeline"
    },
    "tauine": {
      "yAxes": [
        {
          "tika": {
            "beginAtZero": pono
          }
        }
      ]
    }
  }
}

Ko tenei whakakitenga e whakaatu ana i te pipeline RAG me nga waahanga e toru: te tiki, te whakatipuranga, me te tukatuka muri.

Whakamutunga

I roto i tenei tuhinga, i tirotirohia e matou te whakatinanatanga o nga tikanga RAG ma te whakamahi i te FastAPI me te Django ki te whakarei ake i nga kaha o te LLM i roto i nga tono tukutuku, tae atu ki te orchestration me LangChain mo te tango me te tukatuka raraunga kore. I tukuna ano e matou he aratohu whaihua ki te whakatinana i te RAG me FastAPI me Django, tae atu ki nga tauira waehere me te tirohanga o te pipeline RAG. Ko te tumanako kua whakaratohia e tenei tuhinga he rauemi whai hua mo nga kaiwhakawhanake e titiro ana ki te whakatinana i nga tikanga RAG ki a raatau tono paetukutuku.


Have Questions?

Let's Talk

Contact me on LinkedIn