🔧 LangChain เบื้องต้น | รู้จัก Prompt Template และ Chain

“ออกแบบ Prompt ให้ยืดหยุ่น และเชื่อมการทำงานด้วย Chain อย่างมืออาชีพ”


✍️ Prompt Template คืออะไร?

Prompt Template คือ เครื่องมือที่ช่วยจัดรูปแบบ Prompt ให้เป็นระเบียบและยืดหยุ่น โดยกำหนด “ตำแหน่งว่าง” สำหรับข้อมูลที่จะส่งเข้าไปในภายหลัง เช่น ชื่อหัวข้อ, จำนวนคำ ฯลฯ

🔄 คล้ายกับการใช้ f-string ใน Python แต่เอามาใช้กับการส่งข้อความให้ LLM เช่น GPT


✅ โครงสร้าง Prompt Template มี 2 ส่วนหลัก

  1. Template String
    • ข้อความหลักที่มี {ตัวแปร} แทรกไว้ เช่น:
      "อธิบายเกี่ยวกับ {topic} ใน {word} คำ"
  2. Input Variables
    • ค่าที่จะส่งเข้าไปแทน {} ใน Template
    • เช่น: {"topic": "AI", "word": "10"}

🎓 ตัวอย่างการใช้งาน Prompt Template

from langchain_core.prompts import ChatPromptTemplate

template = ChatPromptTemplate.from_template("อธิบายเกี่ยวกับ {topic} ใน {word} คำ")
  • {topic} อาจเป็น “อาหารไทย”, “ฟิสิกส์”, “AI”
  • {word} อาจเป็น “5”, “10”, “50”

🎯 ข้อดี: ใช้ซ้ำได้ ปรับเปลี่ยนง่าย เพิ่มความยืดหยุ่นในการสร้างคำถามหรือคำสั่ง


🔗 Chain คืออะไร?

Chain ใน LangChain คือ การเชื่อมต่อแต่ละองค์ประกอบของแอป AI เข้าด้วยกัน ตามลำดับการทำงาน เช่น:

📥 Input → 🎯 Prompt Template → 🤖 LLM Model → 📤 Output

ใช้แนวคิดแบบ “input → process → output” และสามารถต่อหลายๆ Chain ได้ (ซ้อนขั้นตอน)


✅ โค้ดตัวอย่างการสร้าง Chain

from langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template("อธิบายเกี่ยวกับ {topic} ใน {word} คำ")
llm = ChatOpenAI(model="gpt-4o", temperature=0.7)

chain = prompt | llm
  • prompt คือแบบฟอร์มของคำถาม
  • llm คือโมเดลที่ใช้ เช่น GPT-4
  • | คือการเชื่อม prompt เข้ากับ model (เรียกว่า LCEL – LangChain Expression Language)

🚀 การเรียกใช้งาน Chain

response = chain.invoke({
    "topic": "AI",
    "word": "5"
})
print(response.content)

ผลลัพธ์เช่น: "เรียนรู้ วิเคราะห์ ตัดสินใจ"
(คำอธิบาย AI แบบกระชับใน 3 คำ)


🧠 ข้อดีของการใช้ Prompt Template + Chain

Prompt TemplateChain
ปรับข้อความแบบมีโครงสร้างเชื่อมการทำงานเป็นขั้นตอน
ใส่ตัวแปรได้สะดวกควบคุม Flow ของข้อมูลได้
ใช้ซ้ำได้จัดระบบแอปให้ขยายได้ง่าย
อ่านโค้ดง่ายต่อกับ Agent หรือ RAG ได้

🧪 ตัวอย่างอื่น ๆ

  1. เปลี่ยน topic เป็น “ฟิสิกส์” จำนวนคำ 3 คำ
    ได้ผลลัพธ์: "พลังงาน แรง การเคลื่อนที่"
  2. เปลี่ยน topic เป็น “AI” จำนวนคำ 5 คำ
    ได้ผลลัพธ์: "ปัญญาประดิษฐ์ ที่เรียนรู้ และคิด"
  3. เปลี่ยน prompt เป็นแนวให้เข้าใจง่าย
    Template: "อธิบายเกี่ยวกับ {topic} ให้เข้าใจง่ายใน {word} คำ"

🛠️ ข้อควรระวัง

  • อย่าลืมใส่ตัวแปรให้ครบตรงกับที่ระบุใน Template เช่น {topic}, {word}
  • ถ้าโมเดลช้า ให้เปลี่ยนจาก gpt-4 เป็น gpt-4o หรือ gpt-4o-mini

✅ สรุปตอนนี้

  • Prompt Template = ออกแบบคำถามให้ยืดหยุ่น
  • Chain = เชื่อมต่อคำถามกับโมเดลให้ทำงานต่อเนื่อง
  • ใช้ LCEL (|) เพื่อเขียน chain ได้กระชับ
  • เปลี่ยนข้อมูลใน prompt ได้ง่ายด้วยการใช้ตัวแปร
  • เหมาะกับแอปที่ต้องเปลี่ยน input บ่อย เช่น chatbot, ระบบสรุปข้อมูล, คำอธิบายสินค้า ฯลฯ
📢 แชร์บทความนี้ให้เพื่อนอ่านสิ!

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *