1. Home
  2. LangChain
  3. Basic
  4. ১.২: ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ

১.২: ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ

টিউটোরিয়াল ১.২: লাংচেইন ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ

ভূমিকা

লাংচেইন নিয়ে কাজ শুরু করার আগে, আমাদের একটি উপযুক্ত ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ করতে হবে। এই টিউটোরিয়ালে আমরা ধাপে ধাপে শিখব কিভাবে:

  1. পাইথন এবং pip ইনস্টল করতে হয়
  2. ভার্চুয়াল এনভায়রনমেন্ট তৈরি করতে হয়
  3. লাংচেইন এবং এর ডিপেন্ডেন্সি ইনস্টল করতে হয়
  4. IDE সেটআপ এবং কনফিগার করতে হয়

আসুন শুরু করি!

১. পাইথন এবং pip ইনস্টলেশন

পাইথন হল একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা লাংচেইন ব্যবহারের জন্য অপরিহার্য। pip হল পাইথনের প্যাকেজ ম্যানেজার, যা আমাদের লাংচেইন এবং অন্যান্য লাইব্রেরি ইনস্টল করতে সাহায্য করবে।

উইন্ডোজে পাইথন ইনস্টল করা

ধাপ ১: পাইথন অফিসিয়াল ওয়েবসাইট (https://www.python.org/downloads/) থেকে লেটেস্ট পাইথন ইনস্টলার ডাউনলোড করুন।

ধাপ ২: ডাউনলোড করা ইনস্টলার রান করুন। খুব গুরুত্বপূর্ণ: “Add Python to PATH” অপশনটি চেক করুন।

ধাপ ৩: “Install Now” ক্লিক করুন এবং ইনস্টলেশন প্রসেস শেষ হওয়া পর্যন্ত অপেক্ষা করুন।

ধাপ ৪: ইনস্টলেশন ভেরিফাই করতে, কমান্ড প্রম্পট (CMD) ওপেন করুন এবং নিচের কমান্ড টাইপ করুন:

python --version
pip --version

আপনি পাইথন এবং pip এর ভার্সন দেখতে পাবেন, যেমন:

Python 3.10.4
pip 22.0.4

ম্যাক-এ পাইথন ইনস্টল করা

ধাপ ১: Homebrew ব্যবহার করে পাইথন ইনস্টল করা সবচেয়ে সহজ। যদি Homebrew ইনস্টল না থাকে, তাহলে টার্মিনালে নিচের কমান্ড রান করুন:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ধাপ ২: Homebrew ইনস্টল হয়ে গেলে, পাইথন ইনস্টল করুন:

brew install python

ধাপ ৩: ইনস্টলেশন ভেরিফাই করুন:

python3 --version
pip3 --version

লিনাক্সে পাইথন ইনস্টল করা

অধিকাংশ লিনাক্স ডিস্ট্রিবিউশনে পাইথন প্রি-ইনস্টলড থাকে। যদি না থাকে, তাহলে:

উবুন্টু/ডেবিয়ান:

sudo apt update
sudo apt install python3 python3-pip

ফেডোরা:

sudo dnf install python3 python3-pip

ধাপ ৩: ইনস্টলেশন ভেরিফাই করুন:

python3 --version
pip3 --version

২. ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা

ভার্চুয়াল এনভায়রনমেন্ট হল একটি আইসোলেটেড পাইথন এনভায়রনমেন্ট, যেখানে আপনি প্রজেক্ট-স্পেসিফিক ডিপেন্ডেন্সি ইনস্টল করতে পারেন। এটি ব্যবহার করা খুবই গুরুত্বপূর্ণ কারণ:

  1. বিভিন্ন প্রজেক্টের জন্য আলাদা আলাদা ডিপেন্ডেন্সি ম্যানেজ করা যায়
  2. সিস্টেম-ওয়াইড পাইথন ইনস্টলেশন কনফ্লিক্ট এড়ানো যায়
  3. প্রজেক্ট শেয়ার করা সহজ হয়

আমরা দুটি পপুলার ভার্চুয়াল এনভায়রনমেন্ট টুল দেখব: venv (পাইথনের বিল্ট-ইন) এবং conda।

venv ব্যবহার করে ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা

ধাপ ১: প্রথমে, আপনার প্রজেক্টের জন্য একটি ফোল্ডার তৈরি করুন:

mkdir langchain-project
cd langchain-project

ধাপ ২: ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন:

উইন্ডোজে:

python -m venv venv

ম্যাক/লিনাক্সে:

python3 -m venv venv

ধাপ ৩: ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেট করুন:

উইন্ডোজে:

venv\Scripts\activate

ম্যাক/লিনাক্সে:

source venv/bin/activate

অ্যাক্টিভেশন সফল হলে, কমান্ড লাইনের শুরুতে (venv) দেখা যাবে:

(venv) C:\Users\Username\langchain-project>

ধাপ ৪: ভার্চুয়াল এনভায়রনমেন্ট ডিঅ্যাক্টিভেট করতে:

deactivate

Conda ব্যবহার করে ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা

Conda হল একটি শক্তিশালী প্যাকেজ ম্যানেজার এবং এনভায়রনমেন্ট ম্যানেজমেন্ট সিস্টেম। এটি বিশেষ করে ডাটা সায়েন্স এবং মেশিন লার্নিং প্রজেক্টের জন্য জনপ্রিয়।

ধাপ ১: Anaconda (https://www.anaconda.com/products/distribution) বা Miniconda (https://docs.conda.io/en/latest/miniconda.html) ইনস্টল করুন।

ধাপ ২: Conda এনভায়রনমেন্ট তৈরি করুন:

conda create --name langchain-env python=3.10

ধাপ ৩: এনভায়রনমেন্ট অ্যাক্টিভেট করুন:

উইন্ডোজে:

conda activate langchain-env

ম্যাক/লিনাক্সে:

conda activate langchain-env

ধাপ ৪: এনভায়রনমেন্ট ডিঅ্যাক্টিভেট করতে:

conda deactivate

৩. লাংচেইন ইনস্টলেশন এবং ডিপেন্ডেন্সি

এখন আমরা আমাদের ভার্চুয়াল এনভায়রনমেন্টে লাংচেইন এবং এর ডিপেন্ডেন্সি ইনস্টল করব।

বেসিক লাংচেইন ইনস্টলেশন

ধাপ ১: আপনার ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেট করুন (উপরের ধাপগুলি দেখুন)।

ধাপ ২: pip ব্যবহার করে লাংচেইন ইনস্টল করুন:

pip install langchain

LLM ইন্টিগ্রেশন ইনস্টলেশন

লাংচেইন বিভিন্ন LLM প্রোভাইডারের সাথে কাজ করতে পারে। আপনি যে প্রোভাইডার ব্যবহার করবেন, সেটি ইনস্টল করুন:

OpenAI:

pip install openai

Hugging Face:

pip install huggingface_hub

Anthropic:

pip install anthropic

ভেক্টর স্টোর ইন্টিগ্রেশন

ভেক্টর স্টোর ব্যবহার করতে চাইলে:

Chroma (লোকাল ভেক্টর ডাটাবেস):

pip install chromadb

Pinecone:

pip install pinecone-client

FAISS:

pip install faiss-cpu

ডকুমেন্ট লোডার ইন্টিগ্রেশন

বিভিন্ন ফরম্যাটের ডকুমেন্ট লোড করতে:

PDF:

pip install pypdf

ওয়েব পেজ:

pip install beautifulsoup4 requests

ওয়ার্ড ডকুমেন্ট:

pip install python-docx

সম্পূর্ণ সেটআপের জন্য একটি requirements.txt ফাইল

আপনার প্রজেক্টের রুট ডিরেক্টরিতে একটি requirements.txt ফাইল তৈরি করুন এবং নিচের কনটেন্ট যোগ করুন:

langchain>=0.0.267
openai>=0.27.8
chromadb>=0.4.13
pypdf>=3.15.1
beautifulsoup4>=4.12.2
requests>=2.31.0
tiktoken>=0.4.0
faiss-cpu>=1.7.4

এরপর, সব ডিপেন্ডেন্সি একসাথে ইনস্টল করুন:

pip install -r requirements.txt

৪. IDE সেটআপ এবং কনফিগারেশন

একটি ভাল IDE (Integrated Development Environment) আপনার কোডিং এক্সপেরিয়েন্স উন্নত করবে। পাইথন ডেভেলপমেন্টের জন্য সবচেয়ে জনপ্রিয় IDE হল VS Code এবং PyCharm।

VS Code সেটআপ

ধাপ ১: VS Code ডাউনলোড এবং ইনস্টল করুন (https://code.visualstudio.com/)।।)

ধাপ ২: Python এক্সটেনশন ইনস্টল করুন:

  • VS Code ওপেন করুন
  • Extensions ট্যাবে যান (বাম পাশে)
  • “Python” সার্চ করুন
  • Microsoft এর Python এক্সটেনশন ইনস্টল করুন

ধাপ ৩: আপনার প্রজেক্ট ফোল্ডার ওপেন করুন:

  • File > Open Folder
  • আপনার langchain-project ফোল্ডার সিলেক্ট করুন

ধাপ ৪: ভার্চুয়াল এনভায়রনমেন্ট সিলেক্ট করুন:

  • নতুন টার্মিনাল ওপেন করুন (Terminal > New Terminal)
  • ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেট করুন (উপরের ধাপগুলি দেখুন)
  • VS Code এর নিচের স্ট্যাটাস বারে পাইথন ভার্সন ক্লিক করুন
  • আপনার ভার্চুয়াল এনভায়রনমেন্ট সিলেক্ট করুন

ধাপ ৫: অন্যান্য উপকারী এক্সটেনশন ইনস্টল করুন:

  • Pylance (পাইথন কোড অ্যানালাইসিস)
  • Python Indent (অটোমেটিক ইন্ডেন্টেশন)
  • Python Docstring Generator (ডকুমেন্টেশন জেনারেট করা)
  • Jupyter (জুপিটার নোটবুক সাপোর্ট)

PyCharm সেটআপ

ধাপ ১: PyCharm ডাউনলোড এবং ইনস্টল করুন (https://www.jetbrains.com/pycharm/)।।) কমিউনিটি এডিশন ফ্রি এবং বেশিরভাগ ফিচার আছে।

ধাপ ২: নতুন প্রজেক্ট তৈরি করুন:

  • “New Project” ক্লিক করুন
  • লোকেশন হিসেবে আপনার langchain-project ফোল্ডার সিলেক্ট করুন
  • “Previously configured interpreter” সিলেক্ট করুন
  • “Add Interpreter” ক্লিক করুন
  • আপনার ভার্চুয়াল এনভায়রনমেন্ট পাথ সিলেক্ট করুন (venv/bin/python বা venv\Scripts\python.exe)

ধাপ ৩: প্রজেক্ট স্ট্রাকচার সেটআপ করুন:

  • প্রজেক্ট রুটে রাইট ক্লিক করুন
  • New > Python File
  • ফাইল নাম দিন (যেমন: app.py)

৫. প্রথম লাংচেইন স্ক্রিপ্ট রান করা

এখন আমরা একটি সিম্পল লাংচেইন স্ক্রিপ্ট লিখব এবং রান করব, যাতে আমাদের সেটআপ ঠিকমত কাজ করছে কিনা তা ভেরিফাই করতে পারি।

ধাপ ১: আপনার IDE-তে একটি নতুন ফাইল তৈরি করুন, নাম দিন hello_langchain.py

ধাপ ২: নিচের কোড লিখুন:

from langchain.llms import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
import os

# OpenAI API কি সেট করুন (আপনার নিজের API কি ব্যবহার করুন)
os.environ["OPENAI_API_KEY"] = "আপনার-OpenAI-API-কি"

# প্রম্পট টেমপ্লেট তৈরি
prompt_template = PromptTemplate(
    input_variables=["topic"],
    template="আমাকে {topic} সম্পর্কে ৩টি ইন্টারেস্টিং ফ্যাক্ট বলুন।"
)

# LLM ইনিশিয়ালাইজ করুন
llm = OpenAI(temperature=0.7)

# চেইন তৈরি করুন
chain = LLMChain(llm=llm, prompt=prompt_template)

# চেইন রান করুন
result = chain.run("বাংলাদেশ")
print(result)

ধাপ ৩: স্ক্রিপ্ট রান করুন:

VS Code-এ:

  • টার্মিনালে: python hello_langchain.py
  • বা: রান বাটন ক্লিক করুন (উপরের ডান কোণায় প্লে আইকন)

PyCharm-এ:

  • রাইট ক্লিক ফাইলে > Run ‘hello_langchain’
  • বা: Shift+F10 প্রেস করুন

যদি সবকিছু ঠিকমত সেটআপ করা থাকে, তাহলে আপনি OpenAI থেকে বাংলাদেশ সম্পর্কে ৩টি ইন্টারেস্টিং ফ্যাক্ট দেখতে পাবেন।

৬. প্রজেক্ট স্ট্রাকচার সেটআপ

একটি ভাল প্রজেক্ট স্ট্রাকচার আপনার কোড অর্গানাইজড রাখতে সাহায্য করবে। নিচে একটি রেকমেন্ডেড স্ট্রাকচার দেওয়া হল:

langchain-project/
│
├── venv/                  # ভার্চুয়াল এনভায়রনমেন্ট
│
├── data/                  # ডাটা ফাইল (CSV, JSON, ইত্যাদি)
│   ├── raw/               # রো ডাটা
│   └── processed/         # প্রসেসড ডাটা
│
├── docs/                  # ডকুমেন্টেশন
│
├── notebooks/             # জুপিটার নোটবুক
│
├── src/                   # সোর্স কোড
│   ├── __init__.py
│   ├── chains/           # কাস্টম চেইন
│   ├── agents/           # কাস্টম এজেন্ট
│   ├── prompts/          # প্রম্পট টেমপ্লেট
│   └── utils/            # ইউটিলিটি ফাংশন
│
├── tests/                 # টেস্ট কোড
│
├── .env                   # এনভায়রনমেন্ট ভেরিয়েবল (API কি, ইত্যাদি)
├── .gitignore             # গিট ইগনোর ফাইল
├── requirements.txt       # প্রজেক্ট ডিপেন্ডেন্সি
└── README.md              # প্রজেক্ট ডকুমেন্টেশন

ধাপ ১: এই ফোল্ডার স্ট্রাকচার তৈরি করুন:

উইন্ডোজে:

mkdir data data\raw data\processed docs notebooks src src\chains src\agents src\prompts src\utils tests
type nul > src\__init__.py
type nul > .env
type nul > .gitignore
type nul > README.md

ম্যাক/লিনাক্সে:

mkdir -p data/raw data/processed docs notebooks src/chains src/agents src/prompts src/utils tests
touch src/__init__.py
touch .env
touch .gitignore
touch README.md

ধাপ ২: .env ফাইলে আপনার API কি সেভ করুন:

OPENAI_API_KEY=আপনার-OpenAI-API-কি

ধাপ ৩: .gitignore ফাইলে নিচের কনটেন্ট যোগ করুন:

# ভার্চুয়াল এনভায়রনমেন্ট
venv/
env/
.env

# পাইথন
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# নোটবুক
.ipynb_checkpoints

# IDE
.idea/
.vscode/
*.swp
*.swo

৭. এনভায়রনমেন্ট ভেরিয়েবল ম্যানেজমেন্ট

API কি এবং অন্যান্য সেনসিটিভ ইনফরমেশন .env ফাইলে রাখা উচিত এবং কোডে হার্ডকোড করা উচিত নয়। এই ভেরিয়েবলগুলি লোড করার জন্য python-dotenv ব্যবহার করা যেতে পারে।

ধাপ ১: python-dotenv ইনস্টল করুন:

pip install python-dotenv

ধাপ ২: আপনার কোডে এনভায়রনমেন্ট ভেরিয়েবল লোড করুন:

from dotenv import load_dotenv
import os

# .env ফাইল থেকে এনভায়রনমেন্ট ভেরিয়েবল লোড করুন
load_dotenv()

# এনভায়রনমেন্ট ভেরিয়েবল অ্যাক্সেস করুন
api_key = os.getenv("OPENAI_API_KEY")

৮. ডিবাগিং এবং ট্রাবলশুটিং

লাংচেইন ডেভেলপমেন্টের সময় কমন ইস্যু এবং তাদের সমাধান:

১. ImportError: No module named ‘langchain’

সমাধান:

  • ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেট আছে কিনা চেক করুন
  • pip install langchain আবার রান করুন
  • pip list দিয়ে ইনস্টলড প্যাকেজ লিস্ট চেক করুন

২. API কি এরর

সমাধান:

  • আপনার API কি সঠিক কিনা চেক করুন
  • এনভায়রনমেন্ট ভেরিয়েবল সঠিকভাবে সেট করা আছে কিনা চেক করুন
  • API প্রোভাইডারের ওয়েবসাইটে লগইন করে API কি ভ্যালিড কিনা চেক করুন

৩. ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেশন এরর

উইন্ডোজে:
যদি PowerShell-এ venv\Scripts\activate রান করতে এরর আসে, তাহলে এক্সিকিউশন পলিসি চেঞ্জ করুন:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

ম্যাক/লিনাক্সে:
যদি source venv/bin/activate এরর দেয়, তাহলে:

chmod +x venv/bin/activate

৪. ডিবাগিং টিপস

  • verbose=True প্যারামিটার ব্যবহার করুন লাংচেইন কম্পোনেন্টে (যেমন চেইন, এজেন্ট) ডিটেইলড আউটপুট দেখার জন্য
  • print() স্টেটমেন্ট ব্যবহার করুন ভেরিয়েবল ভ্যালু চেক করার জন্য
  • VS Code বা PyCharm এর ডিবাগার ব্যবহার করুন কোড স্টেপ-বাই-স্টেপ এক্সিকিউট করার জন্য

৯. হাতে-কলমে প্র্যাকটিকাল প্রজেক্ট: সিম্পল ডকুমেন্ট Q&A

আসুন আমাদের সেটআপ টেস্ট করার জন্য একটি সিম্পল ডকুমেন্ট Q&A সিস্টেম তৈরি করি:

ধাপ ১: প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:

pip install langchain openai chromadb pypdf

ধাপ ২: data/raw ফোল্ডারে একটি PDF ফাইল রাখুন (যেমন: article.pdf)।

ধাপ ৩: src ফোল্ডারে একটি নতুন ফাইল তৈরি করুন, নাম দিন document_qa.py:

from dotenv import load_dotenv
import os
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

# .env ফাইল থেকে এনভায়রনমেন্ট ভেরিয়েবল লোড করুন
load_dotenv()

# PDF ফাইল লোড করুন
loader = PyPDFLoader("data/raw/article.pdf")
documents = loader.load()

# ডকুমেন্ট ভাগ করুন
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
chunks = text_splitter.split_documents(documents)

# এমবেডিং তৈরি করুন
embeddings = OpenAIEmbeddings()

# ভেক্টর স্টোর তৈরি করুন
vectorstore = Chroma.from_documents(chunks, embeddings)

# QA চেইন তৈরি করুন
qa_chain = RetrievalQA.from_chain_type(
    llm=OpenAI(),
    chain_type="stuff",
    retriever=vectorstore.as_retriever()
)

# ইউজার ইনপুট নিন
while True:
    query = input("\nআপনার প্রশ্ন লিখুন (বের হতে 'exit' লিখুন): ")
    if query.lower() == 'exit':
        break

    # প্রশ্নের উত্তর পান
    result = qa_chain.run(query)
    print("\nউত্তর:", result)

ধাপ ৪: স্ক্রিপ্ট রান করুন:

python src/document_qa.py

এই স্ক্রিপ্ট আপনার PDF ফাইল লোড করবে, এটিকে ছোট ছোট অংশে ভাগ করবে, এমবেডিং তৈরি করবে, এবং আপনাকে ডকুমেন্ট সম্পর্কে প্রশ্ন জিজ্ঞাসা করার অনুমতি দেবে।

উপসংহার

এই টিউটোরিয়ালে আমরা শিখেছি:

  1. পাইথন এবং pip ইনস্টল করা
  2. ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা (venv এবং conda)
  3. লাংচেইন এবং এর ডিপেন্ডেন্সি ইনস্টল করা
  4. IDE সেটআপ এবং কনফিগার করা
  5. প্রজেক্ট স্ট্রাকচার সেটআপ করা
  6. এনভায়রনমেন্ট ভেরিয়েবল ম্যানেজ করা
  7. কমন ইস্যু ডিবাগ করা
  8. একটি সিম্পল ডকুমেন্ট Q&A সিস্টেম তৈরি করা

এখন আপনি লাংচেইন ডেভেলপমেন্টের জন্য পুরোপুরি প্রস্তুত! পরবর্তী টিউটোরিয়ালে আমরা LLM API সেটআপ এবং কনফিগারেশন নিয়ে আলোচনা করব।

অনুশীলনী

  1. আপনার নিজের প্রজেক্ট স্ট্রাকচার সেটআপ করুন এবং একটি সিম্পল লাংচেইন অ্যাপ্লিকেশন তৈরি করুন।
  2. বিভিন্ন ভার্চুয়াল এনভায়রনমেন্ট টুল (venv, conda) ব্যবহার করে দেখুন এবং আপনার পছন্দের টুল নির্ধারণ করুন।
  3. আমাদের ডকুমেন্ট Q&A সিস্টেম আপগ্রেড করুন যাতে এটি মাল্টিপল ডকুমেন্ট সাপোর্ট করে।
  4. VS Code বা PyCharm এর ডিবাগিং টুল ব্যবহার করে একটি লাংচেইন স্ক্রিপ্ট ডিবাগ করুন।

How can we help?