คู่มือการใช้งาน ChatGPT API รูปแบบการส่ง Request

คู่มือใช้งาน ChatGPT API

🔧 วิธีการส่งข้อมูลไปยัง ChatGPT API (OpenAI)

✅ 1. โครงสร้างหลักที่ใช้คือ messages (chat format)

เวลาคุณจะส่งข้อมูลไปที่ API จะต้องมีการส่งในรูปแบบของ “ข้อความสนทนา” (conversational messages) โดยมี role และ content เช่น:


{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "content": "คุณคือผู้ช่วยอัจฉริยะสำหรับนักศึกษาในมหาวิทยาลัย A ที่สามารถตอบคำถามเกี่ยวกับหลักสูตร การเรียน การลงทะเบียน ฯลฯ"
    },
    {
      "role": "user",
      "content": "สวัสดีครับ อยากทราบว่าหลักสูตรวิศวกรรมคอมพิวเตอร์ปี 1 ต้องเรียนวิชาอะไรบ้าง"
    }
  ]
}
  

✳️ อธิบายโครงสร้าง

Role คำอธิบาย
system ใช้กำหนดบริบท (context) หรือบทบาทของ AI เช่น เป็นผู้ช่วยด้านการศึกษา
user ข้อความจากผู้ใช้งาน
assistant (ไม่จำเป็นต้องมีตอนส่ง initial request) ใช้สำหรับใส่ history ของคำตอบจาก AI ถ้ามีการสนทนาแบบต่อเนื่อง

📦 สิ่งที่คุณควรส่งเข้า API

✅ แบบที่ 1: เนื้อหาคงที่ + คำถามผู้ใช้

หากคุณมีเนื้อหาเกี่ยวกับมหาวิทยาลัย เช่น กฎ ระเบียบ ตารางเรียน ฯลฯ และอยากให้ ChatGPT ตอบคำถามจากผู้ใช้ตามเนื้อหาเหล่านี้ คุณสามารถใส่เนื้อหาใน message แรก เช่นนี้:


{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "content": "ข้อมูลเกี่ยวกับมหาวิทยาลัย A:\n- ภาคเรียนแบ่งเป็น 2 เทอม\n- วิศวกรรมคอมพิวเตอร์ปี 1 เรียน วิชา A, B, C\nคุณคือผู้ช่วยที่ใช้ข้อมูลนี้ในการตอบคำถาม"
    },
    {
      "role": "user",
      "content": "ปี 1 วิศวกรรมคอมพิวเตอร์ต้องเรียนวิชาอะไรบ้าง"
    }
  ]
}
  

หากเนื้อหามีขนาดใหญ่ อาจพิจารณาใช้ Retrieval-Augmented Generation (RAG) หรือเก็บข้อมูลไว้ใน Vector DB แล้วค้นก่อนส่ง prompt

📚 Document ที่เกี่ยวข้อง

✅ แพทเทิร์นที่แนะนำสำหรับเว็บ AI ของคุณ

  • มี เนื้อหาหลัก ที่เกี่ยวกับมหาวิทยาลัย (เก็บไว้ฝั่ง backend)
  • เมื่อผู้ใช้ส่งคำถาม → นำคำถามนั้น + เนื้อหาที่เกี่ยวข้อง → สร้าง prompt → ส่งไปยัง ChatGPT API
  • รับคำตอบ → แสดงบนหน้าเว็บ

หากอยากให้ระบบฉลาดขึ้น สามารถใช้เทคนิคเพิ่มเติม เช่น:

  • ใส่ system prompt ที่ละเอียด
  • ดึง context เฉพาะจาก Vector DB
  • ใช้ memory/chat history เพื่อให้การสนทนาลื่นไหล

🧠 วิธีเขียน system role ให้ละเอียดและแม่นยำ

system role มีหน้าที่ควบคุมบทบาท พฤติกรรม และขอบเขตของ AI โดยการเขียนให้ละเอียดจะช่วยให้โมเดลเข้าใจบริบทของงานได้ดีขึ้น

✅ ตัวอย่างที่เขียนแบบละเอียด (พร้อมใช้)


{
  "role": "system",
  "content": "คุณคือผู้ช่วย AI สำหรับนักศึกษามหาวิทยาลัย A \
ทำหน้าที่ให้ข้อมูลเกี่ยวกับหลักสูตรการเรียน การลงทะเบียน กฎระเบียบ และบริการต่าง ๆ ในมหาวิทยาลัย \
คุณสามารถตอบคำถามเกี่ยวกับคณะต่าง ๆ วิชาที่เปิดสอนในแต่ละปี ตารางการลงทะเบียน ระบบเกรด และชีวิตในรั้วมหาวิทยาลัย \
โปรดใช้ภาษาที่สุภาพ เป็นกันเอง และอธิบายให้เข้าใจง่ายสำหรับนักศึกษาทุกชั้นปี \
หากมีคำถามที่คุณไม่สามารถตอบได้ ให้บอกผู้ใช้งานว่าไม่สามารถให้ข้อมูลได้ และแนะนำให้ติดต่อเจ้าหน้าที่โดยตรง"
}

🔍 โครงสร้างการเขียน system role

องค์ประกอบ คำอธิบาย ตัวอย่าง
บทบาท กำหนดว่า AI คือใคร ทำหน้าที่อะไร คุณคือผู้ช่วย AI สำหรับนักศึกษา…
ขอบเขตความรู้ เรื่องที่ AI สามารถให้ข้อมูลได้ หลักสูตร, การลงทะเบียน, กฎระเบียบ…
รูปแบบภาษา แนวทางการพูด เช่น สุภาพ เป็นกันเอง ใช้ภาษาที่สุภาพ เข้าใจง่าย…
ข้อจำกัด สิ่งที่ไม่ควรทำ หรือควรแจ้งเมื่อไม่รู้ หากไม่ทราบให้แนะนำติดต่อเจ้าหน้าที่

💡 เคล็ดลับเพิ่มเติม

  • ใส่ bullet point ช่วยให้เข้าใจง่าย
  • กำหนด “tone” ที่ต้องการ เช่น เหมือนรุ่นพี่ใจดี
  • ระบุขอบเขตชัดเจน → ป้องกัน AI เดาข้อมูล
  • เหมาะมากหากใช้กับระบบที่ให้คำปรึกษา หรือ chatbot ภายในองค์กร

🏢 การใช้งาน system role สำหรับบริการในองค์กร

สำหรับระบบ chatbot หรือ AI assistant ในองค์กร คุณสามารถส่ง system role เพียงครั้งแรก แล้วให้การสนทนาดำเนินต่อไปโดยใช้ข้อความแบบต่อเนื่องได้เลย

✅ ตัวอย่างโครงสร้างข้อความแบบหลายรอบ


[
  {
    "role": "system",
    "content": "คุณคือผู้ช่วยนักศึกษา มหาวิทยาลัย A ที่ให้คำแนะนำเกี่ยวกับหลักสูตร การลงทะเบียน และกฎระเบียบ"
  },
  {
    "role": "user",
    "content": "หลักสูตรปี 1 วิศวะคอมต้องเรียนวิชาอะไรบ้าง"
  },
  {
    "role": "assistant",
    "content": "ปี 1 วิศวกรรมคอมพิวเตอร์จะเรียนวิชา พื้นฐานคอมพิวเตอร์, คณิตศาสตร์พื้นฐาน, ฟิสิกส์ เป็นต้น"
  },
  {
    "role": "user",
    "content": "แล้วปี 2 ล่ะครับ?"
  }
]

🔁 โฟลว์ที่แนะนำสำหรับองค์กร

  • 1️⃣ เริ่มต้น session ด้วย system role (กำหนดบทบาท AI)
  • 2️⃣ ส่งคำถามแรก จากผู้ใช้ (role: user)
  • 3️⃣ รับคำตอบจาก AI (role: assistant)
  • 4️⃣ เก็บ message history ทั้งหมด ฝั่ง backend
  • 5️⃣ เมื่อมีคำถามใหม่ → ส่งพร้อม history กลับไปยัง API

💡 หมายเหตุ

  • ChatGPT API ไม่มี memory ข้าม request → คุณต้องส่ง history ทั้งหมดทุกครั้งเอง
  • สามารถใช้ session ID หรือ user ID จับกลุ่มข้อความในระบบ backend
  • ไม่ต้องส่ง system ซ้ำทุกรอบ ถ้าอยู่ใน context เดียวกัน

📌 แผนภาพโฟลว์

คุณสามารถใช้แนวคิดแบบนี้ในระบบของคุณได้:


graph TD
A[เริ่มแชท] --> B[ส่ง system + คำถามแรก]
B --> C[รับคำตอบ]
C --> D[บันทึก history]
D --> E[ผู้ใช้ถามใหม่]
E --> F[ส่ง history + คำถามใหม่ ไปยัง API]
F --> G[รับคำตอบใหม่]

💬 ความหมายของ assistant role

assistant หมายถึงข้อความ ที่ AI ตอบกลับมา ในบทสนทนา โดยจะเป็นคำตอบที่คุณได้รับหลังจากส่ง messages ไปยัง ChatGPT API

✅ ตัวอย่างที่มี assistant เป็นคำตอบ


[
  {
    "role": "system",
    "content": "คุณคือผู้ช่วยนักศึกษา ให้ข้อมูลเรื่องหลักสูตรและการลงทะเบียน"
  },
  {
    "role": "user",
    "content": "สวัสดีครับ วิชาปี 1 มีอะไรบ้าง?"
  },
  {
    "role": "assistant",
    "content": "ปี 1 จะเรียนวิชา คณิตศาสตร์เบื้องต้น, ฟิสิกส์ทั่วไป, และการเขียนโปรแกรมเบื้องต้น เป็นต้น"
  }
]

📘 คำอธิบายแต่ละ role ในระบบ ChatGPT

role หมายถึง ใช้เมื่อ…
system กำหนดบทบาทของ AI (บริบท/พฤติกรรม) ตั้งแต่เริ่ม session เช่น “คุณคือผู้ช่วยแนะแนว”
user คำถามหรือข้อความจากผู้ใช้งาน ผู้ใช้ส่งคำถาม เช่น “ค่าเทอมเท่าไหร่?”
assistant คำตอบที่ AI ตอบกลับ เป็นผลลัพธ์ที่ได้จาก ChatGPT

🔁 การโต้ตอบแบบหลายรอบ (Multi-turn)

เพื่อให้ AI เข้าใจบริบทต่อเนื่อง ควรส่งข้อความเดิม (ทั้ง user และ assistant) กลับไปพร้อมคำถามใหม่


[
  {
    "role": "system",
    "content": "คุณคือผู้ช่วยนักศึกษา"
  },
  {
    "role": "user",
    "content": "คณะวิศวะมีอะไรบ้าง?"
  },
  {
    "role": "assistant",
    "content": "มีวิศวกรรมคอมพิวเตอร์, ไฟฟ้า, เครื่องกล..."
  },
  {
    "role": "user",
    "content": "แล้ววิศวะคอมเรียนกี่ปี?"
  }
]

✅ สรุป

  • assistant = คำตอบจาก AI
  • ใช้เพื่อเก็บ history ของการโต้ตอบ
  • ควรแนบไปใน messages ทุกครั้ง หากต้องการ context ต่อเนื่อง

Loading