Ho kopanya RAG (Retrieval-Augmented Generation) le Meralo ea Sejoale-joale ea Marang-rang: Tataiso e Sebetsang
Selelekela
Lilemong tsa morao tjena, lefapha la Natural Language Processing (NLP) le bone keketseho e kholo ho nts'etsopele ea Mehlala ea Lipuo tse Kholo (LLMs) le ts'ebeliso ea tsona libakeng tse fapaneng. Leha ho le joalo, e 'ngoe ea likhaello tse kholo tsa LLM ke ho se khone ho fumana le ho kenyelletsa tsebo ea kantle ho likarabo tsa bona. Mona ke moo mekhoa ea Retrieval-Augmented Generation (RAG) e sebetsang teng. Sehloohong sena, re tla hlahloba ts'ebetsong ea mekhoa ea RAG e sebelisang FastAPI le Django ho ntlafatsa bokhoni ba LLM lits'ebetsong tsa marang-rang, ho kenyelletsa le 'mino oa liletsa le LangChain bakeng sa ho khutlisa le ho sebetsa ka mokhoa o se nang moeli.
RAG ke eng?
RAG ke mokhoa o kopanyang matla a mehlala ea ho Khutlisa le Meloko ho hlahisa likarabo tse nepahetseng le tse rutang. Taba ea mantlha ka morao ho RAG ke ho qala ka ho fumana tlhaiso-leseling e nepahetseng ho tsoa setsing sa tsebo kapa polokelong ea litaba, ebe o sebelisa tlhahisoleseling ena ho hlahisa karabo. Mokhoa ona o lumella LLMs ho phahamisa tsebo ea kantle le ho fana ka likarabo tse nepahetseng le tse rutang.
Hobaneng o Sebelisa RAG ka FastAPI le Django?
FastAPI le Django ke tse peli tsa meralo e tsebahalang haholo ea webo e sebelisoang ho aha lits'ebetso tsa webo. Ba fana ka lisebelisoa tse matla le tse ka senyehang bakeng sa ho aha lits'ebetso tsa marang-rang, 'me li ka kopanngoa habonolo le mekhoa ea RAG ho ntlafatsa bokhoni ba LLM. FastAPI ke moralo oa sejoale-joale oa marang-rang o fanang ka mokhoa o potlakileng le o sebetsang oa ho aha lits'ebetso tsa marang-rang, athe Django ke moralo oa boemo bo holimo oa marang-rang o fanang ka meralo, litempele le li-API tsa ho aha lits'ebetso tse matla tsa marang-rang.
Ho kenya tšebetsong RAG ka FastAPI
FastAPI e fana ka mokhoa o bonolo le o sebetsang oa ho kenya ts'ebetsong mekhoa ea RAG. Mona ke mohlala oa "code block" o bonts'ang mokhoa oa ho sebelisa FastAPI ho kenya ts'ebetsong RAG:
ho tloha ho fastapi ho kenya FastAPI
ho tsoa ho langchain ho kenya LLMChain
ho tsoa ho langchain.chains.openai import OpenAIApi
app = FastAPI()
@app.get("/rag")
async def rag(potso: str):
llm_chain = LLMChain(
llm=OpenAIApi(),
retrieval=LangChainRetrieval(
index=LangChainIndex(
lebitso = "index_yaka",
litokomane="doc1", "doc2", "doc3"]
)
)
)
# Hlahisa karabo u sebelisa ketane ea LLM
karabo = llm_chain.run(potso)
khutlisetsa {"karabo": karabo}
Mohlala ona, re hlalosa ketane ea LLM ho sebelisa sehlopha sa LLMChain ho tloha LangChain. Ka mor'a moo re hlalosa karolo ea ho khutlisa re sebelisa sehlopha sa LangChainRetrieval, se sebelisetsoang ho fumana lintlha tse nepahetseng ho tloha setsing sa tsebo kapa polokelong ea boitsebiso. Qetellong, re sebelisa mokhoa oa run ho hlahisa karabo re sebelisa ketane ea LLM.
Ho kenya tšebetsong RAG le Django
Django e fana ka moralo oa marang-rang oa boemo bo holimo o ka kopanngoang habonolo le mekhoa ea RAG. Mona ke mohlala oa "code block" o bonts'ang mokhoa oa ho sebelisa Django ho kenya ts'ebetsong RAG:
ho tsoa ho django.http import JsonResponse
ho tsoa ho langchain ho kenya LLMChain
ho tsoa ho langchain.chains.openai import OpenAIApi
def rag (kopo):
# Hlalosa ketane ea LLM
llm_chain = LLMChain(
llm=OpenAIApi(),
retrieval=LangChainRetrieval(
index=LangChainIndex(
lebitso = "index_yaka",
litokomane="doc1", "doc2", "doc3"]
)
)
)
# Hlahisa karabo u sebelisa ketane ea LLM
karabo = llm_chain.run(request.GET.get("potso"))
return JsonResponse({"karabo": karabo})
Mohlaleng ona, re hlalosa mosebetsi oa ho sheba rag o nkang potso e le ho kenya letsoho mme o hlahisa karabo o sebelisa ketane ea LLM.
Ho hlophisa RAG ka LangChain
LangChain e fana ka mokhoa o bonolo le o sebetsang oa ho hlophisa mekhoa ea RAG. Mona ke mohlala oa "code block" o bonts'ang mokhoa oa ho sebelisa LangChain ho hlophisa RAG:
ho tsoa ho langchain ho kenya LLMChain
ho tsoa ho langchain.chains.openai import OpenAIApi
# Hlalosa ketane ea LLM
llm_chain = LLMChain(
llm=OpenAIApi(),
retrieval=LangChainRetrieval(
index=LangChainIndex(
lebitso = "index_yaka",
litokomane="doc1", "doc2", "doc3"]
)
)
)
# Hlahisa karabo u sebelisa ketane ea LLM
karabo = llm_chain.run("RAG ke eng?")
hatisa(karabo)
Mohlala ona, re hlalosa ketane ea LLM ho sebelisa sehlopha sa LLMChain ho tloha LangChain. Ebe re sebelisa mokhoa oa run ho hlahisa karabo re sebelisa ketane ea LLM.
Kaholimo ho 5-10 Litaelo/Lipotlana tse Sebelisitsoeng ka ho Fetisisa
Mona ke tse 5-10 tse sebelisoang ka ho fetesisa ho sebelisa RAG ka FastAPI le Django:
ho tsoa ho langchain import LLMChain: Reka sehlopha saLLMChainho tloha LangChain.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Hlalosa ketane ea LLM o sebelisa sehlopha saLLMChain.response = llm_chain.run(potso): Hlahisa karabo ka ketane ea LLM.ho tloha ho fastapi import FastAPI: Kenya sehlopha saFastAPIho tloha FastAPI.app = FastAPI(): Hlalosa kopo ea FastAPI.@app.get("/rag"): Hlalosa tsela bakeng sa pheletso ea RAG.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Hlalosa ketane ea LLM o sebelisa sehlopha saLLMChain.response = llm_chain.run(potso): Hlahisa karabo ka ketane ea LLM.ho tsoa ho django.http import JsonResponse: Fumana sehlopha saJsonResponseho tsoa ho Django.khutlisa JsonResponse({"karabo": karabo}): Khutlisa karabo ea JSON le karabo e hlahisitsoeng.
Pono ya pono
Mona ke pono ea lipeipi tsa RAG tse sebelisang Chart.js:
{
"type": "horizontalBar",
"data": {
"labels": ["Retrieval", "Generation", "Post-processing"],
"lintlha tsa boitsebiso": [
{
"label": "RAG Pipeline",
"data": [10, 20, 30],
"backgroundColour": [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)"
],
"Mmala oa moeli": [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)"
],
"borderWidth": 1
}
]
},
"likgetho": {
"sehlooho": {
"bontša": 'nete,
"text": "RAG Pipeline"
},
"makala": {
"yAxes": [
{
"li-ticks": {
"beginAtZero": 'nete
}
}
]
}
}
}
Ponahalo ena e bonts'a phaephe ea RAG e nang le mekhahlelo e meraro: ho khutlisa, ho hlahisa, le ho sebetsa ka morao.
Qetello
Sehloohong sena, re ile ra hlahloba ts'ebetsong ea mekhoa ea RAG e sebelisang FastAPI le Django ho ntlafatsa bokhoni ba LLM lits'ebetsong tsa marang-rang, ho kenyelletsa le 'mino oa liletsa le LangChain bakeng sa ho khutlisa le ho sebetsa ka mokhoa o se nang moeli. Re boetse re fane ka tataiso e sebetsang ea ho kenya ts'ebetsong RAG ka FastAPI le Django, ho kenyelletsa le mehlala ea khoutu le pono ea lipeipi tsa RAG. Re tšepa hore sengoloa sena se fane ka sesebelisoa se molemo bakeng sa bahlahisi ba batlang ho kenya ts'ebetsong mekhoa ea RAG lits'ebetsong tsa bona tsa webo.