Müasir Veb Çərçivələri ilə RAG (Götürülmə ilə Artırılmış Nəsil) inteqrasiyası: Praktik bələdçi | B4N1

Müasir Veb Çərçivələri ilə RAG (Götürülmə ilə Artırılmış Nəsil) inteqrasiyası: Praktik bələdçi

9 months ago · b4n1 Read time: 4 min

RAG-nin (Axtarış Artırılmış Nəsil) Müasir Veb Çərçivələri ilə inteqrasiyası: Praktik Bələdçi

Giriş

Son illərdə Natural Language Processing (NLP) sahəsi Böyük Dil Modellərinin (LLM) və onların müxtəlif sahələrdə tətbiqlərinin inkişafında əhəmiyyətli artımın şahidi oldu. Bununla belə, LLM-lərin əsas məhdudiyyətlərindən biri onların xarici bilikləri əldə etmək və öz cavablarına daxil etmək qabiliyyətinin olmamasıdır. Burada Axtarış-Augmented Nəsil (RAG) texnikaları işə düşür. Bu yazıda biz internet proqramlarında LLM imkanlarını artırmaq üçün FastAPI və Django istifadə edərək RAG texnikalarının tətbiqini araşdıracağıq, o cümlədən məlumatların fasiləsiz axtarışı və emalı üçün LangChain ilə orkestrasiya.

RAG nədir?

RAG daha dəqiq və məlumatlandırıcı cavablar hazırlamaq üçün Axtarış və Nəsil modellərinin güclü tərəflərini birləşdirən bir texnikadır. RAG-ın arxasında duran əsas ideya əvvəlcə bilik bazasından və ya verilənlər bazasından müvafiq məlumatları əldə etmək və sonra bu məlumatdan cavab yaratmaq üçün istifadə etməkdir. Bu yanaşma LLM-lərə xarici biliklərdən istifadə etməyə və daha dəqiq və informativ cavablar təqdim etməyə imkan verir.

Niyə FastAPI və Django ilə RAG istifadə edin?

FastAPI və Django veb proqramları yaratmaq üçün istifadə edilən ən məşhur veb çərçivələrdən ikisidir. Onlar veb proqramların yaradılması üçün möhkəm və genişlənə bilən infrastruktur təmin edir və LLM imkanlarını artırmaq üçün RAG texnikaları ilə asanlıqla inteqrasiya oluna bilər. FastAPI veb proqramlar yaratmaq üçün sürətli və səmərəli üsul təqdim edən müasir veb çərçivədir, Django isə möhkəm veb proqramları yaratmaq üçün memarlıq, şablonlar və API təmin edən yüksək səviyyəli veb çərçivədir.

** FastAPI ilə RAG tətbiqi**

FastAPI RAG üsullarını həyata keçirmək üçün sadə və səmərəli üsul təqdim edir. Budur, RAG tətbiq etmək üçün FastAPI-dən necə istifadə olunacağını nümayiş etdirən nümunə kod bloku:

fastapi idxal FastAPI
langchain idxal LMChain-dən
langchain.chains.openai-dən OpenAIApi idxal edin

proqram = FastAPI()

@app.get("/rag")
async def rag (sorğu: str):
    
    llm_zəncir = LLMCain(
        llm=OpenAIApi(),
        axtarış=LangChainRetrieval(
            index=LangChainIndex(
                ad = "mənim_indeks",
                sənədlər =["sənəd1", "sənəd2", "doc3"]
            )
        )
    )

    # LLM zəncirindən istifadə edərək cavab yaradın
    cavab = llm_chain.run(sorğu)

    qaytar {"cavab": cavab}

Bu nümunədə biz LangChain-dən LLMCain sinfindən istifadə edərək LLM zəncirini təyin edirik. Daha sonra bilik bazasından və ya verilənlər bazasından müvafiq məlumatı əldə etmək üçün istifadə edilən LangChainRetrieval sinfindən istifadə edərək axtarış komponentini müəyyən edirik. Nəhayət, LLM zəncirindən istifadə edərək cavab yaratmaq üçün run metodundan istifadə edirik.

Django ilə RAG tətbiqi

Django, RAG texnikaları ilə asanlıqla inteqrasiya oluna bilən yüksək səviyyəli veb çərçivə təmin edir. Budur RAG-ı həyata keçirmək üçün Django-dan necə istifadə olunacağını göstərən nümunə kod bloku:

django.http-dən JsonResponse-u idxal edin
langchain idxal LMChain-dən
langchain.chains.openai-dən OpenAIApi idxal edin

def rag (istək):
    # LLM zəncirini müəyyənləşdirin
    llm_zəncir = LLMCain(
        llm=OpenAIApi(),
        axtarış=LangChainRetrieval(
            index=LangChainIndex(
                ad = "mənim_indeks",
                sənədlər =["sənəd1", "sənəd2", "doc3"]
            )
        )
    )

    # LLM zəncirindən istifadə edərək cavab yaradın
    cavab = llm_chain.run(request.GET.get("sorğu"))

    JsonResponse ({"cavab": cavab}) qaytarın

Bu misalda sorğunu giriş kimi qəbul edən və LLM zəncirindən istifadə edərək cavab yaradan “rag” baxış funksiyasını təyin edirik.

LangChain ilə RAG-ın təşkili

LangChain, RAG texnikalarını idarə etmək üçün sadə və səmərəli bir yol təqdim edir. Budur, RAG-ı idarə etmək üçün LangChain-dən necə istifadə olunacağını göstərən nümunə kod bloku:

langchain idxal LMChain-dən
langchain.chains.openai-dən OpenAIApi idxal edin

# LLM zəncirini müəyyənləşdirin
llm_zəncir = LLMCain(
    llm=OpenAIApi(),
    axtarış=LangChainRetrieval(
        index=LangChainIndex(
            ad = "mənim_indeks",
            sənədlər =["sənəd1", "sənəd2", "doc3"]
        )
    )
)

# LLM zəncirindən istifadə edərək cavab yaradın
cavab = llm_chain.run("RAG nədir?")

çap (cavab)

Bu nümunədə biz LangChain-dən LLMCain sinfindən istifadə edərək LLM zəncirini təyin edirik. Daha sonra LLM zəncirindən istifadə edərək cavab yaratmaq üçün “run” metodundan istifadə edirik.

Ən çox istifadə olunan 5-10 əmr/parça

FastAPI və Django ilə RAG tətbiq etmək üçün ən çox istifadə edilən 5-10 əmr/parçalar bunlardır:

  1. langchain import LLMCain-dən: LangChain-dən LLMCain sinfini idxal edin.
  2. llm_chain = LLMCain(llm=OpenAIApi(), axtarış=LangChainRetrieval(index=LangChainIndex(name="my_index", sənədlər =["doc1", "doc2", "doc3"]))): LLMCha sinfindən istifadə edərək LLM zəncirini təyin edin.
  3. cavab = llm_chain.run(query): LLM zəncirindən istifadə edərək cavab yaradın.
  4. from fastapi import FastAPI: FastAPI-dən FastAPI sinfini idxal edin.
  5. app = FastAPI(): FastAPI tətbiqini müəyyənləşdirin.
  6. @app.get("/rag"): RAG son nöqtəsi üçün marşrut təyin edin.
  7. llm_chain = LLMCain(llm=OpenAIApi(), axtarış=LangChainRetrieval(index=LangChainIndex(name="my_index", sənədlər =["doc1", "doc2", "doc3"]))): LLMCha sinfindən istifadə edərək LLM zəncirini təyin edin.
  8. cavab = llm_chain.run(query): LLM zəncirindən istifadə edərək cavab yaradın.
  9. django.http import JsonResponse: Django-dan JsonResponse sinfini idxal edin.
  10. return JsonResponse({"response": respond}): Yaradılmış cavabla JSON cavabını qaytarın.

Vizuallaşdırma

Budur, Chart.js istifadə edərək RAG boru kəmərinin vizualizasiyası:

{
  "type": "horizontalBar",
  "data": {
    "etiketlər": ["Alma", "Nəsil", "Post-emal"],
    "verilənlər dəsti": [
      {
        "label": "RAG Pipeline",
        "data": [10, 20, 30],
        "fon Rəngi": [
          "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
      }
    ]
  },
  "seçimlər": {
    "başlıq": {
      "ekran": doğru,
      "text": "RAG Pipeline"
    },
    "tərəzi": {
      "yAxes": [
        {
          "gənə": {
            "beginAtZero": doğrudur
          }
        }
      ]
    }
  }
}

Bu vizuallaşdırma RAG boru kəmərini üç mərhələdə göstərir: axtarış, generasiya və sonrakı emal.

Nəticə

Bu yazıda biz internet proqramlarında LLM imkanlarını artırmaq üçün FastAPI və Django istifadə edərək RAG texnikalarının tətbiqini araşdırdıq, o cümlədən məlumatların fasiləsiz axtarışı və emalı üçün LangChain ilə orkestrasiya. Biz həmçinin FastAPI və Django ilə RAG-nin həyata keçirilməsi üçün praktiki bələdçi təqdim etdik, o cümlədən kod nümunələri və RAG boru kəmərinin vizuallaşdırılması. Ümid edirik ki, bu məqalə RAG texnikalarını veb tətbiqlərində tətbiq etmək istəyən tərtibatçılar üçün faydalı mənbə təmin etmişdir.


Have Questions?

Let's Talk

Contact me on LinkedIn