** Iṣajọpọ RAG (Iran Imupadabọ-Imupadabọ) pẹlu Awọn ilana Wẹẹbu ti ode oni: Itọsọna Wulo kan ***
Ibere
Ni awọn ọdun aipẹ, aaye ti Ṣiṣẹda Ede Adayeba (NLP) ti jẹri ilọsiwaju pataki ni idagbasoke Awọn awoṣe Ede nla (LLMs) ati awọn ohun elo wọn ni awọn agbegbe pupọ. Sibẹsibẹ, ọkan ninu awọn idiwọn pataki ti LLMs ni ailagbara wọn lati gba pada ati ṣafikun imọ itagbangba sinu awọn idahun wọn. Eyi ni ibi ti awọn imọ-ẹrọ Imupadabọ-Augmented Generation (RAG) wa sinu ere. Ninu àpilẹkọ yii, a yoo ṣawari imuse ti awọn ilana RAG nipa lilo FastAPI ati Django lati mu awọn agbara LLM ṣiṣẹ ni awọn ohun elo ayelujara, pẹlu orchestration pẹlu LangChain fun igbasilẹ data ti ko ni iyasọtọ ati sisẹ.
Kini RAG?
RAG jẹ ilana kan ti o ṣajọpọ awọn agbara ti Igbapada ati awọn awoṣe Iran lati gbejade awọn idahun deede ati alaye diẹ sii. Ero ipilẹ ti o wa lẹhin RAG ni lati kọkọ gba alaye ti o yẹ lati ipilẹ imọ tabi data data kan, lẹhinna lo alaye yii lati ṣe agbekalẹ esi kan. Ọna yii ngbanilaaye LLMs lati lo imo itagbangba ati pese awọn idahun deede ati alaye diẹ sii.
** Kilode ti Lo RAG pẹlu FastAPI ati Django?**
FastAPI ati Django jẹ meji ninu awọn ilana wẹẹbu olokiki julọ ti a lo fun kikọ awọn ohun elo wẹẹbu. Wọn pese awọn amayederun ti o lagbara ati iwọn fun kikọ awọn ohun elo wẹẹbu, ati pe o le ni irọrun ṣepọ pẹlu awọn ilana RAG lati jẹki awọn agbara LLM. FastAPI jẹ ilana wẹẹbu ode oni ti o pese ọna iyara ati lilo daradara lati kọ awọn ohun elo wẹẹbu, lakoko ti Django jẹ ilana wẹẹbu ti o ga julọ ti o pese faaji, awọn awoṣe, ati awọn API fun kikọ awọn ohun elo wẹẹbu to lagbara.
** Ṣiṣe RAG pẹlu FastAPI ***
FastAPI n pese ọna ti o rọrun ati lilo daradara lati ṣe imuse awọn ilana RAG. Eyi ni apẹẹrẹ koodu Àkọsílẹ ti o ṣe afihan bi o ṣe le lo FastAPI lati ṣe RAG:
`` Python lati fastapi gbe wọle FastAPI lati gbe wọle langchain LLMChain lati langchain.chains.openai gbe wọle OpenAIApi
app = FastAPI()
@app.get("/rag") async def rag (ibeere: str):
llm_chain = LLMChain(
llm=Ṣí AIApi(),
igbapada=LangChainRetrieval(
atọka=LangChainIndex(
orukọ = "my_index",
awọn iwe aṣẹ=["doc1", "doc2", "doc3"]
)
)
)
# Ṣe ipilẹṣẹ esi kan nipa lilo pq LLM
idahun = llm_chain.run (ibeere)
dapada {"esi": esi}
Ninu apẹẹrẹ yii, a ṣe asọye pq LLM kan nipa lilo kilasi `LLMChain` lati LangChain. Lẹhinna a ṣe asọye paati imupadabọ nipa lilo kilasi `LangChainRetrieval`, eyiti a lo lati gba alaye ti o yẹ lati ipilẹ imọ tabi data data kan. Lakotan, a lo ọna `run` lati ṣe ipilẹṣẹ esi nipa lilo pq LLM.
** Ṣiṣe RAG pẹlu Django ***
Django n pese ilana oju opo wẹẹbu ti o ga ti o le ni irọrun ṣepọ pẹlu awọn ilana RAG. Eyi ni apẹẹrẹ koodu Àkọsílẹ ti o ṣe afihan bi o ṣe le lo Django lati ṣe RAG:
`` Python
lati django.http gbe wọle JsonResponse
lati gbe wọle langchain LLMChain
lati langchain.chains.openai gbe wọle OpenAIApi
def rag(beere):
# Ṣetumo pq LLM
llm_chain = LLMChain(
llm=Ṣí AIApi(),
igbapada=LangChainRetrieval(
atọka=LangChainIndex(
orukọ = "my_index",
awọn iwe aṣẹ=["doc1", "doc2", "doc3"]
)
)
)
# Ṣe ipilẹṣẹ esi kan nipa lilo pq LLM
idahun = llm_chain.run (request.GET.gba ("ibeere"))
da JsonResponse pada({"idahun": esi})
Ni apẹẹrẹ yii, a ṣe asọye iṣẹ wiwo kan 'rag' ti o gba ibeere kan bi titẹ sii ati ṣe ipilẹṣẹ esi nipa lilo pq LLM.
** Orchestrating RAG pẹlu LangChain ***
LangChain n pese ọna ti o rọrun ati lilo daradara lati ṣe agbekalẹ awọn ilana RAG. Eyi ni apẹẹrẹ koodu Àkọsílẹ ti o ṣe afihan bi o ṣe le lo LangChain lati ṣe ilana RAG:
`` Python lati gbe wọle langchain LLMChain lati langchain.chains.openai gbe wọle OpenAIApi
Ṣetumo pq LLM
llm_chain = LLMChain( llm=Ṣí AIApi(), igbapada=LangChainRetrieval( atọka=LangChainIndex( orukọ = "my_index", awọn iwe aṣẹ=["doc1", "doc2", "doc3"] ) ) )
Ṣe ipilẹṣẹ esi kan nipa lilo pq LLM
idahun = llm_chain.run ("Kini RAG?")
sita (idahun)
Ninu apẹẹrẹ yii, a ṣe asọye pq LLM kan nipa lilo kilasi `LLMChain` lati LangChain. Lẹhinna a lo ọna `run` lati ṣe ipilẹṣẹ esi nipa lilo pq LLM.
** Top 5-10 Awọn aṣẹ ti a lo julọ / awọn snippets ***
Eyi ni awọn aṣẹ 5-10 ti o lo julọ julọ / awọn snippets fun imuse RAG pẹlu FastAPI ati Django:
1. `lati langchain gbe wọle LLMChain`: gbe kilaasi `LLMChain` wọle lati LangChain.
2. `llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"])))))): Ṣetumo pq LLM kan nipa lilo kilasi `LLMChain`.
3. `Esi = llm_chain.run (ibeere)`: Ṣe ina kan esi nipa lilo awọn LLM pq.
4. `lati fastapi gbe wọle FastAPI`: Gbe wọle kilaasi `FastAPI` lati FastAPI.
5. `app = FastAPI()`: Setumo ohun elo FastAPI.
6. `@app.get("/ rag")`: Ṣetumo ipa-ọna fun aaye ipari RAG.
7. `llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"])))))): Ṣetumo pq LLM kan nipa lilo kilasi `LLMChain`.
8. `Esi = llm_chain.run (ibeere)`: Ṣe ina kan esi nipa lilo awọn LLM pq.
9. `lati django.http gbe wọle JsonResponse`: Gbe kilaasi `JsonResponse` wọle lati Django.
10. `pada JsonResponse({"idahun": idahun})`: Pada esi JSON kan pada pẹlu esi ti ipilẹṣẹ.
** Iworan ***
Eyi ni iwoye ti opo gigun ti epo RAG nipa lilo Chart.js:
`` json
{
"type": "horizontalBar",
"data": {
"labels": ["Ìgbàpadà", "Ìran", "Lẹ́yìn-isẹ́"],
"awọn ipilẹ data": [
{
"label": "Opopona RAG",
"data": [10, 20, 30],
"awọ abẹlẹ": [
"rgba (255, 99, 132, 0.2)",
"rgba (54, 162, 235, 0.2)",
"rgba (255, 206, 86, 0.2)"
],
"Awọ aala": [
"rgba (255, 99, 132, 1)",
"rgba (54, 162, 235, 1)",
"rgba (255, 206, 86, 1)"
],
"AalaWidth": 1
}
]
},
"awọn aṣayan": {
"akọle": {
"ifihan": otitọ,
"text": "RAG Pipeline"
},
"iwọn": {
"yAxes": [
{
"awọn ami": {
"beginAtZero": otitọ
}
}
]
}
}
}
Iwoye yii ṣe afihan opo gigun ti epo RAG pẹlu awọn ipele mẹta: igbapada, iran, ati sisẹ-lẹhin.
Ipari
Ninu àpilẹkọ yii, a ṣawari imuse ti awọn ilana RAG nipa lilo FastAPI ati Django lati mu awọn agbara LLM ṣiṣẹ ni awọn ohun elo ayelujara, pẹlu orchestration pẹlu LangChain fun igbasilẹ data ti ko ni iyasọtọ ati sisẹ. A tun pese itọnisọna to wulo si imuse RAG pẹlu FastAPI ati Django, pẹlu awọn apẹẹrẹ koodu ati iwoye ti opo gigun ti RAG. A nireti pe nkan yii ti pese awọn orisun to wulo fun awọn olupilẹṣẹ ti n wa lati ṣe imuse awọn ilana RAG ni awọn ohun elo wẹẹbu wọn.