Ko te whakauru i te RAG (Whakatupuranga Whakanuia-Tiaki) me nga Anga Tukutuku Hou: He Aratohu Mahi
Whakataki
I nga tau tata nei, kua kite te mara o te Tukatuka Reo Maori (NLP) i te pikinga nui o te whanaketanga o nga Tauira Reo Nui (LLM) me o raatau tono ki nga momo rohe. Heoi, ko tetahi o nga here nui o nga LLM ko te kore e kaha ki te tiki me te whakauru i nga matauranga o waho ki roto i a raatau whakautu. I konei ka uru mai nga tikanga Retrieval-Augmented Generation (RAG). I roto i tenei tuhinga, ka tirotirohia e matou te whakatinanatanga o nga tikanga RAG ma te whakamahi i te FastAPI me te Django ki te whakarei ake i nga kaha o te LLM i roto i nga tono tukutuku, tae atu ki te orchestration me LangChain mo te tango me te tukatuka raraunga kore.
He aha te RAG?
Ko te RAG he tikanga e whakakotahi ana i nga kaha o nga tauira Tiaki me te Whakatupuranga kia pai ake ai nga whakautu tika me nga whakautu korero. Ko te whakaaro taketake i muri i te RAG ko te tiki tuatahi i nga korero e tika ana mai i te turanga matauranga, i te putunga raraunga ranei, katahi ka whakamahi i enei korero hei whakaputa whakautu. Ma tenei huarahi ka taea e nga LLM te whakamahi i nga matauranga o waho me te whakarato i nga whakautu tika me nga korero.
He aha te whakamahi RAG me FastAPI me Django?
Ko FastAPI me Django e rua o nga anga tukutuku rongonui e whakamahia ana mo te hanga tono paetukutuku. Ka whakaratohia e ratou he hanganga pakari me te tauineine mo te hanga tono paetukutuku, ka taea te whakauru ngawari ki nga tikanga RAG hei whakarei ake i nga kaha LLM. Ko te FastAPI he anga tukutuku hou e whakarato ana i te huarahi tere me te whai hua ki te hanga i nga tono paetukutuku, ko Django he anga tukutuku taumata teitei e whakarato ana i te hoahoanga, nga tauira, me nga API mo te hanga tono tukutuku pakari.
Te whakatinana RAG me te FastAPI
Ka whakaratohia e FastAPI he huarahi ngawari me te pai ki te whakatinana i nga tikanga RAG. Anei tetahi tauira poraka waehere e whakaatu ana me pehea te whakamahi i te FastAPI ki te whakatinana RAG:
mai fastapi kawemai FastAPI
mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi
taupānga = FastAPI()
@app.get("/rag")
async def rag(uiui: str):
llm_mekameka = LLMChain(
llm=TuwheraAIApi(),
retrieval=LangChainRetrieval(
taupū=LangChainIndex(
ingoa="my_index",
tuhinga=["doc1", "doc2", "doc3"]
)
)
)
# Hangaia he whakautu ma te whakamahi i te mekameka LLM
whakautu = llm_chain.run(uiui)
whakahokia {"whakautu": whakautu}
I tenei tauira, ka tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain mai i LangChain. Ka tautuhia e matou he waahanga tango ma te whakamahi i te akomanga LangChainRetrieval, e whakamahia ana hei tiki i nga korero e tika ana mai i te turanga matauranga, i te papaunga raraunga ranei. Ka mutu, ka whakamahi matou i te tikanga rere ki te whakaputa urupare ma te whakamahi i te mekameka LLM.
Te whakatinana RAG me Django
Ka whakarato a Django i tetahi anga paetukutuku taumata-tiketike ka ngawari te whakauru ki nga tikanga RAG. Anei he tauira poraka waehere e whakaatu ana me pehea te whakamahi i a Django ki te whakatinana RAG:
mai i django.http kawemai JsonResponse
mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi
def rag(tono):
# Tautuhia te mekameka LLM
llm_mekameka = LLMChain(
llm=TuwheraAIApi(),
retrieval=LangChainRetrieval(
taupū=LangChainIndex(
ingoa="my_index",
tuhinga=["doc1", "doc2", "doc3"]
)
)
)
# Hangaia he whakautu ma te whakamahi i te mekameka LLM
whakautu = llm_chain.run(tono.GET.get("Uiui"))
whakahokia JsonResponse({"whakautu": whakautu})
I roto i tenei tauira, ka tautuhia e matou he mahinga tirohanga rag e tango ana i te patai hei whakaurunga ka whakaputa whakautu ma te whakamahi i te mekameka LLM.
Whakaahua RAG me LangChain
Ka whakaratohia e LangChain he huarahi ngawari me te whai hua ki te whakarite tikanga RAG. Anei tetahi tauira poraka waehere e whakaatu ana me pehea te whakamahi i te LangChain ki te whakarite RAG:
mai i te langchain kawemai LLMChain
mai i langchain.chains.openai kawemai OpenAIApi
# Tautuhia te mekameka LLM
llm_mekameka = LLMChain(
llm=TuwheraAIApi(),
retrieval=LangChainRetrieval(
taupū=LangChainIndex(
ingoa="my_index",
tuhinga=["doc1", "doc2", "doc3"]
)
)
)
# Hangaia he whakautu ma te whakamahi i te mekameka LLM
whakautu = llm_chain.run("He aha te RAG?")
tā(whakautu)
I tenei tauira, ka tautuhia he mekameka LLM ma te whakamahi i te akomanga LLMChain mai i LangChain. Ka whakamahi tatou i te tikanga rere ki te whakaputa whakautu ma te whakamahi i te mekameka LLM.
Tiki 5-10 Nga Tono Whakamahinga/Momohipi
Anei nga 5-10 o runga o nga whakahau/snippets e whakamahia ana mo te whakatinana RAG me FastAPI me Django:
mai i te langchain kawemai LLMChain: Kawemai i te akomangaLLMChainmai i LangChain.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(ingoa="my_index", documents=["doc1", "doc2", "doc3"]))): Tautuhia he mekameka LLM ma te whakamahi i te akomangaLLMChain.whakautu = llm_chain.run(uiui): Hangaia he whakautu ma te whakamahi i te mekameka LLM.mai fastapi kawemai FastAPI: Kawemai i te akomangaFastAPImai i FastAPI.app = FastAPI(): Tautuhia he tono FastAPI.@app.get("/rag"): Tautuhia he ara mo te pito mutunga RAG.llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(ingoa="my_index", documents=["doc1", "doc2", "doc3"]))): Tautuhia he mekameka LLM ma te whakamahi i te akomangaLLMChain.whakautu = llm_chain.run(uiui): Hangaia he whakautu ma te whakamahi i te mekameka LLM.mai i django.http kawemai JsonResponse: Kawemai i te akomangaJsonResponsemai i Django.whakahoki JsonResponse({"whakautu": whakautu}): Whakahokia he urupare JSON me te whakautu i hangaia.
Whakakitenga
Anei he tirohanga o te paipa RAG ma te whakamahi i te Chart.js:
{
"type": "Pae whakapae",
"raraunga": {
"labels": ["Tikina", "Whakatupuranga", "Tukatuka-muri"],
"raunga raraunga": [
{
"label": "RAG Pipeline",
"raraunga": [10, 20, 30],
"Tae papamuri": [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)"
],
"Taitapa Tae": [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)"
],
"BorderWidth": 1
}
]
},
"kōwhiringa": {
"taitara": {
"whakaatu": pono,
"text": "RAG Pipeline"
},
"tauine": {
"yAxes": [
{
"tika": {
"beginAtZero": pono
}
}
]
}
}
}
Ko tenei whakakitenga e whakaatu ana i te pipeline RAG me nga waahanga e toru: te tiki, te whakatipuranga, me te tukatuka muri.
Whakamutunga
I roto i tenei tuhinga, i tirotirohia e matou te whakatinanatanga o nga tikanga RAG ma te whakamahi i te FastAPI me te Django ki te whakarei ake i nga kaha o te LLM i roto i nga tono tukutuku, tae atu ki te orchestration me LangChain mo te tango me te tukatuka raraunga kore. I tukuna ano e matou he aratohu whaihua ki te whakatinana i te RAG me FastAPI me Django, tae atu ki nga tauira waehere me te tirohanga o te pipeline RAG. Ko te tumanako kua whakaratohia e tenei tuhinga he rauemi whai hua mo nga kaiwhakawhanake e titiro ana ki te whakatinana i nga tikanga RAG ki a raatau tono paetukutuku.