Ενσωμάτωση RAG (Retrieval-Augmented Generation) με σύγχρονα πλαίσια Web: Ένας πρακτικός οδηγός | B4N1

Ενσωμάτωση RAG (Retrieval-Augmented Generation) με σύγχρονα πλαίσια Web: Ένας πρακτικός οδηγός

9 months ago · b4n1 Tiempo de lectura: 4 min

Ενσωμάτωση RAG (Retrieval-Augmented Generation) με σύγχρονα πλαίσια Ιστού: Ένας πρακτικός οδηγός

Εισαγωγή

Τα τελευταία χρόνια, ο τομέας της Επεξεργασίας Φυσικής Γλώσσας (NLP) έχει γνωρίσει μια σημαντική αύξηση στην ανάπτυξη των Μεγάλων Γλωσσικών Μοντέλων (LLM) και των εφαρμογών τους σε διάφορους τομείς. Ωστόσο, ένας από τους σημαντικότερους περιορισμούς των LLMs είναι η αδυναμία τους να ανακτήσουν και να ενσωματώσουν εξωτερική γνώση στις απαντήσεις τους. Εδώ μπαίνουν στο παιχνίδι οι τεχνικές Retrieval-Augmented Generation (RAG). Σε αυτό το άρθρο, θα διερευνήσουμε την εφαρμογή τεχνικών RAG χρησιμοποιώντας FastAPI και Django για να βελτιώσουμε τις δυνατότητες LLM σε εφαρμογές web, συμπεριλαμβανομένης της ενορχήστρωσης με το LangChain για απρόσκοπτη ανάκτηση και επεξεργασία δεδομένων.

Τι είναι το RAG;

Το RAG είναι μια τεχνική που συνδυάζει τα δυνατά σημεία των μοντέλων Ανάκτησης και Γενιάς για να παράγει πιο ακριβείς και κατατοπιστικές απαντήσεις. Η βασική ιδέα πίσω από το RAG είναι πρώτα να ανακτήσετε σχετικές πληροφορίες από μια βάση γνώσεων ή μια βάση δεδομένων και στη συνέχεια να χρησιμοποιήσετε αυτές τις πληροφορίες για να δημιουργήσετε μια απάντηση. Αυτή η προσέγγιση επιτρέπει στα LLM να αξιοποιήσουν την εξωτερική γνώση και να παρέχουν πιο ακριβείς και ενημερωτικές απαντήσεις.

Γιατί να χρησιμοποιήσετε το RAG με το FastAPI και το Django;

Το FastAPI και το Django είναι δύο από τα πιο δημοφιλή διαδικτυακά πλαίσια που χρησιμοποιούνται για τη δημιουργία διαδικτυακών εφαρμογών. Παρέχουν μια ισχυρή και επεκτάσιμη υποδομή για τη δημιουργία διαδικτυακών εφαρμογών και μπορούν εύκολα να ενσωματωθούν με τεχνικές RAG για την ενίσχυση των δυνατοτήτων LLM. Το FastAPI είναι ένα σύγχρονο πλαίσιο ιστού που παρέχει έναν γρήγορο και αποτελεσματικό τρόπο δημιουργίας εφαρμογών Ιστού, ενώ το Django είναι ένα πλαίσιο ιστού υψηλού επιπέδου που παρέχει αρχιτεκτονική, πρότυπα και API για τη δημιουργία ισχυρών εφαρμογών ιστού.

Εφαρμογή RAG με FastAPI

Το FastAPI παρέχει έναν απλό και αποτελεσματικό τρόπο εφαρμογής τεχνικών RAG. Ακολουθεί ένα παράδειγμα μπλοκ κώδικα που δείχνει πώς να χρησιμοποιήσετε το FastAPI για την υλοποίηση του RAG:

από την εισαγωγή fastapi FastAPI
από την εισαγωγή langchain LLMCchain
από το langchain.chains.openai εισαγωγή OpenAIApi

app = FastAPI()

@app.get("/rag")
async def rag(ερώτημα: str):
    
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                name="my_index",
                έγγραφα=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Δημιουργήστε μια απόκριση χρησιμοποιώντας την αλυσίδα LLM
    answer = llm_chain.run(query)

    επιστροφή {"response": απάντηση}

Σε αυτό το παράδειγμα, ορίζουμε μια αλυσίδα LLM χρησιμοποιώντας την κλάση LLMChain από το LangChain. Στη συνέχεια, ορίζουμε ένα στοιχείο ανάκτησης χρησιμοποιώντας την κλάση LangChainRetrieval, η οποία χρησιμοποιείται για την ανάκτηση σχετικών πληροφοριών από μια βάση γνώσεων ή μια βάση δεδομένων. Τέλος, χρησιμοποιούμε τη μέθοδο «run» για να δημιουργήσουμε μια απάντηση χρησιμοποιώντας την αλυσίδα LLM.

Εφαρμογή του RAG με τον Django

Το Django παρέχει ένα πλαίσιο web υψηλού επιπέδου που μπορεί εύκολα να ενσωματωθεί με τεχνικές RAG. Ακολουθεί ένα παράδειγμα μπλοκ κώδικα που δείχνει πώς να χρησιμοποιήσετε το Django για την υλοποίηση του RAG:

από το django.http εισαγωγή JsonResponse
από την εισαγωγή langchain LLMCchain
από το langchain.chains.openai εισαγωγή OpenAIApi

def rag(αίτημα):
    # Καθορίστε την αλυσίδα LLM
    llm_chain = LLMChain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            index=LangChainIndex(
                name="my_index",
                έγγραφα=["doc1", "doc2", "doc3"]
            )
        )
    )

    # Δημιουργήστε μια απόκριση χρησιμοποιώντας την αλυσίδα LLM
    answer = llm_chain.run(request.GET.get("query"))

    return JsonResponse({"response": answer})

Σε αυτό το παράδειγμα, ορίζουμε μια συνάρτηση προβολής «rag» που παίρνει ένα ερώτημα ως είσοδο και δημιουργεί μια απάντηση χρησιμοποιώντας την αλυσίδα LLM.

Ενορχήστρωση RAG με LangChain

Το LangChain παρέχει έναν απλό και αποτελεσματικό τρόπο ενορχήστρωσης τεχνικών RAG. Ακολουθεί ένα παράδειγμα μπλοκ κώδικα που δείχνει πώς να χρησιμοποιήσετε το LangChain για να ενορχηστρώσετε το RAG:

από την εισαγωγή langchain LLMCchain
από το langchain.chains.openai εισαγωγή OpenAIApi

# Καθορίστε την αλυσίδα LLM
llm_chain = LLMChain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        index=LangChainIndex(
            name="my_index",
            έγγραφα=["doc1", "doc2", "doc3"]
        )
    )
)

# Δημιουργήστε μια απόκριση χρησιμοποιώντας την αλυσίδα LLM
answer = llm_chain.run("Τι είναι το RAG;")

εκτύπωση (απάντηση)

Σε αυτό το παράδειγμα, ορίζουμε μια αλυσίδα LLM χρησιμοποιώντας την κλάση LLMChain από το LangChain. Στη συνέχεια χρησιμοποιούμε τη μέθοδο «run» για να δημιουργήσουμε μια απάντηση χρησιμοποιώντας την αλυσίδα LLM.

Κορυφαίες 5-10 πιο χρησιμοποιούμενες εντολές/αποσπάσματα

Ακολουθούν οι κορυφαίες 5-10 πιο χρησιμοποιούμενες εντολές/αποσπάσματα για την εφαρμογή RAG με το FastAPI και το Django:

  1. from langchain import LLMChain: Εισαγάγετε την κατηγορία LLMChain από το LangChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", έγγραφα=["doc1", "doc2", "doc3"]))): Ορίστε μια αλυσίδα LLMχρησιμοποιώντας την κλάσηLLMCha
  3. response = llm_chain.run(query): Δημιουργήστε μια απάντηση χρησιμοποιώντας την αλυσίδα LLM.
  4. «from fastapi import FastAPI»: Εισαγάγετε την κλάση «FastAPI» από το FastAPI.
  5. app = FastAPI(): Ορίστε μια εφαρμογή FastAPI.
  6. @app.get("/rag"): Ορίστε μια διαδρομή για το τελικό σημείο RAG.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", έγγραφα=["doc1", "doc2", "doc3"]))): Ορίστε μια αλυσίδα LLMχρησιμοποιώντας την κλάσηLLMCha
  8. response = llm_chain.run(query): Δημιουργήστε μια απάντηση χρησιμοποιώντας την αλυσίδα LLM.
  9. from django.http import JsonResponse: Εισαγάγετε την κλάση JsonResponse από το Django.
  10. return JsonResponse({"response": answer}): Επιστρέψτε μια απάντηση JSON με την απόκριση που δημιουργήθηκε.

Οπτικοποίηση

Ακολουθεί μια απεικόνιση του αγωγού RAG χρησιμοποιώντας το Chart.js:

{
  "type": "horizontalBar",
  "δεδομένα": {
    "labels": ["Ανάκτηση", "Γενιά", "Μετά την επεξεργασία"],
    "σύνολα δεδομένων": [
      {
        "label": "RAG Pipeline",
        "δεδομένα": [10, 20, 30],
        "Χρώμα φόντου": [
          "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
      }
    ]
  },
  "επιλογές": {
    "τίτλος": {
      "εμφάνιση": αληθινό,
      "text": "RAG Pipeline"
    },
    "ζυγαριά": {
      "yAxes": [
        {
          "τικ": {
            "beginAtZero": αλήθεια
          }
        }
      ]
    }
  }
}

Αυτή η απεικόνιση δείχνει τον αγωγό RAG με τρία στάδια: ανάκτηση, δημιουργία και μετα-επεξεργασία.

συμπέρασμα

Σε αυτό το άρθρο, εξερευνήσαμε την εφαρμογή τεχνικών RAG χρησιμοποιώντας FastAPI και Django για να βελτιώσουμε τις δυνατότητες LLM σε εφαρμογές web, συμπεριλαμβανομένης της ενορχήστρωσης με το LangChain για απρόσκοπτη ανάκτηση και επεξεργασία δεδομένων. Παρέχαμε επίσης έναν πρακτικό οδηγό για την υλοποίηση του RAG με το FastAPI και το Django, συμπεριλαμβανομένων παραδειγμάτων κώδικα και οπτικοποίησης του αγωγού RAG. Ελπίζουμε ότι αυτό το άρθρο παρείχε έναν χρήσιμο πόρο για προγραμματιστές που θέλουν να εφαρμόσουν τεχνικές RAG στις εφαρμογές Ιστού τους.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn