جديد ويب فريم ورڪ سان گڏ RAG (Retrieval-Augmented Generation) کي ضم ڪرڻ: هڪ عملي گائيڊ | B4N1

جديد ويب فريم ورڪ سان گڏ RAG (Retrieval-Augmented Generation) کي ضم ڪرڻ: هڪ عملي گائيڊ

9 months ago · b4n1 Read time: 5 min

** جديد ويب فريم ورڪ سان گڏ RAG (Retrieval-Augmented Generation) کي ضم ڪرڻ: هڪ عملي گائيڊ**

تعارف

تازن سالن ۾، قدرتي ٻوليءَ جي پروسيسنگ (NLP) جي شعبي ۾ وڏي لئنگئيج ماڊلز (LLMs) ۽ مختلف ڊومينز ۾ انهن جي ايپليڪيشنن جي ترقي ۾ هڪ اهم اضافو ڏٺو آهي. بهرحال، LLMs جي وڏين حدن مان هڪ آهي انهن جي حاصل ڪرڻ جي ناڪامي ۽ خارجي علم کي انهن جي جوابن ۾ شامل ڪرڻ. هي اهو آهي جتي ٻيهر حاصل ڪرڻ-Augmented Generation (RAG) ٽيڪنڪ راند ۾ اچن ٿيون. هن آرٽيڪل ۾، اسان ويب ايپليڪيشنن ۾ LLM صلاحيتن کي وڌائڻ لاءِ FastAPI ۽ Django استعمال ڪندي RAG ٽيڪنڪ تي عمل درآمد کي ڳوليندا، بشمول LangChain سان آرڪيسٽريشن بيحد ڊيٽا حاصل ڪرڻ ۽ پروسيسنگ لاءِ.

RAG ڇا آهي؟

RAG هڪ ٽيڪنڪ آهي جيڪا ٻيهر حاصل ڪرڻ ۽ نسل جي ماڊل جي قوتن کي گڏ ڪري ٿي ته جيئن وڌيڪ صحيح ۽ معلوماتي جواب پيدا ڪري سگهجي. RAG جي پويان بنيادي خيال پهريون ڀيرو لاڳاپيل معلومات حاصل ڪرڻ آهي علم جي بنياد يا ڊيٽابيس مان، ۽ پوء هن معلومات کي استعمال ڪرڻ لاء جواب پيدا ڪرڻ لاء. اهو طريقو LLMs کي اجازت ڏئي ٿو ته هو ٻاهرين علم جو فائدو وٺن ۽ وڌيڪ صحيح ۽ معلوماتي جواب مهيا ڪن.

** فاسٽ اي پي آئي ۽ جيانگو سان RAG ڇو استعمال ڪيو؟**

FastAPI ۽ Django ٻه مشهور ويب فريم ورڪ آهن جيڪي ويب ايپليڪيشن ٺاهڻ لاءِ استعمال ڪيا ويندا آهن. اهي ويب ايپليڪيشنن جي تعمير لاءِ هڪ مضبوط ۽ اسپيبلبل انفراسٽرڪچر مهيا ڪن ٿا، ۽ LLM صلاحيتن کي وڌائڻ لاءِ RAG ٽيڪنالاجي سان آساني سان ضم ٿي سگهن ٿا. FastAPI هڪ جديد ويب فريم ورڪ آهي جيڪو ويب ايپليڪيشن ٺاهڻ لاءِ تيز ۽ ڪارائتو طريقو مهيا ڪري ٿو، جڏهن ته Django هڪ اعليٰ سطحي ويب فريم ورڪ آهي جيڪو مضبوط ويب ايپليڪيشنز ٺاهڻ لاءِ آرڪيٽيڪچر، ٽيمپليٽس ۽ APIs مهيا ڪري ٿو.

** فاسٽAPI سان RAG کي لاڳو ڪرڻ**

FastAPI RAG ٽيڪنالاجي کي لاڳو ڪرڻ لاءِ هڪ سادي ۽ ڪارائتو طريقو مهيا ڪري ٿي. هتي هڪ مثال ڪوڊ بلاڪ آهي جيڪو ڏيکاري ٿو ته ڪيئن استعمال ڪجي FastAPI RAG کي لاڳو ڪرڻ لاءِ:

``پٿون فاسٽاپي مان درآمد ڪريو FastAPI langchain کان درآمد LLMCchain langchain.chains.openai مان OpenAIApi درآمد ڪريو

ايپ = FastAPI()

@app.get("/rag") async def rag (سوال: str):

llm_chain = ايل ايل ايم چين (
    llm=OpenAIApi(),
    Retrieval=LangChainRetrieval(
        انڊيڪس=LangChainIndex(
            نالو = "my_index"
            دستاويز = ["doc1"، "doc2"، "doc3"]
        )
    )
)

# LLM زنجير استعمال ڪندي جواب ٺاھيو
جواب = llm_chain.run (سوال)

واپسي {"جواب": جواب}

``

هن مثال ۾، اسان LangChain مان 'LLMChain' ڪلاس استعمال ڪندي LLM زنجير جي وضاحت ڪريون ٿا. ان کان پوء اسان هڪ ٻيهر حاصل ڪرڻ واري جزو جي وضاحت ڪريون ٿا LangChainRetrieval ڪلاس استعمال ڪندي، جيڪو ڄاڻ جي بنياد يا ڊيٽابيس مان لاڳاپيل معلومات حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي. آخرڪار، اسان LLM زنجير استعمال ڪندي جواب پيدا ڪرڻ لاء رن طريقو استعمال ڪندا آهيون.

** جيانگو سان RAG کي لاڳو ڪرڻ**

Django هڪ اعلي سطحي ويب فريم ورڪ مهيا ڪري ٿو جيڪا آساني سان RAG ٽيڪنالاجي سان ضم ٿي سگهي ٿي. هتي هڪ مثال ڪوڊ بلاڪ آهي جيڪو ظاهر ڪري ٿو ته ڪيئن استعمال ڪجي Django RAG کي لاڳو ڪرڻ لاءِ:

``پٿون django.http کان JsonResponse درآمد ڪريو langchain کان درآمد LLMCchain langchain.chains.openai مان OpenAIApi درآمد ڪريو

def rag (درخواست): # ايل ايل ايم زنجير جي وضاحت ڪريو llm_chain = ايل ايل ايم چين ( llm=OpenAIApi(), Retrieval=LangChainRetrieval( انڊيڪس=LangChainIndex( نالو = "my_index" دستاويز = ["doc1"، "doc2"، "doc3"] ) ) )

# LLM زنجير استعمال ڪندي جواب ٺاھيو
جواب = llm_chain.run(request.GET.get("query"))

واپسي JsonResponse ({"response": response})

``

هن مثال ۾، اسان هڪ ڏيک فنڪشن جي وضاحت ڪريون ٿا 'rag' جيڪو هڪ سوال کي ان پٽ طور وٺندو آهي ۽ LLM زنجير استعمال ڪندي جواب پيدا ڪري ٿو.

LangChain سان آرڪيسٽريٽنگ

LangChain RAG ٽيڪنڪ کي ترتيب ڏيڻ لاءِ هڪ سادي ۽ ڪارائتو طريقو مهيا ڪري ٿو. هتي هڪ مثال ڪوڊ بلاڪ آهي جيڪو ڏيکاري ٿو ته ڪيئن استعمال ڪجي LangChain RAG کي ترتيب ڏيڻ لاءِ:

``پٿون langchain کان درآمد LLMCchain langchain.chains.openai مان OpenAIApi درآمد ڪريو

ايل ايل ايم زنجير جي وضاحت ڪريو

llm_chain = ايل ايل ايم چين ( llm=OpenAIApi(), Retrieval=LangChainRetrieval( انڊيڪس=LangChainIndex( نالو = "my_index" دستاويز = ["doc1"، "doc2"، "doc3"] ) ) )

LLM زنجير استعمال ڪندي جواب ٺاھيو

جواب = llm_chain.run ("RAG ڇا آهي؟")

ڇپائي (جواب) ``

هن مثال ۾، اسان LangChain مان 'LLMChain' ڪلاس استعمال ڪندي LLM زنجير جي وضاحت ڪريون ٿا. اسان وري استعمال ڪريون ٿا رن جو طريقو LLM زنجير استعمال ڪندي جواب پيدا ڪرڻ لاءِ.

مٿين 5-10 سڀ کان وڌيڪ استعمال ٿيل ڪمانڊ/ٽڪرا

هتي آهن مٿيون 5-10 سڀ کان وڌيڪ استعمال ٿيل ڪمانڊ / ٽڪڙا RAG کي FastAPI ۽ Django سان لاڳو ڪرڻ لاءِ:

  1. langchain import LLMCchain: LangChain مان LLMChain ڪلاس درآمد ڪريو.
  2. llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): LLM ڪلاس استعمال ڪندي LLM چين جي وضاحت ڪريو.
  3. response = llm_chain.run(query): LLM زنجير استعمال ڪندي جواب ٺاھيو.
  4. 'from fastapi import FastAPI': FastAPI مان 'FastAPI' ڪلاس درآمد ڪريو.
  5. app = FastAPI(): FastAPI ايپليڪيشن جي وضاحت ڪريو.
  6. @app.get("/rag"): RAG جي آخري پوائنٽ لاءِ رستو بيان ڪريو.
  7. llm_chain = LLMCchain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", documents=["doc1", "doc2", "doc3"]))): LLM ڪلاس استعمال ڪندي هڪ LLM چين جي وضاحت ڪريو.
  8. response = llm_chain.run(query): LLM زنجير استعمال ڪندي جواب ٺاھيو.
  9. from django.http امپورٽ JsonResponse: جيانگو مان JsonResponse ڪلاس درآمد ڪريو.
  10. return JsonResponse({"response":response}): JSON جواب واپس ڪريو ٺاھيل جواب سان.

تصوير

هتي چارٽ.js استعمال ڪندي RAG پائپ لائن جو هڪ نقشو آهي:

جيسن { "قسم": "افقي بار", "ڊيٽا": { "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 } ] }، "اختيارن": { "عنوان": { "display": سچ، "text": "RAG پائپ لائن" }، "ترازو": { "yAxes": [ { "ticks": { "beginAtZero": سچ } } ] } } } ``

هي تصور RAG پائپ لائن کي ٽن مرحلن سان ڏيکاري ٿو: ٻيهر حاصل ڪرڻ، نسل، ۽ پوسٽ پروسيسنگ.

اختتام

هن آرٽيڪل ۾، اسان ويب ايپليڪيشنن ۾ LLM صلاحيتن کي وڌائڻ لاءِ FastAPI ۽ Django استعمال ڪندي RAG ٽيڪنڪ جي نفاذ جي ڳولا ڪئي، جنهن ۾ بيحد ڊيٽا حاصل ڪرڻ ۽ پروسيسنگ لاءِ LangChain سان آرڪيسٽريشن شامل آهن. اسان پڻ مهيا ڪيو عملي ھدايت ڪرڻ لاءِ RAG کي لاڳو ڪرڻ لاءِ FastAPI ۽ Django، بشمول ڪوڊ مثال ۽ RAG پائپ لائن جو نقشو. اسان اميد ٿا ڪريون ته هي آرٽيڪل ڊولپرز لاءِ هڪ ڪارائتو وسيلو مهيا ڪيو آهي جيڪي انهن جي ويب ايپليڪيشنن ۾ RAG ٽيڪنالاجي کي لاڳو ڪرڻ چاهيندا آهن.


Have Questions?

Let's Talk

Contact me on LinkedIn