جدید ویب فریم ورکس کے ساتھ RAG (ریٹریول-آگمینٹڈ جنریشن) کو مربوط کرنا: ایک عملی گائیڈ
تعارف
حالیہ برسوں میں، نیچرل لینگویج پروسیسنگ (این ایل پی) کے شعبے نے بڑے لینگویج ماڈلز (LLMs) اور مختلف ڈومینز میں ان کی ایپلی کیشنز کی ترقی میں نمایاں اضافہ دیکھا ہے۔ تاہم، LLMs کی ایک بڑی حد ان کی اپنے ردعمل میں بیرونی معلومات کو بازیافت اور شامل کرنے میں ناکامی ہے۔ یہ وہ جگہ ہے جہاں Retrieval-Augmented Generation (RAG) تکنیک عمل میں آتی ہے۔ اس آرٹیکل میں، ہم ویب ایپلیکیشنز میں LLM صلاحیتوں کو بڑھانے کے لیے فاسٹ اے پی آئی اور جیانگو کا استعمال کرتے ہوئے RAG تکنیکوں کے نفاذ کو تلاش کریں گے، بشمول بغیر کسی ڈیٹا کی بازیافت اور پروسیسنگ کے لیے LangChain کے ساتھ آرکیسٹریشن۔
RAG کیا ہے؟
RAG ایک ایسی تکنیک ہے جو زیادہ درست اور معلوماتی ردعمل پیدا کرنے کے لیے بازیافت اور جنریشن ماڈلز کی طاقتوں کو یکجا کرتی ہے۔ RAG کے پیچھے بنیادی خیال یہ ہے کہ پہلے کسی نالج بیس یا ڈیٹا بیس سے متعلقہ معلومات کو بازیافت کیا جائے، اور پھر اس معلومات کو جواب پیدا کرنے کے لیے استعمال کریں۔ یہ نقطہ نظر LLMs کو بیرونی علم سے فائدہ اٹھانے اور زیادہ درست اور معلوماتی جوابات فراہم کرنے کی اجازت دیتا ہے۔
** فاسٹ اے پی آئی اور جینگو کے ساتھ RAG کیوں استعمال کریں؟**
FastAPI اور Django ویب ایپلیکیشنز بنانے کے لیے استعمال کیے جانے والے دو مقبول ترین ویب فریم ورک ہیں۔ وہ ویب ایپلیکیشنز کی تعمیر کے لیے ایک مضبوط اور توسیع پذیر انفراسٹرکچر فراہم کرتے ہیں، اور LLM صلاحیتوں کو بڑھانے کے لیے RAG تکنیک کے ساتھ آسانی سے ضم کیا جا سکتا ہے۔ فاسٹ اے پی آئی ایک جدید ویب فریم ورک ہے جو ویب ایپلیکیشنز کو بنانے کا تیز اور موثر طریقہ فراہم کرتا ہے، جبکہ جیانگو ایک اعلیٰ سطح کا ویب فریم ورک ہے جو مضبوط ویب ایپلیکیشنز بنانے کے لیے ایک فن تعمیر، ٹیمپلیٹس اور API فراہم کرتا ہے۔
فاسٹ اے پی آئی کے ساتھ RAG کا نفاذ
فاسٹ اے پی آئی آر اے جی تکنیک کو نافذ کرنے کا ایک آسان اور موثر طریقہ فراہم کرتا ہے۔ یہاں ایک مثال کوڈ بلاک ہے جو یہ ظاہر کرتا ہے کہ RAG کو لاگو کرنے کے لئے FastAPI کو کیسے استعمال کیا جائے:
`` ازگر فاسٹاپی سے فاسٹ اے پی آئی درآمد کریں۔ langchain درآمد LLMChain سے langchain.chains.openai سے OpenAIApi درآمد کریں۔
ایپ = فاسٹ اے پی آئی()
@app.get("/rag") async def rag (استفسار: str):
llm_chain = LLMCchain(
llm=OpenAIApi(),
بازیافت=LangChainRetrieval(
index=LangChainIndex(
name="my_index"،
دستاویزات=["doc1"، "doc2"، "doc3"]
)
)
)
# LLM چین کا استعمال کرتے ہوئے جواب پیدا کریں۔
جواب = llm_chain.run (استفسار)
واپسی {"response": response}
``
اس مثال میں، ہم LangChain سے LLMChain کلاس کا استعمال کرتے ہوئے LLM چین کی وضاحت کرتے ہیں۔ اس کے بعد ہم LangChainRetrieval کلاس کا استعمال کرتے ہوئے بازیافت جزو کی وضاحت کرتے ہیں، جو علم کی بنیاد یا ڈیٹا بیس سے متعلقہ معلومات کی بازیافت کے لیے استعمال ہوتا ہے۔ آخر میں، ہم LLM چین کا استعمال کرتے ہوئے جواب پیدا کرنے کے لیے رن طریقہ استعمال کرتے ہیں۔
جیانگو کے ساتھ RAG کا نفاذ
جیانگو ایک اعلیٰ سطحی ویب فریم ورک فراہم کرتا ہے جسے آسانی سے RAG تکنیک کے ساتھ مربوط کیا جا سکتا ہے۔ یہاں ایک مثال کوڈ بلاک ہے جو یہ ظاہر کرتا ہے کہ RAG کو لاگو کرنے کے لیے Django کو کیسے استعمال کیا جائے:
`` ازگر django.http سے JsonResponse درآمد کریں۔ langchain درآمد LLMChain سے langchain.chains.openai سے OpenAIApi درآمد کریں۔
def rag (درخواست): # LLM سلسلہ کی وضاحت کریں۔ llm_chain = LLMCchain( llm=OpenAIApi(), بازیافت=LangChainRetrieval( index=LangChainIndex( name="my_index"، دستاویزات=["doc1"، "doc2"، "doc3"] ) ) )
# LLM چین کا استعمال کرتے ہوئے جواب پیدا کریں۔
جواب = llm_chain.run(request.GET.get("استفسار"))
JsonResponse واپس کریں ({"response": response})
``
اس مثال میں، ہم ایک ویو فنکشن rag کی وضاحت کرتے ہیں جو ایک سوال کو ان پٹ کے طور پر لیتا ہے اور LLM چین کا استعمال کرتے ہوئے جواب پیدا کرتا ہے۔
لینگ چین کے ساتھ آر اے جی کی آرکیسٹریٹنگ
LangChain RAG تکنیکوں کو آرکیسٹریٹ کرنے کا ایک آسان اور موثر طریقہ فراہم کرتا ہے۔ یہاں ایک مثال کوڈ بلاک ہے جو یہ ظاہر کرتا ہے کہ RAG کو آرکیسٹریٹ کرنے کے لیے LangChain کا استعمال کیسے کیا جائے:
`` ازگر langchain درآمد LLMChain سے langchain.chains.openai سے OpenAIApi درآمد کریں۔
LLM سلسلہ کی وضاحت کریں۔
llm_chain = LLMCchain( llm=OpenAIApi(), بازیافت=LangChainRetrieval( index=LangChainIndex( name="my_index"، دستاویزات=["doc1"، "doc2"، "doc3"] ) ) )
LLM چین کا استعمال کرتے ہوئے جواب پیدا کریں۔
جواب = llm_chain.run ("RAG کیا ہے؟")
پرنٹ (جواب) ``
اس مثال میں، ہم LangChain سے LLMChain کلاس کا استعمال کرتے ہوئے LLM چین کی وضاحت کرتے ہیں۔ پھر ہم LLM چین کا استعمال کرتے ہوئے جواب پیدا کرنے کے لیے رن طریقہ استعمال کرتے ہیں۔
ٹاپ 5-10 سب سے زیادہ استعمال شدہ کمانڈز/ٹکڑے
فاسٹ اے پی آئی اور جیانگو کے ساتھ RAG کو لاگو کرنے کے لیے یہاں سرفہرست 5-10 سب سے زیادہ استعمال شدہ کمانڈز/ٹکڑے ہیں:
Langchain امپورٹ LLMChain سے: LangChain سےLLMChainکلاس درآمد کریں۔llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))):LLMC کلاسکا استعمال کرتے ہوئے LLM چین کی وضاحت کریں۔response = llm_chain.run(query): LLM چین کا استعمال کرتے ہوئے جواب تیار کریں۔- فاسٹ اے پی آئی سے درآمد کریں: فاسٹ اے پی آئی سے فاسٹ اے پی آئی کلاس درآمد کریں۔
app = FastAPI(): ایک FastAPI ایپلیکیشن کی وضاحت کریں۔@app.get("/rag"): RAG اینڈ پوائنٹ کے لیے روٹ کی وضاحت کریں۔llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))):LLMC کلاسکا استعمال کرتے ہوئے LLM چین کی وضاحت کریں۔response = llm_chain.run(query): LLM چین کا استعمال کرتے ہوئے جواب تیار کریں۔from django.http امپورٹ JsonResponse: Django سےJsonResponseکلاس درآمد کریں۔return JsonResponse({"response": response}): تیار کردہ جواب کے ساتھ JSON جواب واپس کریں۔
تصور
Chart.js کا استعمال کرتے ہوئے RAG پائپ لائن کا تصور یہاں ہے:
json { "type": "افقی بار"، "ڈیٹا": { "labels": ["بازیافت"، "جنریشن"، "پوسٹ پروسیسنگ"], "ڈیٹا سیٹ": [ { "label": "RAG پائپ لائن" "ڈیٹا": [10، 20، 30]، "پس منظر کا رنگ": [ "rgba(255, 99, 132, 0.2)", "rgba(54, 162, 235, 0.2)", "rgba(255, 206, 86, 0.2)" ]، "سرحد کا رنگ": [ "rgba(255, 99, 132, 1)", "rgba(54, 162, 235, 1)", "rgba(255, 206, 86, 1)" ]، سرحد کی چوڑائی: 1 } ] }، "اختیارات": { "عنوان": { "ڈسپلے": سچ، "text": "RAG پائپ لائن" }، "پیمانہ": { "yAxes": [ { "ticks": { "beginAtZero": سچ ہے۔ } } ] } } }
یہ تصور RAG پائپ لائن کو تین مراحل کے ساتھ دکھاتا ہے: بازیافت، نسل، اور پوسٹ پروسیسنگ۔
نتیجہ
اس مضمون میں، ہم نے ویب ایپلیکیشنز میں LLM صلاحیتوں کو بڑھانے کے لیے فاسٹ اے پی آئی اور جیانگو کا استعمال کرتے ہوئے RAG تکنیکوں کے نفاذ کی کھوج کی، بشمول بغیر کسی ڈیٹا کی بازیافت اور پروسیسنگ کے لیے LangChain کے ساتھ آرکیسٹریشن۔ ہم نے فاسٹ اے پی آئی اور جیانگو کے ساتھ RAG کو لاگو کرنے کے لیے ایک عملی گائیڈ بھی فراہم کیا، بشمول کوڈ کی مثالیں اور RAG پائپ لائن کا تصور۔ ہم امید کرتے ہیں کہ اس مضمون نے ان ڈویلپرز کے لیے ایک مفید وسیلہ فراہم کیا ہے جو اپنی ویب ایپلیکیشنز میں RAG تکنیکوں کو نافذ کرنا چاہتے ہیں۔