🦜 LangChain কী?
LLM application build-এর popular framework। Chain, agent, memory, retrieval — সব built-in।
📦 Core Concept
- LLM — model wrapper
- Prompt template — variable substitute
- Chain — multi-step pipeline
- Memory — conversation history
- Retriever — search interface
- Agent — autonomous LLM + tools
- Tool — callable function
🔗 Simple Chain
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template(
"Translate to Bengali: {text}"
)
chain = prompt | llm
result = chain.invoke({"text": "Hello world"})
🧠 Memory
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context({"input": "Hi"}, {"output": "Hello"})
memory.load_memory_variables({})
🤖 Agent
from langchain.agents import create_react_agent, AgentExecutor
from langchain_community.tools import DuckDuckGoSearchRun
tools = [DuckDuckGoSearchRun()]
agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)
executor.invoke({"input": "Latest AI news?"})
📊 LangGraph (newer)
Stateful multi-agent workflow — graph-based, more control।
🦙 LlamaIndex
RAG-focused alternative। Document indexing simpler।
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
docs = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(docs)
query_engine = index.as_query_engine()
response = query_engine.query("What is X?")
🎯 কোনটা কখন
- LangChain — general LLM app, agent, chain
- LangGraph — complex multi-step, state machine
- LlamaIndex — RAG-heavy app
- Direct API — simple, full control
- Haystack — production NLP pipeline
- Semantic Kernel — .NET ecosystem
⚠️ Framework Trade-off
- + Lots of integration built-in
- + Best practice baked in
- − Abstraction leak
- − Breaking change frequent
- − Debugging harder
- − Performance overhead
💡 Recommendation
Production-এ direct API + selective LangChain component। Full framework lock-in এড়ান।