** Isku-dubbaridka RAG (Jiilka La Kordhiyay Dib-u-soo-celinta) iyo Qaab-dhismeedka Shabakadda Casriga ah: Hagaha Waxqabadka ***
hordhac
Sanadihii la soo dhaafay, goobta Habraaca Luqadda Dabiiciga ah (NLP) waxay goob joog u ahayd kor u kac weyn oo xagga horumarinta Hababka Luuqadaha waaweyn (LLMs) iyo codsiyadooda qaybo kala duwan. Si kastaba ha ahaatee, mid ka mid ah xaddidaadaha ugu waaweyn ee LLMs waa awood la'aantooda inay soo ceshadaan oo ay ku daraan aqoonta dibadda jawaabahooda. Tani waa halka farsamooyinka Dib-u-soo-celinta-Augmented Generation (RAG) ay ka ciyaaraan. Maqaalkan, waxaanu sahamin doonaa hirgelinta farsamooyinka RAG iyadoo la adeegsanayo FastAPI iyo Django si kor loogu qaado awoodaha LLM ee codsiyada webka, oo ay ku jiraan abaabulka LangChain ee soo celinta xogta iyo habaynta.
waa maxay RAG?
RAG waa farsamo isku daraysa xoogga moodooyinka Soo-celinta iyo Dhalashada si loo soo saaro jawaabo sax ah oo xog badan leh. Fikradda aasaasiga ah ee ka dambeysa RAG waa in marka hore laga soo saaro macluumaadka ku habboon saldhigga aqoonta ama kaydka xogta, ka dibna la isticmaalo macluumaadkan si loo dhaliyo jawaab. Habkani wuxuu u oggolaanayaa LLM-yada inay ka faa'iidaystaan aqoonta dibadda oo ay bixiyaan jawaabo sax ah oo xog badan leh.
Waa maxay sababta RAG loogu isticmaalo FastAPI iyo Django?
FastAPI iyo Django waa laba ka mid ah qaab-dhismeedka shabakadda ee ugu caansan ee loo isticmaalo dhisidda codsiyada shabakadda. Waxay bixiyaan kaabayaal adag oo la cabbiri karo oo loogu talagalay dhisidda codsiyada shabakadda, waxaana si fudud loogu dari karaa farsamooyinka RAG si kor loogu qaado awoodda LLM. FastAPI waa qaab-dhismeedka shabakada casriga ah ee bixiya hab degdeg ah oo hufan oo lagu dhiso codsiyada webka, halka Django uu yahay qaab-dhismeedka shabakadeed heer sare ah oo bixiya qaab-dhismeedka, qaababka, iyo API-yada si loo dhiso codsiyada webka ee adag.
** Ku hirgalinta RAG FastAPI**
FastAPI waxay bixisaa hab fudud oo hufan oo lagu hirgeliyo farsamooyinka RAG. Waa kuwan tusaale kood ah oo muujinaya sida loo isticmaalo FastAPI si loo hirgeliyo RAG:
`` Python ka soo dejinta fastapi FastAPI Laga soo dejiyo langchain LLMChain ka langchain.chains.openai soo dejinta OpenAIApi
app = FastAPI()
@app.get("/rag") async def rag ( weydii: str):
llm_chain = LLMChain (
llm=OpenAIApi(),
soo celin=LangChainRetrieval(
index=LangChainIndex
name="my_index",
dukumentiyada=["doc1", "doc2", "doc3"]
)
)
)
# Samee jawaab adoo isticmaalaya silsiladda LLM
jawaab = llm_chain.run ( weydiin)
soo celi {"jawaab": jawaab}
``
Tusaalahan, waxaanu ku qeexnay silsiladda LLM anagoo adeegsanayna fasalka LLMChain ee LangChain. Waxaanu markaa ku qeexnaa qayb soo-celinta anagoo adeegsanayna fasalka 'LangChainRetrieval', kaas oo loo isticmaalo in laga soo saaro macluumaadka la xidhiidha saldhiga aqoonta ama kaydka xogta. Ugu dambeyntii, waxaan isticmaalnaa habka 'run' si aan u abuurno jawaab anagoo adeegsanayna silsiladda LLM.
** Ku hirgalinta RAG Django**
Django waxay bixisaa qaab-dhismeedka shabakad heer sare ah oo si fudud loogu dari karo farsamooyinka RAG. Waa kuwan tusaale kood ah oo muujinaya sida loo isticmaalo Django si loo hirgeliyo RAG:
`` Python ka django.http soo dejinta JsonResponse Laga soo dejiyo langchain LLMChain ka langchain.chains.openai soo dejinta OpenAIApi
def rag(codsi): # Qeex silsiladda LLM llm_chain = LLMChain ( llm=OpenAIApi(), soo celin=LangChainRetrieval( index=LangChainIndex name="my_index", dukumentiyada=["doc1", "doc2", "doc3"] ) ) )
# Samee jawaab adoo isticmaalaya silsiladda LLM
jawaab = llm_chain.run(codsi.GET.hel("waydiin"))
soo celi JsonResponse ({"jawaab": jawaab})
``
Tusaalahan, waxaanu ku qeexnay hawl-aragti 'rag' oo u qaadata su'aal ahaan gelinta oo soo saarta jawaab iyadoo la isticmaalayo silsiladda LLM.
** Abaabulka RAG ee LangChain ***
LangChain waxay bixisaa hab fudud oo hufan oo lagu abaabulo farsamooyinka RAG. Waa kuwan tusaale kood ah oo muujinaya sida loo isticmaalo LangChain si loo abaabulo RAG:
`` Python Laga soo dejiyo langchain LLMChain ka langchain.chains.openai soo dejinta OpenAIApi
Qeex silsiladda LLM
llm_chain = LLMChain ( llm=OpenAIApi(), soo celin=LangChainRetrieval( index=LangChainIndex name="my_index", dukumentiyada=["doc1", "doc2", "doc3"] ) ) )
Samee jawaab adoo isticmaalaya silsiladda LLM
jawaab = llm_chain.run ("Waa maxay RAG?")
daabac(jawaab) ``
Tusaalahan, waxaanu ku qeexnay silsiladda LLM anagoo adeegsanayna fasalka LLMChain ee LangChain. Waxaan markaa isticmaalnaa habka 'run' si aan u soo saarno jawaab anagoo adeegsanayna silsiladda LLM.
** 5-10ka ugu sarreeya amarada/Qodobka ugu Isticmaalka badan**
Waa kuwan 5-10ka amarrada ugu badan ee la isticmaalo ee loogu talagalay hirgelinta RAG ee FastAPI iyo Django:
- 'laga soo dejiyo langchain LLMChain': Ka soo deji fasalka 'LLMChain' LangChain.
llm_chain = LLMChain(llm=OpenAIApi(), soo celinta=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))))": Qeex silsiladda LLM adigoo isticmaalaya fasalkaLLMChain`.jawaab = llm_chain.run(waydiin): Samee jawaab adoo isticmaalaya silsiladda LLM.- 'laga soo dejiyo fastapi FastAPI': Ka soo deji fasalka 'FastAPI' FastAPI.
app = FastAPI(): Qeex codsiga FastAPI.@app.get("/rag"): Qeex dariiqa dhamaadka RAG.llm_chain = LLMChain(llm=OpenAIApi(), soo celinta=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"))))))): Qeex silsiladda LLM adigoo isticmaalaya fasalkaLLMChain`.jawaab = llm_chain.run(waydiin): Samee jawaab adoo isticmaalaya silsiladda LLM.- 'ka django.http soo dejinta JsonResponse': Ka soo deji fasalka 'JsonResponse' Django.
- `soo celi JsonResponse({"jawaab": jawaab})': Ku soo celi jawaabta JSON oo leh jawaabta la soo saaray.
Muuqaalka
Halkan waxaa ah muuqaalka dhuumaha RAG iyadoo la adeegsanayo Chart.js:
json { "type": "horisontalBar", "xogta": { "labels": ["Dib u soo celinta", "Generation", "Post-processing"], "datasets": [ { "label": "Qalabka RAG", "xogta": [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 } ] }, "doorashooyinka": { "ciwaan": { "muujin": run, "text": "RAG Dhuumaha" }, "Miisaanka": { "yAxes": [ { "ticks": { "beginAtZero": run } } ] } } }
Aragtidani waxay tusinaysaa dhuumaha RAG oo leh saddex marxaladood: dib u soo celin, jiil, iyo habayn ka dib.
** Gabagabo**
Maqaalkan, waxaan sahaminay hirgelinta farsamooyinka RAG iyadoo la adeegsanayo FastAPI iyo Django si kor loogu qaado awoodaha LLM ee codsiyada webka, oo ay ku jiraan abaabulka LangChain ee soo celinta xogta iyo habaynta. Waxaan sidoo kale siinay hage wax ku ool ah oo lagu fulinayo RAG FastAPI iyo Django, oo ay ku jiraan tusaalayaal kood ah iyo muuqaalka dhuumaha RAG. Waxaan rajeyneynaa in maqaalkani uu siiyay kheyraad faa'iido leh oo loogu talagalay horumarinta kuwaas oo raadinaya inay hirgeliyaan farsamooyinka RAG ee codsiyadooda webka.