RAG (Gözleg-giňeldilen nesil) häzirki zaman web çarçuwalary bilen birleşdirmek: Amaly gollanma | B4N1

RAG (Gözleg-giňeldilen nesil) häzirki zaman web çarçuwalary bilen birleşdirmek: Amaly gollanma

9 months ago · b4n1 Tiempo de lectura: 4 min

RAG-ny (Gözleg-giňeldilen nesil) häzirki zaman web çarçuwalary bilen birleşdirmek: amaly gollanma

Giriş

Soňky ýyllarda Tebigy dilleri gaýtadan işlemek (NLP) pudagy Uly dil modelleriniň (LLM) ösüşiniň we dürli domenlerde ulanylyşynyň ep-esli ýokarlanmagyna şaýat boldy. Şeýle-de bolsa, LLM-leriň esasy çäklendirmelerinden biri, daşarky bilimleri alyp bilmezligi we jogaplaryna goşmazlygydyr. Ynha, “Retrieval-Augmented Generation” (RAG) usullary güýje girýär. Bu makalada, web programmalarynda LLM mümkinçiliklerini ýokarlandyrmak üçin, şol sanda maglumatlary yzygiderli gözlemek we gaýtadan işlemek üçin LangChain bilen orkestr döretmek üçin FastAPI we Django ulanyp, RAG usullarynyň durmuşa geçirilişini öwreneris.

RAG näme?

RAG has takyk we maglumat beriji jogaplary çykarmak üçin Gözleg we nesil modelleriniň güýçli taraplaryny birleşdirýän usuldyr. RAG-yň esasy pikiri ilki bilen bilim bazasyndan ýa-da maglumat bazasyndan degişli maglumatlary almak, soň bolsa jogap döretmek üçin bu maglumatlary ulanmak. Bu çemeleşme LLM-lere daşarky bilimleri ulanmaga we has takyk we maglumat beriji jogaplary bermäge mümkinçilik berýär.

Näme üçin RAG-ny FastAPI we Django bilen ulanmaly?

FastAPI we Django, web programmalaryny gurmak üçin ulanylýan iň meşhur web çarçuwasydyr. Web programmalaryny gurmak üçin ygtybarly we ulaldylan infrastrukturany üpjün edýär we LLM mümkinçiliklerini ýokarlandyrmak üçin RAG usullary bilen aňsat birleşdirilip bilner. “FastAPI” web programmalaryny gurmagyň çalt we täsirli usulyny üpjün edýän häzirki zaman web çarçuwasydyr, Django bolsa berk web programmalaryny gurmak üçin arhitekturany, şablonlary we API-leri üpjün edýän ýokary derejeli web çarçuwasydyr.

RAG-ny FastAPI bilen ýerine ýetirmek

FastAPI RAG usullaryny durmuşa geçirmegiň ýönekeý we täsirli usulyny hödürleýär. Ine, RAG-y durmuşa geçirmek üçin FastAPI-ni nädip ulanmalydygyny görkezýän kod bloky:

`` piton fastapi importyndan FastAPI langchain importyndan LLMChain langchain.chains.openai-dan OpenAIApi import ediň

programma = FastAPI ()

@ app.get ("/ rag") async def rag (talap: str):

llm_chain = LLMChain (
    llm = OpenAIApi (),
    gözlemek = LangChainRetrieval (
        indeks = LangChainIndex (
            name = "my_index",
            resminamalar = ["doc1", "doc2", "doc3"]
        )
    )
)

# LLM zynjyryny ulanyp jogap dörediň
jogap = llm_chain.run (talap)

gaýdyp {"jogap": jogap}

``

Bu mysalda, LangChain-den "LLMChain" synpyny ulanyp, LLM zynjyryny kesgitleýäris. Soňra bilim bazasyndan ýa-da maglumat bazasyndan degişli maglumatlary almak üçin ulanylýan "LangChainRetrieval" synpyny ulanyp, gözleg komponentini kesgitleýäris. Ahyrynda, LLM zynjyryny ulanyp jogap döretmek üçin "run" usulyny ulanýarys.

Django bilen RAG-ny durmuşa geçirmek

Django, RAG usullary bilen aňsat birleşdirilip bilinjek ýokary derejeli web çarçuwasyny üpjün edýär. Ine, RAG-ny durmuşa geçirmek üçin Django-ny nädip ulanmalydygyny görkezýän kod bloky:

`` piton django.http-den import JsonResponse langchain importyndan LLMChain langchain.chains.openai-dan OpenAIApi import ediň

def rag (haýyş): # LLM zynjyryny kesgitläň llm_chain = LLMChain ( llm = OpenAIApi (), gözlemek = LangChainRetrieval ( indeks = LangChainIndex ( name = "my_index", resminamalar = ["doc1", "doc2", "doc3"] ) ) )

# LLM zynjyryny ulanyp jogap dörediň
jogap = llm_chain.run (haýyş.GET.get ("talap"))

JsonResponse gaýtar ({"jogap": jogap})

``

Bu mysalda, giriş hökmünde LLM zynjyryny ulanyp jogap berýän “rag” görnüş funksiýasyny kesgitleýäris.

LangChain bilen RAG orkestri

LangChain, RAG usullaryny orkestrlemegiň ýönekeý we täsirli usulyny hödürleýär. Ine, RAG-y orkestrlemek üçin LangChain-den nädip peýdalanmalydygyny görkezýän kod bloky:

`` piton langchain importyndan LLMChain langchain.chains.openai-dan OpenAIApi import ediň

LLM zynjyryny kesgitläň

llm_chain = LLMChain ( llm = OpenAIApi (), gözlemek = LangChainRetrieval ( indeks = LangChainIndex ( name = "my_index", resminamalar = ["doc1", "doc2", "doc3"] ) ) )

LLM zynjyryny ulanyp jogap dörediň

jogap = llm_chain.run ("RAG näme?")

çap (jogap) ``

Bu mysalda, LangChain-den "LLMChain" synpyny ulanyp, LLM zynjyryny kesgitleýäris. Soňra LLM zynjyryny ulanyp jogap döretmek üçin "run" usulyny ulanýarys.

Iň köp ulanylýan buýruklar / bölekler

RAG-ny FastAPI we Django bilen ýerine ýetirmek üçin iň köp ulanylýan 5-10 buýruk / bölek:

  1. "Langchain importyndan LLMChain": "LLMChain" synpyny LangChain-den import ediň.
  2. "Llm_chain = LLMChain (llm = OpenAIApi (), gözlemek = LangChainRetrieval (index = LangChainIndex (name =" my_index ", resminamalar = [" doc1 "," doc2 "," doc3 "]))):" LLMChain "synpyny ulanyp LLM zynjyryny kesgitläň.
  3. "Jogap = llm_chain.run (talap)": LLM zynjyryny ulanyp jogap dörediň.
  4. "Fastapi import FastAPI" -den: "FastAPI" synpyny FastAPI-den import ediň.
  5. "Programma = FastAPI ()": FastAPI programmasyny kesgitläň.
  6. "@ App.get (" / rag ")`: RAG ahyrky nokady üçin ugry kesgitläň.
  7. "Llm_chain = LLMChain (llm = OpenAIApi (), gözlemek = LangChainRetrieval (index = LangChainIndex (name =" my_index ", resminamalar =
  8. "response = llm_chain.run (talap)": LLM zynjyryny ulanyp jogap dörediň.
  9. "Django.http-den JsonResponse import": Django-dan "JsonResponse" synpyny import ediň.
  10. "JsonResponse gaýtaryň ({" jogap ": jogap})`: Döredilen jogap bilen JSON jogabyny gaýtaryň.

Wizuallaşdyrma

Ine, Chart.js ulanyp, RAG turbageçirijisiniň wizual görnüşi:

json { "görnüş": "gorizontalBar", "maglumatlar": { "bellikler": ["Gözleg", "Nesil", "Gaýtadan işlemek"], "maglumat bazalary": [ { "bellik": "RAG turbageçiriji", "maglumatlar": [10, 20, 30], "backgroundColor": [ "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 } ] }, "opsiýalar": { "title": { "görkezmek": dogry, "text": "RAG turbageçiriji" }, "terezisi": { "yAxes": [ { "bellikler": { "startAtZero": dogry } } ] } } }

Bu wizuallaşdyrma RAG turbageçirijisini üç basgançakly görkezýär: gözlemek, öndürmek we gaýtadan işlemek.

Netije

Bu makalada, web programmalarynda LLM mümkinçiliklerini ýokarlandyrmak üçin, şol sanda maglumatlary yzygiderli gözlemek we gaýtadan işlemek üçin LangChain bilen orkestr döretmek üçin FastAPI we Django ulanyp, RAG usullarynyň durmuşa geçirilişini öwrendik. Şeýle hem, kod mysallary we RAG turbageçirijisini wizuallaşdyrmak ýaly FastAPI we Django bilen RAG-ny durmuşa geçirmek üçin amaly gollanma berdik. Bu makala, web programmalarynda RAG usullaryny ornaşdyrmak isleýän döredijiler üçin peýdaly çeşme berdi diýip umyt edýäris.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn