ข้ามไปเนื้อหาหลัก

สร้างระบบติวเตอร์ Python อัจฉริยะด้วย FastAPI และ SQLite

เรียนรู้วิธีสร้าง PyMentor API สำหรับตรวจโค้ด Python พร้อมให้คำแนะนำผ่าน OpenAI และบันทึกคะแนนความเข้าใจลง SQLite

เรียบเรียงโดย AI
Inewgen
25 Sep 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)
แชร์
สร้างระบบติวเตอร์ Python อัจฉริยะด้วย FastAPI และ SQLite

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • สร้าง API สำหรับตรวจโค้ด Python และรับคำแนะนำการสอนจาก OpenAI
  • บันทึกประวัติการส่งงานและคะแนนความเข้าใจลงในฐานข้อมูล SQLite
  • จำกัดขนาดโค้ดสูงสุดที่ 12,000 ตัวอักษรและไม่รันโค้ดผู้เรียนโดยตรง
  • ควบคุมช่วงคะแนนความเข้าใจให้อยู่ระหว่าง 0 ถึง 100 เสมอ

บทความนี้เป็นส่วนหนึ่งของซีรีส์ Agentic Workflows จาก Gate of AI โดยมุ่งเน้นการสร้าง API ขนาดกะทัดรัดที่เรียกว่า PyMentor เพื่อทำหน้าที่เป็นระบบติวเตอร์ Python แบบปรับตัวได้ (Adaptive Tutoring API) ระบบจะรับข้อมูลรหัสผู้เรียน หัวข้อ แบบฝึกหัด และโค้ดที่ส่งมา จากนั้นดึงคะแนนความเข้าใจเดิมของผู้เรียนในหัวข้อนั้นมาประเมินร่วมกับ OpenAI model เพื่อขอคำแนะนำในการสอน ตรวจสอบความถูกต้องของ JSON ที่ตอบกลับ คำนวณคะแนนใหม่ และบันทึกผลลัพธ์ลงใน SQLite

เป้าหมายของระบบถูกกำหนดไว้อย่างชัดเจนว่าตัว API จะไม่ทำการรันโค้ดของผู้เรียน ไม่ตัดสินว่าผู้เรียนสอบผ่านหรือไม่ และไม่ทำหน้าที่แทนครูผู้สอน แต่เน้นกระบวนการให้ฟีดแบ็กซ้ำๆ ได้แก่ การระบุปัญหาที่น่าจะเกิดขึ้น ชื่นชมส่วนที่ถูกต้อง ให้คำใบ้ถัดไป ตั้งคำถาม และเก็บบันทึกความคืบหน้า ซึ่งขอบเขตนี้ช่วยป้องกันไม่ให้นำโค้ดที่ไม่รู้จักมาประมวลผลเป็นคำสั่งที่รันได้จริง

การจำกัดขอบเขตไม่ให้ API รันโค้ดของผู้เรียนโดยตรงถือเป็นแนวทางด้านความปลอดภัยที่สำคัญมากในการพัฒนาเครื่องมือ AI ด้านการศึกษา เนื่องจากช่วยป้องกันช่องโหว่ประเภท Remote Code Execution (RCE) ที่อาจเกิดขึ้นหากผู้เรียนส่งโค้ดอันตรายเข้ามาในระบบ

ในการเริ่มต้นพัฒนา ให้สร้างไดเรกทอรีโปรเจกต์และสภาพแวดล้อมเสมือน (Virtual Environment) สำหรับ POSIX shell สามารถใช้คำสั่งดังนี้:

  • mkdir pymentor
  • cd pymentor
  • python3 -m venv .venv
  • source .venv/bin/activate
  • python -m pip install --upgrade pip
  • pip install fastapi "uvicorn[standard]" openai pydantic-settings
  • mkdir -p app

สำหรับ Windows PowerShell สามารถเปิดใช้งานสภาพแวดล้อมได้ด้วยคำสั่ง .\.venv\Scripts\Activate.ps1 พร้อมทั้งสร้างไฟล์ .env ที่รูทของโปรเจกต์เพื่อกำหนดค่า API Key, โมเดล OpenAI, ตำแหน่งฐานข้อมูล และขนาดโค้ดสูงสุด 12,000 ตัวอักษร รวมถึงเพิ่มค่าลงในไฟล์ .gitignore เพื่อความปลอดภัย

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

12,000จำนวนตัวอักษรสูงสุดของโค้ดต่อครั้ง
0-100ช่วงคะแนนความเข้าใจที่ระบบควบคุม

ในส่วนของการพัฒนาแอปพลิเคชัน ให้นำโค้ดทั้งหมดใส่ไว้ในไฟล์ app/main.py โดยโมเดลคำขอจะช่วยจำกัดข้อมูลที่ยอมรับจากไคลเอนต์ และใช้ Pydantic เพื่อตรวจสอบความถูกต้องของ JSON ผลลัพธ์ หากข้อมูลขาดหายหรือคะแนนอยู่นอกช่วงที่กำหนด ระบบจะคืนค่าข้อผิดพลาดที่ปลอดภัยแทนการบันทึกข้อมูลที่ไม่น่าเชื่อถือ นอกจากนี้การบันทึกข้อมูลลง SQLite จะใช้พารามิเตอร์แทนการแทรกสตริงเพื่อป้องกัน SQL Injection

"Do not test for an exact sentence from a language model. Test the response contract: fields should exist, lists should have the expected shape, and mastery should remain within the API’s defined range."

Gate of AI Technical Briefing
api code editor screen programming development workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

เมื่อเริ่มต้นเซิร์ฟเวอร์พัฒนาด้วยคำสั่ง uvicorn app.main:app --host 127.0.0.1 --port 8000 --reload ผู้ใช้สามารถทดสอบส่งคำขอผ่าน cURL ไปยังจุดเชื่อมต่อ /v1/tutor/review เพื่อส่งข้อมูลรหัส learner_42 หัวข้อ loops และโค้ด Python สำหรับคำนวณผลรวม ระบบจะส่งคืนสถานะ HTTP 201 พร้อมรหัสการทำรายการ คะแนนเดิม คะแนนใหม่ และวัตถุฟีดแบ็กที่ผ่านการตรวจสอบแล้ว

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้