Kwinjiza RAG (Retrieval-Augmented Generation) hamwe nibikorwa bigezweho byurubuga: Ubuyobozi bufatika
Intangiriro
Mu myaka yashize, urwego rwo gutunganya ururimi karemano (NLP) rwagaragaye cyane mu iterambere ry’indimi nini (LLMs) hamwe n’ibisabwa muri domaine zitandukanye. Ariko, imwe mu mbogamizi zikomeye za LLMs ni ukudashobora kugarura no kwinjiza ubumenyi bwo hanze mubisubizo byabo. Aha niho haza gukinirwa Retrieval-Augmented Generation (RAG). Muri iki kiganiro, tuzasesengura ishyirwa mu bikorwa rya tekinike ya RAG dukoresheje FastAPI na Django kugirango tuzamure ubushobozi bwa LLM mu mbuga za interineti, harimo orchestre hamwe na LangChain yo gushakisha amakuru no kuyatunganya.
RAG ni iki?
RAG ni tekinike ihuza imbaraga za Retrieval na Generation moderi kugirango itange ibisubizo nyabyo kandi bitanga amakuru. Igitekerezo cyibanze inyuma ya RAG nukubanza gukura amakuru ajyanye nubumenyi cyangwa base base, hanyuma ugakoresha aya makuru kugirango utange igisubizo. Ubu buryo butuma LLM ikoresha ubumenyi bwo hanze kandi igatanga ibisubizo nyabyo kandi bitanga amakuru.
Kuki Ukoresha RAG hamwe na FastAPI na Django?
FastAPI na Django ni bibiri murwego rwamamaye rwurubuga rukoreshwa mukubaka porogaramu. Zitanga ibikorwa remezo bikomeye kandi binini byo kubaka imbuga za interineti, kandi birashobora guhuzwa byoroshye na tekinoroji ya RAG kugirango yongere ubushobozi bwa LLM. FastAPI nuburyo bugezweho bwurubuga rutanga uburyo bwihuse kandi bunoze bwo kubaka porogaramu zurubuga, mugihe Django nurwego rwohejuru rwurubuga rutanga ubwubatsi, inyandikorugero, na API zo kubaka porogaramu zikomeye zurubuga.
Gushyira mubikorwa RAG hamwe na FastAPI
FastAPI itanga uburyo bworoshye kandi bunoze bwo gushyira mubikorwa tekinike ya RAG. Dore urugero kode yo guhagarika yerekana uburyo wakoresha FastAPI kugirango ushyire mubikorwa RAG:
`` python kuva muri fastapi kwinjiza FastAPI Kuva kumurongo winjiza LLMChain kuva kumurongo.urunigi.openai itumiza OpenAIApi
porogaramu = FastAPI ()
@ porogaramu.get ("/ rag") async def rag (ikibazo: str):
llm_umurongo = LLMChain (
llm = GufunguraAIApi (),
kugarura = LangChainRetrieval (
indangagaciro = LangChainIndex (
izina = "my_index",
inyandiko = ["doc1", "doc2", "doc3"]
)
)
)
# Tanga igisubizo ukoresheje urunigi rwa LLM
igisubizo = llm_umurongo.run (ikibazo)
garuka {"igisubizo": igisubizo}
`` `
Mururugero, turasobanura urunigi rwa LLM dukoresheje icyiciro cya LLMChain kuva LangChain. Hanyuma dusobanura ibice byo kugarura dukoresheje icyiciro cya "LangChainRetrieval", gikoreshwa mugukuramo amakuru ajyanye nubumenyi cyangwa base base. Hanyuma, dukoresha uburyo bwa 'run` kugirango tubyare igisubizo dukoresheje urunigi rwa LLM.
Gushyira mubikorwa RAG hamwe na Django
Django itanga urwego rwohejuru rwurubuga rushobora guhuzwa byoroshye na tekinoroji ya RAG. Dore urugero code code yerekana uburyo wakoresha Django kugirango ushyire mubikorwa RAG:
`` python kuva django.http itumiza JsonResponse Kuva kumurongo winjiza LLMChain kuva kumurongo.urunigi.openai itumiza OpenAIApi
def rag (gusaba): # Sobanura urunigi rwa LLM llm_umurongo = LLMChain ( llm = GufunguraAIApi (), kugarura = LangChainRetrieval ( indangagaciro = LangChainIndex ( izina = "my_index", inyandiko = ["doc1", "doc2", "doc3"] ) ) )
# Tanga igisubizo ukoresheje urunigi rwa LLM
igisubizo = llm_chain.run (gusaba.GET.get ("ikibazo"))
garuka JsonResponse ({"igisubizo": igisubizo})
`` `
Mururugero, turasobanura imikorere yo kureba rag ifata ikibazo nkicyinjijwe kandi gitanga igisubizo ukoresheje urunigi rwa LLM.
Gutegura RAG hamwe na LangChain
LangChain itanga uburyo bworoshye kandi bunoze bwo gutunganya tekinike ya RAG. Dore urugero kode yo guhagarika yerekana uburyo wakoresha LangChain mugutegura RAG:
`` python Kuva kumurongo winjiza LLMChain kuva kumurongo.urunigi.openai itumiza OpenAIApi
Sobanura urunigi rwa LLM
llm_umurongo = LLMChain ( llm = GufunguraAIApi (), kugarura = LangChainRetrieval ( indangagaciro = LangChainIndex ( izina = "my_index", inyandiko = ["doc1", "doc2", "doc3"] ) ) )
Tanga igisubizo ukoresheje urunigi rwa LLM
igisubizo = llm_chain.run ("RAG ni iki?")
icapiro (igisubizo) `` `
Mururugero, turasobanura urunigi rwa LLM dukoresheje icyiciro cya LLMChain kuva LangChain. Hanyuma dukoresha uburyo bwa 'run` kugirango tubyare igisubizo dukoresheje urunigi rwa LLM.
Hejuru 5-10 Amabwiriza Yakoreshejwe Byinshi / Udukoryo
Hano haribintu 5-10 byambere bikoreshwa cyane / ibisobanuro byo gushyira RAG hamwe na FastAPI na Django:
Kuva kumurongo winjiza LLMChain: Kuzana icyiciro cya LLMChain kuva LangChain.igisubizo = llm_chain.run (ikibazo): Tanga igisubizo ukoresheje urunigi rwa LLM.bivuye muri fastapi itumiza FastAPI: Kuzana icyiciro cyaFastAPIkuva muri FastAPI.porogaramu = FastAPI (): Sobanura porogaramu yihuta.@ app.get (" / rag "): Sobanura inzira igana iherezo rya RAG.igisubizo = llm_chain.run (ikibazo): Tanga igisubizo ukoresheje urunigi rwa LLM.Kuva kuri django.http kwinjiza JsonResponse: Kuzana icyiciro cyaJsonResponsekuva Django.- "Subiza JsonResponse ({" igisubizo ": igisubizo})`: Subiza igisubizo cya JSON hamwe nigisubizo cyatanzwe.
Kubona amashusho
Dore amashusho yumuyoboro wa RAG ukoresheje Chart.js:
json { "ubwoko": "horizontalBar", "amakuru": { "ibirango": ["Gukuramo", "Igisekuru", "Nyuma yo gutunganya"], "imibare": [ { "label": "Umuyoboro wa RAG", "amakuru": [10, 20, 30], "backgroundColor": [ "rgba (255, 99, 132, 0.2)", "rgba (54, 162, 235, 0.2)", "rgba (255, 206, 86, 0.2)" ], "umupaka w'amabara": [ "rgba (255, 99, 132, 1)", "rgba (54, 162, 235, 1)", "rgba (255, 206, 86, 1)" ], "Ubugari bwumupaka": 1 } ] }, "amahitamo": { "umutwe": { "kwerekana": ukuri, "inyandiko": "Umuyoboro wa RAG" }, "umunzani": { "yAxes": [ { "amatiku": { "gutangiraAtZero": ukuri } } ] } } } `
Iyerekwa ryerekana umuyoboro wa RAG ufite ibyiciro bitatu: kugarura, ibisekuruza, na nyuma yo gutunganywa.
Umwanzuro
Muri iki kiganiro, twasuzumye ishyirwa mu bikorwa rya tekinike ya RAG dukoresheje FastAPI na Django kugirango tuzamure ubushobozi bwa LLM mu mbuga za interineti, harimo orchestre hamwe na LangChain yo gushakisha amakuru no kuyatunganya. Twatanze kandi ubuyobozi bufatika bwo gushyira mu bikorwa RAG hamwe na FastAPI na Django, harimo ingero za code hamwe no kwerekana amashusho ya RAG. Turizera ko iyi ngingo yatanze ibikoresho byingirakamaro kubateza imbere bashaka gushyira mubikorwa tekinike ya RAG mubikorwa byabo.