LangChain দিয়ে প্রথম AI অ্যাপ — পাইথন শুরু থেকে

Photo by Christina Morillo on Pexels
লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) দিয়ে অ্যাপ্লিকেশন বানানো এখন আর শুধু গবেষকদের কাজ নয়। সঠিক টুলস আর ফ্রেমওয়ার্ক ব্যবহার করে একজন নতুন ডেভেলপারও সহজেই নিজের এআই অ্যাপ বানাতে পারেন। এমনই একটি শক্তিশালী ফ্রেমওয়ার্ক হলো ল্যাংচেইন (LangChain)। পাইথনে এলএলএম-ভিত্তিক অ্যাপ্লিকেশন তৈরির জটিলতা কমিয়ে এটি কাজটা সহজ করে তোলে। এই আর্টিকেলে ধাপে ধাপে দেখব কীভাবে ল্যাংচেইন আর পাইথন দিয়ে আপনার প্রথম এআই অ্যাপ্লিকেশনটি বানাবেন।
ল্যাংচেইন কী এবং কেন কাজে লাগে?
ল্যাংচেইন এমন একটি শক্তিশালী ফ্রেমওয়ার্ক যা লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) ব্যবহার করে জটিল অ্যাপ্লিকেশন বানানো সহজ করে। এটি এলএলএমের ক্ষমতাকে আমাদের নির্দিষ্ট প্রয়োজন অনুযায়ী কাজে লাগানোর সুযোগ করে দেয়।
এটি এলএলএমকে শুধু একটি ইনপুট-আউটপুট মেশিনের চেয়েও বেশি কিছু হিসেবে ব্যবহারের সুযোগ দেয়। ল্যাংচেইন মূলত এলএলএমের ক্ষমতাকে অন্য টুলস, ডেটা সোর্স এবং লজিক্যাল চেইন বা ধাপের সাথে যুক্ত করে। এতে আপনি শুধু একটি প্রম্পট পাঠিয়ে উত্তর না পেয়ে আরও জটিল ও স্মার্ট অ্যাপ্লিকেশন বানাতে পারবেন। যেমন, একটি এলএলএমকে দিয়ে ওয়েব সার্চ করানো যায়, ক্যালকুলেটর ব্যবহার করা যায়, এমনকি ডেটাবেজ থেকে তথ্য খুঁজে বের করে সেই তথ্যের ভিত্তিতে উত্তরও তৈরি করা যায়। ল্যাংচেইনের মডিউলার ডিজাইন নতুন ডেভেলপারদের জন্য এলএলএমের সাথে কাজ করা অনেক সহজ করে তোলে।
শুরু করার প্রস্তুতি: কী কী লাগবে?
ল্যাংচেইন দিয়ে এআই অ্যাপ বানাতে পাইথন জানা, কিছু প্রয়োজনীয় লাইব্রেরি ইনস্টল করা এবং একটি এলএলএম এপিআই কী লাগবে।
আপনার সিস্টেমে পাইথন (সংস্করণ ৩.৯ বা তার ওপরের) ইনস্টল থাকতে হবে। কোড চালানোর জন্য `pip` প্যাকেজ ম্যানেজারও লাগবে, যা সাধারণত পাইথনের সাথেই থাকে। এছাড়াও, একটি এলএলএম ব্যবহার করার জন্য আপনার একটি এপিআই কী লাগবে। আমরা এই গাইডে OpenAI-এর `gpt-4o` মডেল ব্যবহার করব, তাই আপনার একটি OpenAI অ্যাকাউন্ট খোলা এবং একটি এপিআই কী সংগ্রহ করা জরুরি।
আগে দেখে নিন:
১. আপনার সিস্টেমে পাইথন ৩.৯+ ইনস্টল আছে।
২. একটি OpenAI অ্যাকাউন্ট খুলেছেন এবং সেখান থেকে একটি API কী সংগ্রহ করেছেন।
৩. আপনার পছন্দের কোড এডিটর (যেমন ভিএস কোড) প্রস্তুত আছে।
পাইথনে ল্যাংচেইন সেটআপ: ধাপে ধাপে
ল্যাংচেইন এবং দরকারি এলএলএম লাইব্রেরি ইনস্টল করার পর আপনার এপিআই কী সুরক্ষিত রাখতে `python-dotenv` ব্যবহার করে পরিবেশ ভেরিয়েবল সেটআপ করতে হবে।
যেকোনো নতুন প্রজেক্ট শুরু করার আগে কিছু লাইব্রেরি ইনস্টল করা দরকার। আপনার টার্মিনাল বা কমান্ড প্রম্পট খুলে নিচের কমান্ডটি টাইপ করুন:
১. দরকারি লাইব্রেরি ইনস্টল করুন:
```bash
pip install langchain-openai python-dotenv
```
- `langchain-openai`: এটি ল্যাংচেইনের OpenAI ইন্টিগ্রেশন প্যাকেজ, যা OpenAI মডেলগুলোর সাথে যোগাযোগে সাহায্য করে।
- `python-dotenv`: এই লাইব্রেরিটি পরিবেশ ভেরিয়েবল (.env ফাইল থেকে) লোড করতে সাহায্য করে, যা আপনার এপিআই কী সুরক্ষিত রাখে।
২. এপিআই কী সুরক্ষিত রাখুন (`.env` ফাইল):
আপনার প্রজেক্ট ফোল্ডারের রুট ডিরেক্টরিতে `.env` নামে একটি ফাইল তৈরি করুন। এই ফাইলে আপনার OpenAI এপিআই কী এই ফরম্যাটে রাখুন:
```
OPENAI_API_KEY="আপনার_API_কী_এখানে_পেস্ট_করুন"
```
খেয়াল রাখুন যেন আপনার এপিআই কী সরাসরি কোডের মধ্যে না থাকে। কারণ এটি নিরাপত্তার জন্য ঝুঁকিপূর্ণ। `.env` ফাইল ব্যবহার করলে কোড সোর্স কন্ট্রোলে রাখলেও আপনার কী সুরক্ষিত থাকবে।
৩. পাইথন স্ক্রিপ্টে এপিআই কী লোড করুন:
আপনার পাইথন স্ক্রিপ্টের শুরুতে `load_dotenv()` ফাংশনটি কল করুন, যাতে `.env` ফাইল থেকে পরিবেশ ভেরিয়েবলগুলো লোড হয়।
এইটুকু করলেই আপনার ল্যাংচেইন প্রজেক্টের প্রাথমিক সেটআপ সম্পূর্ণ।
একটি সহজ চ্যাটবট তৈরি: প্রথম AI অ্যাপ
ল্যাংচেইন দিয়ে একটি সাধারণ চ্যাটবট বানানো খুবই সহজ; এটি আপনার প্রম্পট সরাসরি এলএলএমে পাঠায় এবং তার উত্তর দেখায়।
এখন একটি পাইথন স্ক্রিপ্ট লিখব যা আপনার সেটআপ করা এলএলএমকে প্রশ্ন করবে এবং উত্তর দেখাবে। এটিই আপনার প্রথম এআই অ্যাপ্লিকেশন।
কোড উদাহরণ:
প্রজেক্ট ফোল্ডারে `main.py` নামে একটি ফাইল তৈরি করুন এবং নিচের কোডটি তাতে পেস্ট করুন:
```python
main.py
from dotenv import load_dotenv

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
import os
.env ফাইল থেকে পরিবেশ ভেরিয়েবল লোড করা হচ্ছে
load_dotenv()
আপনার OpenAI API কী পরিবেশ ভেরিয়েবল থেকে ব্যবহার করা হবে
আমরা এখানে gpt-4o মডেল ব্যবহার করছি, যা OpenAI-এর সর্বশেষ শক্তিশালী মডেল
llm = ChatOpenAI(model="gpt-4o", temperature=0.7)
মানুষের একটি বার্তা তৈরি করা হচ্ছে
messages = [
HumanMessage(
content="ল্যাংচেইন ফ্রেমওয়ার্ক কী? সহজ ভাষায় বুঝিয়ে বলুন।"
)
]
LLM-কে প্রশ্ন করে উত্তর নেওয়া হচ্ছে
response = llm.invoke(messages)
উত্তর প্রিন্ট করা হচ্ছে
print(response.content)
```
এই কোড চালালে:
১. প্রথমে আপনার `.env` ফাইল ঠিকমতো সেটআপ করেছেন কিনা দেখে নিন। `OPENAI_API_KEY` ভেরিয়েবলে আপনার সঠিক কী দেওয়া আছে কিনা নিশ্চিত করুন।
২. তারপর আপনার টার্মিনাল খুলে প্রজেক্ট ফোল্ডারে গিয়ে `python main.py` কমান্ড দিয়ে কোডটি রান করুন।
৩. আউটপুটে ল্যাংচেইন সম্পর্কে GPT-৪ও-এর দেওয়া একটি বিস্তারিত উত্তর দেখতে পাবেন।
দারুণ! আপনি আপনার প্রথম এলএলএম অ্যাপ্লিকেশনটি তৈরি করে ফেললেন।
চেইন ও প্রম্পট টেমপ্লেট: অ্যাপকে আরও স্মার্ট করুন
চেইন (Chains) দিয়ে একাধিক এলএলএম কল বা অন্যান্য ধাপ পর পর সাজিয়ে জটিল কাজ করা যায়, আর প্রম্পট টেমপ্লেট (Prompt Templates) ব্যবহার করে প্রম্পটকে ডায়নামিক ও পুনরায় ব্যবহার করা যায়।
আমাদের আগের কোডটি ছিল একটি সাধারণ এলএলএম কল। কিন্তু সত্যিকারের অ্যাপ্লিকেশন বানাতে গেলে আরও কিছু উন্নত ফিচার দরকার। ল্যাংচেইনের চেইন (Chains) এবং প্রম্পট টেমপ্লেট (Prompt Templates) এই ক্ষেত্রে খুব কাজের।
- প্রম্পট টেমপ্লেট (Prompt Templates): প্রম্পট টেমপ্লেট ব্যবহার করে আপনার প্রম্পট ডায়নামিক করা যায়। এর মানে হলো, আপনি প্রম্পটের কিছু অংশ ভেরিয়েবল হিসেবে রেখে রানটাইমে ডেটা দিয়ে পূরণ করতে পারবেন। এতে একই প্রম্পট বারবার টাইপ করার বদলে শুধু ভেরিয়েবলের মান পাল্টে বিভিন্ন প্রশ্ন করতে পারবেন।
- চেইন (Chains): চেইন হলো এলএলএমের সাথে কাজ করার জন্য এক বা একাধিক ধাপের (যেমন প্রম্পট, এলএলএম কল, আউটপুট পার্সার) একটি সিরিজ। ল্যাংচেইন এক্সপ্রেশন ল্যাঙ্গুয়েজ (LCEL) ব্যবহার করে এই চেইনগুলো তৈরি করা যায়, যা পাইপের মতো `|` অপারেটর দিয়ে বিভিন্ন কম্পোনেন্ট যুক্ত করে।
উদাহরণ: নাম দিয়ে শুভেচ্ছা বার্তা তৈরি:
ধরুন, আপনি এমন একটি অ্যাপ বানাতে চান যা ব্যবহারকারীর নাম নিয়ে একটি ব্যক্তিগত শুভেচ্ছা বার্তা তৈরি করবে। এই কাজটি প্রম্পট টেমপ্লেট এবং চেইন ব্যবহার করে করা যাবে।
কোড উদাহরণ:
```python
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser
import os
load_dotenv()
llm = ChatOpenAI(model="gpt-4o", temperature=0.7)
একটি প্রম্পট টেমপ্লেট তৈরি করুন
এটি "name" নামে একটি ভেরিয়েবল নেবে
prompt = ChatPromptTemplate.from_messages(
[
("system", "আপনি একজন বন্ধুত্বপূর্ণ সহকারী যিনি ব্যবহারকারীর নাম নিয়ে একটি সংক্ষিপ্ত শুভেচ্ছা বার্তা তৈরি করেন।"),
("user", "আমার নাম {name}। আমাকে শুভেচ্ছা জানান।")
]
)
আউটপুট পার্সার
LLM থেকে পাওয়া ChatMessage অবজেক্টকে একটি সাধারণ স্ট্রিং-এ রূপান্তর করে
output_parser = StrOutputParser()
চেইন তৈরি করুন: প্রম্পট -> LLM -> আউটপুট পার্সার
chain = prompt | llm | output_parser
চেইনকে ইনপুট দিন এবং রান করুন
print("রনির জন্য বার্তা:")
response = chain.invoke({"name": "রনি"})
print(response)
print("\nআলিফের জন্য বার্তা:")
response_another = chain.invoke({"name": "আলিফ"})
print(response_another)
```
এই কোড চালালে আপনি `রনি` এবং `আলিফ`-এর জন্য কাস্টমাইজড শুভেচ্ছা বার্তা দেখতে পাবেন। এটি দেখায় যে কীভাবে প্রম্পট টেমপ্লেট এবং চেইন ব্যবহার করে আরও ডায়নামিক ও শক্তিশালী অ্যাপ্লিকেশন তৈরি করা যায়।
ল্যাংচেইন চেইন ব্যবহার করে কিভাবে কাজগুলো আরও সুগঠিত হয়, সেটা বুঝতে নিচের টেবিলটি দেখুন:
বৈশিষ্ট্য | সাধারণ এলএলএম কল | ল্যাংচেইন চেইন |
|---|---|---|
কার্যকারিতা | একটি একক প্রম্পটের উত্তর দেয়। | একাধিক ধাপ, যেমন প্রম্পট, এলএলএম কল, আউটপুট পার্সিং একসূত্রে বাঁধে। |
জটিলতা | সহজ, সরাসরি ব্যবহারের জন্য। | জটিল ওয়ার্কফ্লো, ডেটা প্রি-প্রসেসিং, পোস্ট-প্রসেসিংয়ের জন্য। |
পুনরায় ব্যবহার | প্রতিটি কল নতুন করে লিখতে হয়। | টেমপ্লেট ও মডিউল ব্যবহার করে সহজে আবার ব্যবহার করা যায়। |
নিয়ন্ত্রণ | সীমিত নিয়ন্ত্রণ। | প্রতিটি ধাপের উপর সূক্ষ্ম নিয়ন্ত্রণ রাখা যায়। |
আরও উন্নত অ্যাপ্লিকেশনের দিকে
ল্যাংচেইন শুধু চ্যাটবটেই সীমাবদ্ধ নয়; এটি এজেন্টস, মেমরি, টুলস এবং আরএজি (Retrieval-Augmented Generation)-এর মতো উন্নত ফিচার ব্যবহার করে আরও জটিল ও শক্তিশালী এআই অ্যাপ্লিকেশন তৈরি করতে দেয়।
এই গাইডে ল্যাংচেইনের একদম প্রাথমিক ধারণা দিয়ে শুরু করেছি। তবে ল্যাংচেইনের ক্ষমতা এখানেই শেষ নয়। এর আরও কিছু শক্তিশালী ফিচার রয়েছে যা আপনার এআই অ্যাপকে পরবর্তী ধাপে নিয়ে যেতে পারে:
- এজেন্টস (Agents): এজেন্টস এলএলএমকে "চিন্তাভাবনা" করার ক্ষমতা দেয় যে কোন পরিস্থিতিতে কোন টুল ব্যবহার করতে হবে। যেমন, একটি এজেন্ট একটি প্রশ্ন পাওয়ার পর সিদ্ধান্ত নিতে পারে যে ডেটাবেজে সার্চ করতে হবে নাকি একটি ক্যালকুলেটর ব্যবহার করতে হবে।
- টুলস (Tools): টুলস হলো বাইরের ফাংশন বা সার্ভিস যা এলএলএম ব্যবহার করতে পারে। যেমন, ওয়েব সার্চ, ক্যালকুলেটর, কোড ইন্টারপ্রেটার বা একটি কাস্টম এপিআই কল।
- মেমরি (Memory): মেমরি আপনার এলএলএম অ্যাপকে পূর্ববর্তী কথোপকথনের প্রসঙ্গ মনে রাখতে সাহায্য করে, যা দীর্ঘ চ্যাট সেশনের জন্য খুব জরুরি।
- আরএজি (Retrieval-Augmented Generation): আরএজি টেকনিক ব্যবহার করে আপনার এলএলএমকে বাইরের ডেটাবেজ বা ডকুমেন্ট থেকে প্রাসঙ্গিক তথ্য খুঁজে বের করে সেই তথ্যের ভিত্তিতে উত্তর দিতে শেখানো যায়। এটি "হ্যালুসিনেশন" কমাতে এবং আরও নির্ভুল উত্তর দিতে সাহায্য করে। আধুনিক সেরা এআই টুলস এই কৌশলগুলো দারুণভাবে কাজে লাগায়।
এই অ্যাডভান্সড ফিচারগুলো ব্যবহার করে আপনি আরও স্মার্ট ও কাজের এআই অ্যাপ্লিকেশন বানাতে পারবেন।
শেষ কথা
ল্যাংচেইন এলএলএম অ্যাপ্লিকেশন ডেভেলপমেন্টের জটিলতা কমিয়ে দেয়, ডেভেলপারদের দ্রুত প্রোটোটাইপ তৈরি করতে এবং শক্তিশালী এআই সমাধান তৈরি করতে দেয়।
পাইথন এবং ল্যাংচেইনের সাহায্যে আপনার প্রথম এআই অ্যাপ তৈরি করা মোটেই কঠিন কিছু নয়। এই গাইডের সাহায্যে আপনি ল্যাংচেইন ফ্রেমওয়ার্কের মূল ধারণাগুলো এবং কীভাবে একটি সাধারণ চ্যাটবট বা শুভেচ্ছা বার্তা জেনারেটর বানাতে হয়, তা শিখেছেন। এটি এলএলএমের বিস্তৃত দুনিয়ায় আপনার প্রথম পদক্ষেপ। এরপর আপনি ল্যাংচেইনের অ্যাডভান্সড ফিচারগুলো নিয়ে আরও এক্সপ্লোর করতে পারবেন এবং নিজের আইডিয়াগুলো বাস্তব রূপ দিতে পারবেন। নতুন কিছু শিখতে চাইলে আমাদের পড়াশোনা বিভাগটি দেখতে পারেন।
সাধারণ প্রশ্ন (FAQ)
ল্যাংচেইন ব্যবহার করে এলএলএম-ভিত্তিক অ্যাপ বানানো সহজ হয়। কারণ এটি জটিল প্রম্পট ম্যানেজমেন্ট, ডেটা ইন্টিগ্রেশন ও আউটপুট পার্সিংয়ের কাজগুলো সুবিন্যস্ত করে তোলে।
না, ল্যাংচেইন বিভিন্ন এলএলএম প্রোভাইডার যেমন Anthropic (Claude), Google (Gemini), Hugging Face-এর মডেলগুলোর সাথেও কাজ করে। এটি একটি ফ্লেক্সিবল ফ্রেমওয়ার্ক।
ল্যাংচেইন `ConversationBufferMemory`, `ConversationSummaryMemory`-এর মতো মেমরি ক্লাসগুলো সমর্থন করে, যা আপনার চ্যাটবটকে পূর্ববর্তী কথোপকথনের প্রসঙ্গ মনে রাখতে সাহায্য করবে।
শেয়ার করুন:

সম্পর্কিত এআই টুলকিট ও রিসোর্স
এই আর্টিকেলের বিষয়ের সাথে সরাসরি সম্পর্কিত সেরা এআই টুলস, ব্যবহারের প্রম্পটস ও ওপেন সোর্স প্রজেক্ট নিচে তুলে ধরা হলো।
সম্পর্কিত এআই টুলস
সব টুলস দেখুন →ResearchRabbit
ফ্রিএকাডেমিক রিসার্চ ও প্রাসঙ্গিক গবেষণাপত্র খুঁজে বের করা।
ResearchRabbit একটি ভিজ্যুয়াল টুল যা গবেষকদের তাদের একাডেমিক কাজের জন্য প্রাসঙ্গিক গবেষণাপত্র, লেখক এবং জার্নাল খুঁজে পেতে সাহায্য করে। এটি একটি "Spotify for papers" এর মতো কাজ করে, যেখানে আপনি একটি গবেষণাপত্র দিলে এটি সেটির সাথে সম্পর্কিত আরও অনেক পেপার এবং লেখককে একটি ইন্টারেক্টিভ গ্রাফে উপস্থাপন করে। এটি নতুন এবং বিদ্যমান গবেষণার সাথে সংযোগ স্থাপনে দারুণ সহায়ক।
রিসার্চ ও সার্চ
SciSpace
ফ্রিমিয়ামএকাডেমিক পেপার পড়া, বোঝা ও বিশ্লেষণ করা
গবেষক ও শিক্ষার্থীদের জন্য তৈরি এই টুলটি জটিল বৈজ্ঞানিক প্রবন্ধগুলোকে সহজ করে বুঝতে সাহায্য করে। যেকোনো কঠিন শব্দ বা ধারণা হাইলাইট করলে AI তার ব্যাখ্যা দেয়, যা গবেষণাপত্র দ্রুত ও কার্যকরভাবে পর্যালোচনা করতে সহায়তা করে।
রিসার্চ ও সার্চ
Quizlet
ফ্রিমিয়ামফ্ল্যাশকার্ড, কুইজ এবং ইন্টারেক্টিভ স্টাডি টুল ব্যবহার করে পড়াশোনার জন্য।
Quizlet হলো একটি জনপ্রিয় প্ল্যাটফর্ম যা শিক্ষার্থীদের পড়াশোনায় সাহায্য করার জন্য AI-চালিত ফ্ল্যাশকার্ড, প্র্যাকটিস টেস্ট এবং বিভিন্ন লার্নিং মোড প্রদান করে। এটি কাস্টমাইজড স্টাডি সেট তৈরি করতে এবং কঠিন বিষয়গুলো সহজে আয়ত্ত করতে দারুণ সহায়ক। নতুন GPT-ভিত্তিক ফিচারগুলো আরও উন্নত শেখার অভিজ্ঞতা দেয়।
পড়াশোনা
প্রতি সপ্তাহে ১টি AI টিপস যা আপনার সময় বাঁচাবে
৫ মিনিটের পড়া। ফ্রিল্যান্সিং ও পড়াশোনায় কাজে লাগবেই — সম্পূর্ণ ফ্রি।


