RAG (Retrieval-Augmented Generation) заманауи веб-фрамворктармен біріктіру: практикалық нұсқаулық | B4N1

RAG (Retrieval-Augmented Generation) заманауи веб-фрамворктармен біріктіру: практикалық нұсқаулық

9 months ago · b4n1 Tiempo de lectura: 3 min

RAG (Retrieval-Augmented Generation) заманауи веб фреймворктермен біріктіру: практикалық нұсқаулық

Кіріспе

Соңғы жылдары табиғи тілді өңдеу (NLP) саласы Үлкен тілдік модельдердің (LLM) және олардың әртүрлі салалардағы қолданбаларының дамуының айтарлықтай өсуіне куә болды. Дегенмен, LLM-дің негізгі шектеулерінің бірі - олардың жауаптарына сыртқы білімді алу және қосу қабілетсіздігі. Бұл жерде Retrieval-Augmented Generation (RAG) әдістері ойнайды. Бұл мақалада біз веб-қосымшалардағы LLM мүмкіндіктерін жақсарту үшін FastAPI және Django көмегімен RAG әдістерін енгізуді зерттейміз, соның ішінде деректерді үздіксіз алу және өңдеу үшін LangChain көмегімен оркестрлеу.

RAG дегеніміз не?

RAG дәлірек және ақпараттандыратын жауаптарды шығару үшін Retrieval және Generation үлгілерінің күшті жақтарын біріктіретін әдіс болып табылады. RAG-тың негізгі идеясы - алдымен білім қорынан немесе дерекқордан тиісті ақпаратты алу, содан кейін бұл ақпаратты жауап жасау үшін пайдалану. Бұл тәсіл LLM-ге сыртқы білімді пайдалануға және дәлірек және ақпараттылық жауаптар беруге мүмкіндік береді.

Неге FastAPI және Django көмегімен RAG пайдалану керек?

FastAPI және Django - бұл веб-қосымшаларды құру үшін қолданылатын ең танымал веб-фремворктердің екеуі. Олар веб-қосымшаларды құру үшін сенімді және масштабталатын инфрақұрылымды қамтамасыз етеді және LLM мүмкіндіктерін жақсарту үшін RAG әдістерімен оңай біріктірілуі мүмкін. FastAPI - бұл веб-қосымшаларды құрудың жылдам және тиімді жолын ұсынатын заманауи веб-құрастыру, ал Django - сенімді веб-қосымшаларды құру үшін архитектураны, үлгілерді және API интерфейстерін ұсынатын жоғары деңгейлі веб-құрастыру.

** FastAPI көмегімен RAG енгізу**

FastAPI RAG әдістерін енгізудің қарапайым және тиімді әдісін ұсынады. Міне, RAG іске асыру үшін FastAPI қалай пайдалану керектігін көрсететін мысал код блогы:

fastapi импортынан FastAPI
langchain импортынан LMChain
langchain.chains.openai ішінен OpenAIApi импорттау

қолданба = FastAPI()

@app.get("/rag")
async def rag(сұрау: str):
    
    llm_chain = LLMCchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            индекс=LangChainIndex(
                аты = "менің_көрсеткішім",
                құжаттар=["doc1", "doc2", "doc3"]
            )
        )
    )

    # LLM тізбегін пайдаланып жауап жасаңыз
    жауап = llm_chain.run(сұрау)

    қайтару {"жауап": жауап}

Бұл мысалда біз LLM тізбегін LangChain 'LLMCain' сыныбы арқылы анықтаймыз. Содан кейін білім қорынан немесе дерекқордан тиісті ақпаратты алу үшін пайдаланылатын «LangChainRetrieval» сыныбы арқылы іздеу құрамдас бөлігін анықтаймыз. Соңында, LLM тізбегін пайдаланып жауап жасау үшін «іске қосу» әдісін қолданамыз.

Django көмегімен RAG енгізу

Django RAG әдістерімен оңай біріктіруге болатын жоғары деңгейлі веб-қамтамасыз етеді. Міне, RAG іске асыру үшін Django қалай пайдалану керектігін көрсететін мысал код блогы:

django.http ішінен JsonResponse импорттау
langchain импортынан LMChain
langchain.chains.openai ішінен OpenAIApi импорттау

def rag (сұраныс):
    # LLM тізбегін анықтаңыз
    llm_chain = LLMCchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            индекс=LangChainIndex(
                аты = "менің_көрсеткішім",
                құжаттар=["doc1", "doc2", "doc3"]
            )
        )
    )

    # LLM тізбегін пайдаланып жауап жасаңыз
    жауап = llm_chain.run(request.GET.get("сұрау"))

    JsonResponse қайтару({"жауап": жауап})

Бұл мысалда сұрауды кіріс ретінде қабылдайтын және LLM тізбегін пайдаланып жауап жасайтын «rag» көрініс функциясын анықтаймыз.

LangChain көмегімен RAG ұйымдастыру

LangChain RAG әдістерін басқарудың қарапайым және тиімді әдісін ұсынады. Мұнда RAG басқару үшін LangChain қалай пайдалану керектігін көрсететін мысал код блогы берілген:

langchain импортынан LMChain
langchain.chains.openai ішінен OpenAIApi импорттау

# LLM тізбегін анықтаңыз
llm_chain = LLMCchain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        индекс=LangChainIndex(
            аты = "менің_көрсеткішім",
            құжаттар=["doc1", "doc2", "doc3"]
        )
    )
)

# LLM тізбегін пайдаланып жауап жасаңыз
жауап = llm_chain.run («RAG дегеніміз не?»)

басып шығару (жауап)

Бұл мысалда біз LLM тізбегін LangChain 'LLMCain' сыныбы арқылы анықтаймыз. Содан кейін LLM тізбегін пайдаланып жауапты жасау үшін «іске қосу» әдісін қолданамыз.

Ең көп қолданылатын 5-10 пәрмендер/үзінділер

Мұнда FastAPI және Django көмегімен RAG енгізу үшін ең көп қолданылатын 5-10 командалар/үзінділер берілген:

  1. langchain импортынан LLMChain: LangChain жүйесінен LLMChain сыныбын импорттаңыз.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", құжаттар=["doc1", "doc2", "doc3"]))): LLMCha сыныбы арқылы LLM тізбегін анықтаңыз.
  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"]))): LLMCha сыныбы арқылы LLM тізбегін анықтаңыз.
  8. response = llm_chain.run(query): LLM тізбегін пайдаланып жауапты жасаңыз.
  9. django.http import JsonResponse: Django-дан JsonResponse сыныбын импорттаңыз.
  10. return JsonResponse({"response": response}): Жасалған жауаппен JSON жауабын қайтарыңыз.

визуализация

Мұнда Chart.js арқылы RAG құбырының визуализациясы берілген:

{
  "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 құбырын көрсетеді: іздеу, генерациялау және кейінгі өңдеу.

Қорытынды

Бұл мақалада біз веб-қосымшалардағы LLM мүмкіндіктерін жақсарту үшін FastAPI және Django көмегімен RAG әдістерін енгізуді зерттедік, соның ішінде деректерді үздіксіз алу және өңдеу үшін LangChain көмегімен оркестрлеу. Сондай-ақ, біз RAG бағдарламасын FastAPI және Django көмегімен енгізу бойынша практикалық нұсқаулықты, соның ішінде код мысалдарын және RAG құбырының визуализациясын ұсындық. Бұл мақала RAG әдістерін веб-қосымшаларында енгізгісі келетін әзірлеушілер үшін пайдалы ресурс берді деп үміттенеміз.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn