** Tu'ufa'atasia le RAG (Toe Fa'aopoopoina Fa'atupuina) fa'atasi ma Ta'iala Fa'aonaponei: O se Ta'iala Fa'atino**
Fa'atomuaga
I tausaga talu ai nei, o le fanua o le Natural Language Processing (NLP) ua molimauina se siʻitia tele i le atinaʻeina o Large Language Models (LLMs) ma a latou talosaga i vaega eseese. Ae ui i lea, o se tasi o tapulaʻa tele o LLM o lo latou le mafai ona toe aumai ma faʻaogaina le malamalama mai fafo i a latou tali. O i'inei e fa'atino ai faiga fa'atupu fa'atupu fa'aopoopo (RAG). I totonu o lenei tusiga, o le a matou suʻesuʻeina le faʻatinoina o auala RAG e faʻaaoga ai FastAPI ma Django e faʻaleleia ai le gafatia o le LLM i luga o upega tafaʻilagi, e aofia ai le tuʻufaʻatasia ma LangChain mo le toe maua ma le faʻaogaina o faʻamaumauga.
O le a le RAG?
O le RAG o se metotia e tuʻufaʻatasia ai le malosi o le Retrieval and Generation models e maua ai tali saʻo ma faʻamatalaga. O le manatu autu i tua o le RAG o le toe aumai muamua faʻamatalaga talafeagai mai se faʻamatalaga faʻamatalaga poʻo se faʻamaumauga, ona faʻaaoga lea o faʻamatalaga e faʻatupu ai se tali. O lenei faiga e mafai ai e LLM ona fa'aogaina le malamalama mai fafo ma tu'uina atu tali sa'o ma fa'amatalaga.
Aisea e Fa'aaoga ai le RAG ma FastAPI ma Django?
O le FastAPI ma le Django e lua o ta'iala sili ona ta'uta'ua i luga ole laiga e fa'aogaina mo le fausiaina o upegatafa'ilagi. Latou te tuʻuina atu se atinaʻe malosi ma faʻalauteleina mo le fausiaina o upega tafaʻilagi, ma e mafai ona faigofie ona tuʻufaʻatasia ma auala RAG e faʻaleleia atili ai le mafai LLM. O le FastAPI ose fa'alāpotopotoga i luga ole laiga fa'aonaponei e maua ai se auala vave ma lelei e fausia ai fa'aoga i luga ole laiga, a'o Django ose fa'asologa o upegatafa'ilagi maualuga e maua ai se fausaga, fa'ata'ita'iga, ma API mo le fauina o upegatafa'ilagi malolosi.
Faʻaaogaina RAG ma FastAPI
O le FastAPI o loʻo tuʻuina atu se auala faigofie ma lelei e faʻatino ai metotia RAG. O se faʻataʻitaʻiga poloka poloka e faʻaalia ai le faʻaogaina o le FastAPI e faʻatino ai le RAG:
mai fastapi faaulufale mai FastAPI
mai langchain faaulufale mai LLMChain
mai langchain.chains.openai faaulufale mai OpenAIApi
app = FastAPI()
@app.get("/rag")
async def rag(fesili: str):
llm_chain = LLMChain(
llm=OpenAIApi(),
toe maua=LangChainRetrieval(
index=LangChainIndex(
igoa="my_index",
pepa = ["doc1", "doc2", "doc3"]
)
)
)
# Fausia se tali e faʻaaoga ai le filifili LLM
tali = llm_chain.run(fesili)
toe faafoi {"response": tali}
I lenei faʻataʻitaʻiga, matou te faʻamatalaina se filifili LLM e faʻaaoga ai le vasega 'LLMChain' mai LangChain. Ona matou faʻamalamalamaina lea o se vaega e maua mai ai e faʻaaoga ai le vasega LangChainRetrieval, lea e faʻaaogaina e toe maua mai ai faʻamatalaga talafeagai mai se faʻamatalaga malamalama poʻo se faʻamaumauga. Ma le mea mulimuli, matou te faʻaogaina le 'tafe' auala e faʻatupu ai se tali e faʻaaoga ai le filifili LLM.
Faʻaaogaina RAG ma Django
Django o loʻo tuʻuina atu se 'upega tafaʻilagi maualuga maualuga e mafai ona faigofie ona tuʻufaʻatasia ma metotia RAG. O se faʻataʻitaʻiga poloka poloka e faʻaalia ai le faʻaogaina o Django e faʻatino ai le RAG:
mai le django.http fa'aulufale mai JsonResponse
mai langchain faaulufale mai LLMChain
mai langchain.chains.openai faaulufale mai OpenAIApi
def ieie(tatalo):
# Fa'amatala le filifili LLM
llm_chain = LLMChain(
llm=OpenAIApi(),
toe maua=LangChainRetrieval(
index=LangChainIndex(
igoa="my_index",
pepa = ["doc1", "doc2", "doc3"]
)
)
)
# Fausia se tali e faʻaaoga ai le filifili LLM
tali = llm_chain.run(request.GET.get("query"))
toe faafoi JsonResponse({"tali": tali})
I lenei faʻataʻitaʻiga, matou te faʻamatalaina se galuega faʻaaliga 'rag' e ave ai se fesili e fai ma faʻaoga ma faʻatupuina se tali e faʻaaoga ai le filifili LLM.
Orchestrating RAG ma LangChain
LangChain e tuʻuina atu se auala faigofie ma lelei e faʻapipiʻi ai metotia RAG. O se faʻataʻitaʻiga poloka poloka e faʻaalia ai le faʻaogaina o le LangChain e faʻapipiʻi ai le RAG:
mai langchain faaulufale mai LLMChain
mai langchain.chains.openai faaulufale mai OpenAIApi
# Fa'amatala le filifili LLM
llm_chain = LLMChain(
llm=OpenAIApi(),
toe maua=LangChainRetrieval(
index=LangChainIndex(
igoa="my_index",
pepa = ["doc1", "doc2", "doc3"]
)
)
)
# Fausia se tali e faʻaaoga ai le filifili LLM
tali = llm_chain.run("O le a le RAG?")
lolomi(tali)
I lenei faʻataʻitaʻiga, matou te faʻamatalaina se filifili LLM e faʻaaoga ai le vasega 'LLMChain' mai LangChain. Ona matou fa'aogaina lea o le 'run' auala e fa'atupu ai se tali e fa'aaoga ai le filifili LLM.
Poloaiga/Snippets pito i luga 5-10 Fa'aaogaina
O le pito i luga 5-10 sili ona faʻaaogaina tulafono / snippets mo le faʻatinoina o le RAG ma FastAPI ma Django:
mai langchain import LLMChain: Auina mai le vasegaLLMChainmai LangChain.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Fa'amatala se filifili LLM e fa'aaoga ai le vasegaLLMChain.tali = llm_chain.run(query): Fausia se tali e fa'aaoga ai le filifili LLM.mai fastapi import FastAPI: Auina mai le vasega 'FastAPI` mai FastAPI.app = FastAPI(): Fa'amatala se talosaga FastAPI.@app.get("/rag"): Fa'amatala se auala mo le fa'ai'uga o le RAG.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): Fa'amatala se filifili LLM e fa'aaoga ai le vasegaLLMChain.tali = llm_chain.run(query): Fausia se tali e fa'aaoga ai le filifili LLM.mai django.http import JsonResponse: Auina mai le vasegaJsonResponsemai Django.return JsonResponse({"response": response}): Faafoi se tali JSON ma le tali na faia.
Va'aiga
Ole fa'aaliga lea ole paipa RAG ile fa'aogaina ole Chart.js:
{
"type": "Papa fa'asaga'i",
"fa'amatalaga": {
"labels": ["Toe toe maua mai", "Augatupulaga", "Po'o le faagaioiina"],
"fa'amaumauga": [
{
"label": "RAG Paipa",
"faamatalaga": [10, 20, 30],
"Lulu lanu": [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)"
],
"Lulu tuaoi": [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)"
],
"BorderWidth": 1
}
]
},
"filifiliga": {
"igoa": {
"fa'aaliga": moni,
"text": "RAG Pipeline"
},
"fua": {
"yAxes": [
{
"tiki": {
"beginAtZero": moni
}
}
]
}
}
}
O lenei faʻaaliga o loʻo faʻaalia ai le RAG pipeline ma vaega e tolu: toe faʻaleleia, faʻatupuina, ma le faʻasologa o mea.
Fa'ai'uga
I totonu o lenei tusiga, na matou suʻesuʻeina le faʻatinoga o metotia RAG e faʻaaoga ai FastAPI ma Django e faʻaleleia ai le gafatia o le LLM i luga o upega tafaʻilagi, e aofia ai le tuʻufaʻatasia ma LangChain mo le toe maua mai ma le faʻaogaina o faʻamaumauga. Na matou tuʻuina atu foʻi se taʻiala faʻatino i le faʻatinoina o le RAG ma FastAPI ma Django, e aofia ai faʻataʻitaʻiga faʻataʻitaʻiga ma se faʻaaliga o le paipa RAG. Matou te faʻamoemoe o lenei tusiga ua tuʻuina atu se punaoa aoga mo le au atinaʻe o loʻo vaʻavaʻai e faʻatino auala RAG i a latou upega tafaʻilagi.