ai-tools

LangChain 101: สร้าง AI Application ง่ายขึ้น

24 ตุลาคม 25684 นาที754 ครั้ง

เรียนรู้ LangChain framework ที่ช่วยให้การสร้าง AI applications ง่ายขึ้น พร้อม use cases และตัวอย่างโค้ด

LangChain คืออะไร?

LangChain เป็น framework สำหรับสร้าง applications ที่ใช้ Large Language Models (LLMs) ทำให้การพัฒนา AI apps ง่ายและเร็วขึ้น

ทำไมต้องใช้ LangChain?

ปัญหาเมื่อไม่ใช้ LangChain:

  • ต้องเขียนโค้ดซ้ำๆ สำหรับ prompt templates
  • จัดการ context และ memory ยาก
  • เชื่อมต่อกับ external data sources ซับซ้อน
  • Chain หลาย LLM calls ยุ่งยาก

LangChain ช่วยแก้:

  • ✅ Modular components - ใช้ซ้ำได้
  • ✅ Built-in integrations - เชื่อมต่อง่าย
  • ✅ Memory management - จำบริบทได้
  • ✅ Chains - ต่อ LLM calls ง่าย

🧱 Components หลักของ LangChain

1. Models

Support LLMs หลากหลาย:

  • OpenAI (GPT-3.5, GPT-4)
  • Anthropic (Claude)
  • Hugging Face
  • Local models (Llama, etc.)
from langchain.llms import OpenAI

llm = OpenAI(temperature=0.7)
response = llm("What is LangChain?")
print(response)

2. Prompts

จัดการ prompts อย่างเป็นระบบ:

from langchain import PromptTemplate

template = """
คุณเป็น {role}
ช่วยตอบคำถาม: {question}
"""

prompt = PromptTemplate(
    template=template,
    input_variables=["role", "question"]
)

formatted = prompt.format(
    role="ผู้เชี่ยวชาญ AI",
    question="LangChain คืออะไร?"
)

3. Chains

เชื่อมต่อหลาย steps เข้าด้วยกัน:

from langchain import LLMChain

chain = LLMChain(llm=llm, prompt=prompt)

result = chain.run(
    role="AI Expert",
    question="What is LangChain?"
)

4. Memory

จำบทสนทนาก่อนหน้า:

from langchain.memory import ConversationBufferMemory
from langchain import ConversationChain

memory = ConversationBufferMemory()
conversation = ConversationChain(
    llm=llm,
    memory=memory
)

conversation.run("สวัสดี ฉันชื่อ John")
conversation.run("ฉันชื่ออะไร?")  # จะตอบว่า "John"

5. Agents

AI ที่ตัดสินใจใช้ tools เอง:

from langchain.agents import load_tools, initialize_agent

tools = load_tools(["wikipedia", "calculator"])

agent = initialize_agent(
    tools,
    llm,
    agent="zero-shot-react-description"
)

agent.run("What is 25 * 4 + 10?")

🎯 Use Cases

1. Q&A over Documents

ถาม-ตอบจากเอกสารของคุณเอง:

from langchain.document_loaders import TextLoader
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA

# Load documents
loader = TextLoader("data.txt")
documents = loader.load()

# Create vector store
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(documents, embeddings)

# Create QA chain
qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever()
)

qa.run("What does the document say about AI?")

2. Chatbot with Memory

Chatbot ที่จำบทสนทนา:

from langchain.memory import ConversationBufferWindowMemory

# จำแค่ 5 ข้อความล่าสุด
memory = ConversationBufferWindowMemory(k=5)

chat = ConversationChain(
    llm=llm,
    memory=memory
)

chat.run("สวัสดี")
chat.run("ฉันสนใจเรียน AI")
chat.run("ฉันสนใจเรื่องอะไร?")  # จะจำได้

3. SQL Agent

ถามคำถามเป็นภาษาธรรมดา แล้ว query database:

from langchain.agents import create_sql_agent
from langchain.sql_database import SQLDatabase

db = SQLDatabase.from_uri("sqlite:///mydb.db")

agent = create_sql_agent(llm, db)

agent.run("How many users registered last month?")

🔗 Chains ประเภทต่างๆ

1. Simple Chain

chain = LLMChain(llm=llm, prompt=prompt)

2. Sequential Chain

รัน chain ตามลำดับ:

from langchain.chains import SimpleSequentialChain

chain1 = LLMChain(llm=llm, prompt=prompt1)
chain2 = LLMChain(llm=llm, prompt=prompt2)

overall_chain = SimpleSequentialChain(chains=[chain1, chain2])

3. Router Chain

เลือก chain ตาม input:

from langchain.chains.router import MultiPromptChain

chain = MultiPromptChain(
    router_chain=router,
    destination_chains=destination_chains
)

💾 Vector Stores

Support หลาย Vector DBs:

  • FAISS
  • Pinecone
  • Weaviate
  • Chroma
  • Qdrant
from langchain.vectorstores import Chroma

vectorstore = Chroma.from_documents(
    documents=docs,
    embedding=OpenAIEmbeddings()
)

# Similarity search
results = vectorstore.similarity_search("AI")

🛠️ Tools & Integrations

Built-in Tools:

  • Wikipedia
  • Calculator
  • Python REPL
  • Google Search
  • Weather API

Custom Tools:

from langchain.tools import Tool

def my_function(input_text):
    return f"Processed: {input_text}"

custom_tool = Tool(
    name="MyTool",
    func=my_function,
    description="Useful for processing text"
)

📚 Document Loaders

Support หลายรูปแบบ:

  • PDF
  • CSV
  • HTML
  • Markdown
  • Google Drive
  • Notion
from langchain.document_loaders import PyPDFLoader

loader = PyPDFLoader("document.pdf")
pages = loader.load_and_split()

⚡ Best Practices

1. Manage API Costs

  • ใช้ caching
  • จำกัด token usage
  • เลือก model ที่เหมาะสม

2. Error Handling

try:
    result = chain.run(input)
except Exception as e:
    print(f"Error: {e}")
    # Handle error

3. Debugging

from langchain.globals import set_debug

set_debug(True)  # เห็น internal calls

4. Async Operations

async def process():
    result = await chain.arun(input)
    return result

🎓 Learning Path

สำหรับมือใหม่:

  1. เริ่มจาก simple LLMChain
  2. ลอง Prompt Templates
  3. เพิ่ม Memory
  4. ใช้ Document Loaders
  5. สร้าง Q&A system

Advanced:

  1. สร้าง Custom Agents
  2. ใช้ Vector Stores
  3. Build Multi-step Chains
  4. Deploy to production

🚀 Getting Started

# Install
pip install langchain openai

# Basic example
from langchain.llms import OpenAI
from langchain import PromptTemplate, LLMChain

llm = OpenAI(temperature=0.7)

template = "What is {topic}?"
prompt = PromptTemplate(template=template, input_variables=["topic"])

chain = LLMChain(llm=llm, prompt=prompt)

print(chain.run("LangChain"))

⚠️ Limitations

  • Learning curve ชันสำหรับ advanced features
  • Documentation บางส่วนยังไม่ครบ
  • อัปเดตบ่อย API อาจเปลี่ยน
  • Performance overhead จาก abstraction

🔮 Future of LangChain

Roadmap:

  • Better streaming support
  • More integrations
  • Improved debugging tools
  • Production-ready features

สรุป

LangChain ทำให้การสร้าง AI applications ง่ายขึ้นมาก:

  • ✅ Modular และใช้ซ้ำได้
  • ✅ Integrations มากมาย
  • ✅ Active community
  • ✅ Well-maintained

ถ้าคุณสร้าง AI apps ลอง LangChain ได้เลย จะประหยัดเวลาเยอะ!

Tags

#LangChain#AI Development#LLM#Framework#Python

แชร์บทความนี้