RAG-i (Retrieval-Augmented Generation) integreerimine kaasaegsete veebiraamistikega: praktiline juhend | B4N1

RAG-i (Retrieval-Augmented Generation) integreerimine kaasaegsete veebiraamistikega: praktiline juhend

9 months ago · b4n1 Tiempo de lectura: 3 min

** RAG-i (Retrieval-Augmented Generation) integreerimine kaasaegsete veebiraamistikega: praktiline juhend**

Sissejuhatus

Viimastel aastatel on loomuliku keele töötlemise (NLP) valdkonnas toimunud suurte keelemudelite (LLM) ja nende rakenduste väljatöötamine erinevates valdkondades. Siiski on LLM-ide üks peamisi piiranguid nende suutmatus hankida ja oma vastustesse kaasata väliseid teadmisi. Siin tulevad mängu RAG-i (Retrieval-Augmented Generation) tehnikad. Selles artiklis uurime RAG-tehnikate rakendamist FastAPI ja Django abil, et täiustada veebirakenduste LLM-i võimalusi, sealhulgas orkestreerimist LangChainiga sujuvaks andmete otsimiseks ja töötlemiseks.

Mis on RAG?

RAG on tehnika, mis ühendab endas otsingu- ja genereerimismudelite tugevad küljed, et anda täpsemaid ja informatiivsemaid vastuseid. RAGi põhiidee on esmalt hankida asjakohane teave teadmistebaasist või andmebaasist ja seejärel kasutada seda teavet vastuse genereerimiseks. See lähenemisviis võimaldab LLM-idel kasutada väliseid teadmisi ning pakkuda täpsemaid ja informatiivsemaid vastuseid.

Miks kasutada RAG-i koos FastAPI ja Djangoga?

FastAPI ja Django on kaks kõige populaarsemat veebiraamistikku, mida kasutatakse veebirakenduste loomiseks. Need pakuvad veebirakenduste loomiseks tugevat ja skaleeritavat infrastruktuuri ning neid saab hõlpsasti integreerida RAG-tehnikatega, et parandada LLM-i võimalusi. FastAPI on kaasaegne veebiraamistik, mis pakub kiiret ja tõhusat viisi veebirakenduste loomiseks, samas kui Django on kõrgetasemeline veebiraamistik, mis pakub tugevate veebirakenduste loomiseks arhitektuuri, malle ja API-sid.

RAG-i rakendamine FastAPI-ga

FastAPI pakub lihtsat ja tõhusat viisi RAG-tehnikate rakendamiseks. Siin on koodiploki näide, mis näitab, kuidas kasutada FastAPI-d RAG-i juurutamiseks:

alates fastapi import FastAPI
langchaini impordist LLMChain
langchain.chains.openai import OpenAIApi

rakendus = FastAPI()

@app.get("/rag")
async def rag(päring: str):
    
    llm_chain = LLMchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                name="minu_indeks",
                document=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Looge vastus LLM-i ahela abil
    vastus = llm_chain.run(query)

    return {"response": response}

Selles näites määratleme LLM-ahela, kasutades LangChaini klassi "LLMChain". Seejärel määratleme otsingukomponendi, kasutades klassi "LangChainRetrieval", mida kasutatakse asjakohase teabe hankimiseks teadmistebaasist või andmebaasist. Lõpuks kasutame LLM-ahela abil vastuse genereerimiseks meetodit "run".

RAG-i rakendamine Djangoga

Django pakub kõrgetasemelist veebiraamistikku, mida saab hõlpsasti RAG-tehnikatega integreerida. Siin on näide koodiplokist, mis näitab, kuidas Djangot RAG-i rakendamiseks kasutada:

django.http importida JsonResponse
langchaini impordist LLMChain
langchain.chains.openai import OpenAIApi

def rag (taotlus):
    # Määratlege LLM-i ahel
    llm_chain = LLMchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                name="minu_indeks",
                document=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Looge vastus LLM-i ahela abil
    vastus = llm_chain.run(request.GET.get("päring"))

    return JsonResponse({"response": response})

Selles näites defineerime vaatefunktsiooni "rag", mis võtab sisendiks päringu ja genereerib vastuse LLM-ahela abil.

RAG-i orkestreerimine LangChainiga

LangChain pakub lihtsat ja tõhusat viisi RAG-tehnikate orkestreerimiseks. Siin on näide koodiplokist, mis näitab, kuidas kasutada LangChaini RAG-i orkestreerimiseks:

langchaini impordist LLMChain
langchain.chains.openai import OpenAIApi

# Määratlege LLM-i ahel
llm_chain = LLMchain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        index=LangChainIndex(
            name="minu_indeks",
            document=["doc1", "doc2", "doc3"]
        )
    )
)

# Looge vastus LLM-i ahela abil
response = llm_chain.run("Mis on RAG?")

print (vastus)

Selles näites määratleme LLM-ahela, kasutades LangChaini klassi "LLMChain". Seejärel kasutame LLM-ahela abil vastuse genereerimiseks meetodit "run".

5–10 enimkasutatavat käsku/lõigu

Siin on 5–10 enim kasutatud käsku/juppi RAG-i rakendamiseks FastAPI ja Djangoga:

  1. langchaini impordist LLMChain: importige LangChainist klass `LLMChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", document=["doc1", "doc2", "doc3"]))): defineerige LLM-ahel, kasutades `LLMChain' klassi.
  3. response = llm_chain.run(query): looge vastus LLM-ahela abil.
  4. FastAPI-st importimine FastAPI-st: importige FastAPI-st klass FastAPI.
  5. app = FastAPI(): määrake FastAPI rakendus.
  6. @app.get("/rag"): määrake RAG-i lõpp-punkti marsruut.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", document=["doc1", "doc2", "doc3"]))): defineerige LLM-ahel, kasutades `LLMChain' klassi.
  8. response = llm_chain.run(query): genereerige vastus LLM-ahela abil.
  9. "from django.http import JsonResponse": importige Djangost klass "JsonResponse".
  10. return JsonResponse({"response": response}): tagastab JSON-i vastuse koos loodud vastusega.

Visualiseerimine

Siin on diagrammi Chart.js abil RAG-konveieri visualiseerimine:

{
  "type": "horizontalBar",
  "andmed": {
    "labels": ["Retrieval", "Generation", "Järeltöötlus"],
    "andmestikud": [
      {
        "label": "RAG Pipeline",
        "andmed": [10, 20, 30],
        "taustavärv": [
          "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
      }
    ]
  },
  "valikud": {
    "pealkiri": {
      "ekraan": tõsi,
      "text": "RAG Pipeline"
    },
    "kaalud": {
      "yAxes": [
        {
          "puugid": {
            "beginAtZero": tõsi
          }
        }
      ]
    }
  }
}

See visualiseerimine näitab RAG-konveieri kolme etapiga: otsimine, genereerimine ja järeltöötlus.

Järeldus

Selles artiklis uurisime RAG-tehnikate rakendamist FastAPI ja Django abil, et täiustada veebirakenduste LLM-i võimalusi, sealhulgas orkestreerimist LangChainiga sujuvaks andmete otsimiseks ja töötlemiseks. Samuti esitasime praktilise juhendi RAG-i rakendamiseks FastAPI ja Djangoga, sealhulgas koodinäiteid ja RAG-konveieri visualiseerimist. Loodame, et see artikkel on pakkunud kasulikku ressurssi arendajatele, kes soovivad oma veebirakendustes RAG-tehnikaid rakendada.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn