RAG কি?
সহজ সংজ্ঞা:
RAG হল AI কে নিজের ডেটা দিয়ে প্রশ্নের উত্তর দেওয়ার একটি উপায়।
কল্পনা করো:
- সাধারণ AI: “আমি জানি না”
- RAG AI: ডকুমেন্ট খোঁজে → তথ্য পায় → উত্তর দেয়
প্রযুক্তিগত সংজ্ঞা:
RAG হল একটি কৌশল যেখানে AI প্রথমে প্রাসঙ্গিক ডকুমেন্ট খুঁজে বের করে (Retrieval) এবং তারপর সেই ডকুমেন্ট ব্যবহার করে উত্তর তৈরি করে (Generation)।
RAG এর প্রক্রিয়া
ধাপ ১: ডকুমেন্ট প্রস্তুত করা
ডকুমেন্ট → ছোট অংশে ভাগ করা → ভেক্টরে রূপান্তর → সংরক্ষণ
ধাপ ২: প্রশ্ন করা
প্রশ্ন → ভেক্টরে রূপান্তর → প্রাসঙ্গিক অংশ খোঁজা → AI কে দেওয়া
ধাপ ৩: উত্তর তৈরি করা
AI → প্রাসঙ্গিক অংশ পড়ে → উত্তর তৈরি করে
সাধারণ RAG সিস্টেম তৈরি করা
উদাহরণ ১: টেক্সট ফাইল থেকে প্রশ্নের উত্তর দেওয়া
প্রথমে প্রয়োজনীয় প্যাকেজ ইনস্টল করো:
pip install langchain langchain-groq python-dotenv langchain-communityএখন কোড লিখো:
from langchain_groq import ChatGroq
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains import RetrievalQA
from dotenv import load_dotenv
load_dotenv()
# ধাপ ১: ডকুমেন্ট তৈরি করো
document_text = """
বাংলাদেশ দক্ষিণ এশিয়ার একটি দেশ। এর রাজধানী ঢাকা।
বাংলাদেশের জনসংখ্যা প্রায় ১৭ কোটি।
বাংলাদেশের মুদ্রা টাকা।
বাংলাদেশ একটি কৃষি প্রধান দেশ।
বাংলাদেশের প্রধান ফসল ধান।
"""
# ধাপ ২: ডকুমেন্ট ছোট অংশে ভাগ করো
text_splitter = CharacterTextSplitter(
chunk_size=100,
chunk_overlap=20
)
chunks = text_splitter.split_text(document_text)
# ধাপ ৩: ভেক্টর স্টোর তৈরি করো
embeddings = HuggingFaceEmbeddings()
vector_store = FAISS.from_texts(chunks, embeddings)
# ধাপ ৪: AI তৈরি করো
ai = ChatGroq(model="mixtral-8x7b-32768")
# ধাপ ৫: RAG চেইন তৈরি করো
qa_chain = RetrievalQA.from_chain_type(
llm=ai,
chain_type="stuff",
retriever=vector_store.as_retriever()
)
# ধাপ ৬: প্রশ্ন করো
question = "বাংলাদেশের রাজধানী কি?"
answer = qa_chain.run(question)
print(f"প্রশ্ন: {question}")
print(f"উত্তর: {answer}")আউটপুট:
প্রশ্ন: বাংলাদেশের রাজধানী কি?
উত্তর: বাংলাদেশের রাজধানী ঢাকা।
উদাহরণ ২: PDF ফাইল থেকে প্রশ্নের উত্তর দেওয়া
প্রথমে প্যাকেজ ইনস্টল করো:
pip install pypdf
এখন কোড লিখো:
from langchain_groq import ChatGroq
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains import RetrievalQA
from langchain_community.document_loaders import PyPDFLoader
from dotenv import load_dotenv
load_dotenv()
# ধাপ ১: PDF লোড করো
loader = PyPDFLoader("আপনার_ফাইল.pdf")
documents = loader.load()
# ধাপ ২: ডকুমেন্ট ছোট অংশে ভাগ করো
text_splitter = CharacterTextSplitter(
chunk_size=500,
chunk_overlap=100
)
chunks = text_splitter.split_documents(documents)
# ধাপ ৩: ভেক্টর স্টোর তৈরি করো
embeddings = HuggingFaceEmbeddings()
vector_store = FAISS.from_documents(chunks, embeddings)
# ধাপ ৪: AI তৈরি করো
ai = ChatGroq(model="mixtral-8x7b-32768")
# ধাপ ৫: RAG চেইন তৈরি করো
qa_chain = RetrievalQA.from_chain_type(
llm=ai,
chain_type="stuff",
retriever=vector_store.as_retriever()
)
# ধাপ ৬: প্রশ্ন করো
question = "এই ডকুমেন্টের মূল বিষয় কি?"
answer = qa_chain.run(question)
print(f"উত্তর: {answer}")RAG এর ব্যবহারিক প্রয়োগ
ব্যবহার ১: কোম্পানির নীতিমালা প্রশ্নোত্তর
কর্মচারী: "আমাদের ছুটির নীতি কি?"
RAG সিস্টেম:
১. কোম্পানির ডকুমেন্ট খোঁজে
২. ছুটির নীতি খুঁজে বের করে
৩. উত্তর দেয়: "আমাদের কোম্পানিতে বছরে ২০ দিন ছুটি আছে"
ব্যবহার ২: গ্রাহক সেবা
গ্রাহক: "আপনাদের পণ্যের ওয়ারেন্টি কত দিন?"
RAG সিস্টেম:
১. পণ্যের তথ্য খোঁজে
২. ওয়ারেন্টি তথ্য খুঁজে বের করে
৩. উত্তর দেয়: "আমাদের পণ্যের ওয়ারেন্টি ২ বছর"
ব্যবহার ৩: শিক্ষা সহায়ক
শিক্ষার্থী: "পাইথন এ লুপ কি?"
RAG সিস্টেম:
১. শিক্ষা উপকরণ খোঁজে
২. লুপ সম্পর্কে তথ্য খুঁজে বের করে
৩. বিস্তারিত উত্তর দেয়
উন্নত RAG সিস্টেম
মাল্টি-ডকুমেন্ট RAG
from langchain_groq import ChatGroq
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains import RetrievalQA
from dotenv import load_dotenv
import os
load_dotenv()
# একাধিক ডকুমেন্ট লোড করো
documents_text = []
# ফোল্ডার থেকে সব টেক্সট ফাইল পড়ো
for filename in os.listdir("documents/"):
if filename.endswith(".txt"):
with open(f"documents/{filename}", "r", encoding="utf-8") as f:
documents_text.append(f.read())
# সব ডকুমেন্ট একসাথে করো
all_text = "\n".join(documents_text)
# ডকুমেন্ট ছোট অংশে ভাগ করো
text_splitter = CharacterTextSplitter(
chunk_size=500,
chunk_overlap=100
)
chunks = text_splitter.split_text(all_text)
# ভেক্টর স্টোর তৈরি করো
embeddings = HuggingFaceEmbeddings()
vector_store = FAISS.from_texts(chunks, embeddings)
# AI তৈরি করো
ai = ChatGroq(model="mixtral-8x7b-32768")
# RAG চেইন তৈরি করো
qa_chain = RetrievalQA.from_chain_type(
llm=ai,
chain_type="stuff",
retriever=vector_store.as_retriever()
)
# প্রশ্ন করো
while True:
question = input("\nপ্রশ্ন: ")
if question.lower() == "exit":
break
answer = qa_chain.run(question)
print(f"উত্তর: {answer}")সারসংক্ষেপ
| ধাপ | বর্ণনা |
|---|---|
| ডকুমেন্ট প্রস্তুত করা | ডকুমেন্ট ছোট অংশে ভাগ করা |
| ভেক্টরাইজেশন | অংশগুলি ভেক্টরে রূপান্তর করা |
| সংরক্ষণ | ভেক্টর স্টোরে সংরক্ষণ করা |
| প্রশ্ন করা | প্রাসঙ্গিক অংশ খোঁজা |
| উত্তর তৈরি করা | AI দিয়ে উত্তর তৈরি করা |
পরবর্তী ধাপ
এখন তুমি সব মৌলিক ধারণা শিখেছ! পরবর্তী পদক্ষেপ:
- বাস্তব প্রকল্প তৈরি করা
- চ্যাটবট তৈরি করা
- ডেটা বিশ্লেষণ সিস্টেম তৈরি করা
- কাস্টম এজেন্ট তৈরি করা
কোন প্রকল্প তৈরি করতে চাও? 🚀