Ijikọ RAG (Ọgbọ eweghachite-Augmented) na usoro Weebụ ọgbara ọhụrụ: Ntuziaka bara uru | B4N1

Ijikọ RAG (Ọgbọ eweghachite-Augmented) na usoro Weebụ ọgbara ọhụrụ: Ntuziaka bara uru

9 months ago · b4n1 Read time: 4 min

** Ijikọ RAG (Ọgbọ eweghachite-Augmented) na usoro Weebụ ọgbara ọhụrụ: ntuziaka bara uru ***

** Okwu mmalite**

N'ime afọ ndị na-adịbeghị anya, ngalaba nke Nhazi Asụsụ Eke (NLP) ahụla nnukwu mmụba na mmepe nke Ụdị Asụsụ Large (LLM) na ngwa ha na ngalaba dị iche iche. Agbanyeghị, otu n'ime oke oke nke LLM bụ enweghị ike iweghachite na itinye ihe ọmụma mpụga na nzaghachi ha. Nke a bụ ebe usoro iweghachite-Augmented Generation (RAG) na-abata. N'isiokwu a, anyị ga-enyocha mmejuputa usoro RAG site na iji FastAPI na Django iji kwalite ikike LLM na ngwa weebụ, gụnyere orchestration na LangChain maka iweghachite na nhazi data enweghị nkebi.

Gịnị bụ RAG?

RAG bụ usoro na-ejikọta ike nke ụdị iweghachite na ọgbọ iji mepụta nzaghachi ziri ezi na nke na-enye nkọwa. Echiche bụ isi dị n'azụ RAG bụ ibu ụzọ weghachite ozi dị mkpa site na ntọala ihe ọmụma ma ọ bụ nchekwa data, wee jiri ozi a mepụta nzaghachi. Ụzọ a na-enye ndị LLM ohere iji nweta ihe ọmụma dị n'èzí ma nye azịza ziri ezi na ozi.

** Gịnị kpatara eji RAG na FastAPI na Django?**

FastAPI na Django bụ abụọ n'ime usoro weebụ kachasị ewu ewu nke ejiri wuo ngwa weebụ. Ha na-enye akụrụngwa siri ike na nke nwere ike ibugharị maka iwulite ngwa weebụ, yana enwere ike iji usoro RAG jikọta ngwa ngwa iji kwalite ikike LLM. FastAPI bụ usoro ntanetị nke ọgbara ọhụrụ nke na-enye ụzọ ngwa ngwa na ịrụ ọrụ nke ọma iji wuo ngwa weebụ, ebe Django bụ usoro ntanetị dị elu nke na-enye nhazi, ndebiri, na API maka iwulite ngwa weebụ siri ike.

** Iji FastAPI tinye RAG ***

FastAPI na-enye ụzọ dị mfe ma dị irè iji mejuputa usoro RAG. Nke a bụ ihe atụ ngọngọ koodu na-egosi otu esi eji FastAPI mejuputa RAG:

"Python si fastapi mbubata FastAPI si langchain bubata LLMChain si langchain.chains.openai bubata OpenAIApi

ngwa = FastAPI()

@app.get("/rag") async def rag (ajụjụ: str):

llm_chain = LLMChain (
    llm=OpenAIApi(),
    eweghachi =LangChainRetrieval(
        index=LangChainIndex(
            aha = "my_index",
            akwụkwọ =["doc1", "doc2", "doc3"]
        )
    )
)

# Mepụta nzaghachi site na iji yinye LLM
nzaghachi = llm_chain.run (ajụjụ)

laghachi {"azaghachi": nzaghachi}

``

N'ihe atụ a, anyị na-akọwa ụdọ LLM site na iji klaasị LLMChain' sitere na LangChain. Anyị na-akọwapụta mpaghara nweghachi site na iji klaasị LangChainRetrieval', nke a na-eji weghachi ozi dị mkpa site na ntọala ihe ọmụma ma ọ bụ nchekwa data. N'ikpeazụ, anyị na-eji usoro 'run' iji mepụta nzaghachi site na iji yinye LLM.

** Iji Django tinye RAG ***

Django na-enye usoro ntanetị dị elu nke nwere ike ijikwa usoro RAG ngwa ngwa. Nke a bụ ihe atụ ngọngọ koodu na-egosi otu esi eji Django mejuputa RAG:

"Python si django.http bubata JsonResponse si langchain bubata LLMChain si langchain.chains.openai bubata OpenAIApi

def rag(arịrịọ): # Kọwaa ụdọ LLM llm_chain = LLMChain ( llm=OpenAIApi(), eweghachi =LangChainRetrieval( index=LangChainIndex( aha = "my_index", akwụkwọ =["doc1", "doc2", "doc3"] ) ) )

# Mepụta nzaghachi site na iji yinye LLM
nzaghachi = llm_chain.run(request.GET.get("ajụjụ")

weghachi JsonResponse({"azịza": nzaghachi})

``

Na ọmụmaatụ a, anyị na-akọwapụta ọrụ nlele 'rag' nke na-ewe ajụjụ dị ka ntinye wee wepụta nzaghachi site na iji yinye LLM.

** iji LangChain na-ahazi RAG

LangChain na-enye ụzọ dị mfe ma dịkwa mma iji hazie usoro RAG. Nke a bụ ihe atụ ngọngọ koodu na-egosi otu esi eji LangChain hazie RAG:

"Python si langchain bubata LLMChain si langchain.chains.openai bubata OpenAIApi

Kọwaa ụdọ LLM

llm_chain = LLMChain ( llm=OpenAIApi(), eweghachi =LangChainRetrieval( index=LangChainIndex( aha = "my_index", akwụkwọ =["doc1", "doc2", "doc3"] ) ) )

Mepụta nzaghachi site na iji yinye LLM

nzaghachi = llm_chain.run ("Gịnị bụ RAG?")

ebipụta(nzaghachi) ``

N'ihe atụ a, anyị na-akọwa ụdọ LLM site na iji klaasị `LLMChain' sitere na LangChain. Anyị na-eji usoro 'run' mee nzaghachi site na iji yinye LLM.

** Iwu 5-10 Kachasị Eji mee ihe

Nke a bụ iwu / snippets 5-10 kachasị eji emejuputa RAG na FastAPI na Django:

  1. 'si na langchain bubata LLMChain': Bubata klas'LLMChain' na LangChain.
  2. llm_chain = LLMChain(llm=OpenAIApi(), mgbake = LangChainRetrieval(index=LangChainIndex(aha = "my_index", akwụkwọ = ["doc1", "doc2", "doc3"))))": Kọwaa ụdọ LLM site na iji klas LLMChain`.
  3. `azịza = llm_chain.run(ajụjụ)': Mepụta nzaghachi site na iji yinye LLM.
  4. 'si na fastapi bubata FastAPI': Bubata klas 'FastAPI' na FastAPI.
  5. app = FastAPI(): Kọwaa ngwa FastAPI.
  6. @app.get("/rag"): Kọwaa ụzọ maka njedebe RAG.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2","doc3")))))": Kọwaa ụdọ LLM site na iji klas LLMChain`.
  8. `azịza = llm_chain.run(ajụjụ)': Mepụta nzaghachi site na iji yinye LLM.
  9. si django.http bubata JsonResponse: Bubata klas JsonResponse na Django.
  10. ` nloghachi JsonResponse({"azịza": nzaghachi})': Weghachite nzaghachi JSON site na nzaghachi ewepụtara.

** Nlegharị anya ***

Nke a bụ nleba anya nke pipeline RAG na-eji Chart.js:

Json { "ụdị": "horizontalBar", "data": { "labels": ["Nweghachi", "Ọgbọ", "Nhazi nhazi"], "datasets": [ { "label": "PAPỤRỤ RAG", "data": [10, 20, 30], "backgroundAgba": [ "rgba (255, 99, 132, 0.2)", "rgba (54, 162, 235, 0.2)", "rgba (255, 206, 86, 0.2)" ], "BorderAgba": [ "rgba (255, 99, 132, 1)", "rgba (54, 162, 235, 1)", "rgba (255, 206, 86, 1)" ], "BorderWiidth": 1 } ] }, "Nhọrọ": { " aha": { "ngosi": eziokwu, "ederede": "RAG Pipeline" }, "ọnụego": { "yAxes": [ { "akara aka": { "beginAtZero": eziokwu } } ] } } } ``

Ọhụụ a na-egosi pipeline RAG nwere usoro atọ: iweghachite, ọgbọ, na nhazi nhazi.

Mkpebi

N'isiokwu a, anyị nyochara mmejuputa usoro RAG site na iji FastAPI na Django iji kwalite ikike LLM na ngwa weebụ, gụnyere orchestration na LangChain maka iweghachite na nhazi data enweghị nkebi. Anyị nyekwara ntuziaka bara uru iji mejuputa RAG na FastAPI na Django, gụnyere ihe atụ koodu na nhụta nke pipeline RAG. Anyị na-atụ anya na akụkọ a enyela ndị na-emepụta ihe bara uru na-achọ imejuputa usoro RAG na ngwa weebụ ha.


Have Questions?

Let's Talk

Contact me on LinkedIn