บทนำ
การพัฒนา AI ผู้ช่วยสัมภาษณ์งาน (Interview AI Assistant) เป็นโปรเจกต์ที่ได้รับความนิยมอย่างมากในยุคปัจจุบัน เพราะช่วยให้ผู้สมัครงานได้ฝึกซ้อมการสัมภาษณ์อย่างมืออาชีพก่อนเข้าสู่สนามจริง บทความนี้จะพาคุณเรียนรู้การออกแบบระบบสนทนาที่มีประสิทธิภาพ โดยใช้ LLM API จาก สมัครที่นี่ ซึ่งมีความเร็วตอบสนองต่ำกว่า 50 มิลลิวินาที และราคาประหยัดกว่าบริการอย่างเป็นทางการถึง 85% ขึ้นไป ในฐานะผู้พัฒนาที่เคยสร้างระบบ AI สัมภาษณ์งานหลายเวอร์ชัน ผมจะแบ่งปันเทคนิคการจัดการ context window, การสร้าง memory system แบบยืดหยุ่น และ prompt engineering ที่เหมาะกับงานสัมภาษณ์โดยเฉพาะตารางเปรียบเทียบบริการ LLM API
| บริการ | ราคา (ต่อล้าน tokens) | ความเร็ว (latency) | วิธีการชำระเงิน | ความเร็วตอบสนอง |
|---|---|---|---|---|
| HolySheep AI | GPT-4.1: $8 Claude Sonnet 4.5: $15 Gemini 2.5 Flash: $2.50 DeepSeek V3.2: $0.42 | ต่ำกว่า 50ms | WeChat, Alipay, บัตรเครดิต | รวดเร็วมาก |
| API อย่างเป็นทางการ | GPT-4o: $15 Claude 3.5: $15 Gemini Pro: $7 | 200-500ms | บัตรเครดิตเท่านั้น | ปานกลาง |
| บริการรีเลย์อื่นๆ | แตกต่างกันไป | 100-800ms | แตกต่างกันไป | ไม่แน่นอน |
หลักการพื้นฐานของการออกแบบระบบสนทนา
การสร้าง AI ผู้ช่วยสัมภาษณ์งานที่ดีต้องคำนึงถึง 3 องค์ประกอบหลัก ประการแรกคือ context management ที่ต้องจัดการประวัติการสนทนาให้เหมาะสม ประการที่สองคือ memory system ที่ช่วยให้ AI จดจำข้อมูลสำคัญตลอดการสัมภาษณ์ และประการที่สามคือ prompt engineering ที่กำหนดบทบาทและพฤติกรรมของ AI ให้เหมาะกับการสัมภาษณ์งานการตั้งค่า API Connection
import requests
import json
from typing import List, Dict, Optional
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class Message:
role: str # "system", "user", หรือ "assistant"
content: str
timestamp: datetime = field(default_factory=datetime.now)
class InterviewAIClient:
"""คลาสสำหรับเชื่อมต่อกับ LLM API สำหรับระบบสัมภาษณ์งาน"""
def __init__(
self,
api_key: str,
model: str = "gpt-4.1",
base_url: str = "https://api.holysheep.ai/v1"
):
self.api_key = api_key
self.model = model
self.base_url = base_url
self.chat_endpoint = f"{base_url}/chat/completions"
self.conversation_history: List[Message] = []
def _build_headers(self) -> Dict[str, str]:
return {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def send_message(
self,
user_message: str,
system_prompt: Optional[str] = None,
temperature: float = 0.7,
max_tokens: int = 1000
) -> str:
"""ส่งข้อความและรับการตอบกลับจาก AI"""
# เพิ่มข้อความผู้ใช้ในประวัติการสนทนา
self.conversation_history.append(Message("user", user_message))
# สร้าง payload สำหรับ API request
messages = []
# เพิ่ม system prompt ถ้ามี
if system_prompt:
messages.append({"role": "system", "content": system_prompt})
# เพิ่มประวัติการสนทนาทั้งหมด
for msg in self.conversation_history:
messages.append({
"role": msg.role,
"content": msg.content
})
payload = {
"model": self.model,
"messages": messages,
"temperature": temperature,
"max_tokens": max_tokens
}
try:
response = requests.post(
self.chat_endpoint,
headers=self._build_headers(),
json=payload,
timeout=30
)
response.raise_for_status()
result = response.json()
assistant_reply = result["choices"][0]["message"]["content"]
# เพิ่มการตอบกลับของ AI ในประวัติการสนทนา
self.conversation_history.append(Message("assistant", assistant_reply))
return assistant_reply
except requests.exceptions.RequestException as e:
print(f"เกิดข้อผิดพลาดในการเชื่อมต่อ: {e}")
return "ขออภัย เกิดข้อผิดพลาดในการเชื่อมต่อ กรุณาลองใหม่อีกครั้ง"
ตัวอย่างการใช้งาน
client = InterviewAIClient(
api_key="YOUR_HOLYSHEEP_API_KEY",
model="gpt-4.1"
)
print("เริ่มต้นระบบ AI ผู้ช่วยสัมภาษณ์งาน...")
การสร้างระบบ System Prompt สำหรับการสัมภาษณ์งาน
def create_interview_system_prompt(
job_position: str,
job_description: str,
company_culture: str = "",
difficulty_level: str = "medium"
) -> str:
"""
สร้าง system prompt สำหรับ AI ผู้ช่วยสัมภาษณ์งาน
Args:
job_position: ตำแหน่งงานที่สมัคร
job_description: รายละเอียดงาน
company_culture: วัฒนธรรมองค์กร
difficulty_level: ระดับความยาก (easy, medium, hard)
"""
difficulty_instruction = {
"easy": "ใช้คำถามพื้นฐานทั่วไป ให้เวลาคิดนาน ให้คำแนะนำเมื่อตอบผิด",
"medium": "ผสมผสานระหว่างคำถามพื้นฐานและคำถามเชิงลึก ให้ feedback สม่ำเสมอ",
"hard": "ใช้คำถามเชิงลึกและคำถาม stress test ให้ feedback กระชับ"
}
prompt = f"""คุณคือผู้จัดการฝ่าย HR ที่มีประสบการณ์การสัมภาษณ์งานมากกว่า 10 ปี
คุณกำลังสัมภาษณ์ผู้สมัครตำแหน่ง {job_position}
รายละเอียดตำแหน่งงาน:
{job_description}
{difficulty_instruction.get(difficulty_level, difficulty_instruction['medium'])}
กฎที่ต้องปฏิบัติตาม:
1. ถามทีละคำถาม รอให้ผู้สมัครตอบก่อนถามคำถามถัดไป
2. ให้คำแนะนำที่สร้างสรรค์และเป็นประโยชน์
3. ถามคำถามติดตามผลเมื่อคำตอบไม่ชัดเจน
4. ให้ feedback หลังจากคำตอบที่ดีหรือต้องปรับปรุง
5. จดจำข้อมูลที่ผู้สมัครเคยกล่าวมาเพื่อถามติดตาม
6. สิ้นสุดการสัมภาษณ์ด้วยการสรุปและให้คำแนะนำ
รูปแบบการสนทนา:
- ทักทายและแนะนำตัว
- อธิบายโครงสร้างการสัมภาษณ์
- เริ่มต้นด้วยคำถามพื้นฐาน
- ค่อยๆเพิ่มความยาก
- สรุปผลเมื่อเสร็จสิ้น"""
if company_culture:
prompt += f"\n\nข้อมูลวัฒนธรรมองค์กร:\n{company_culture}"
return prompt
ตัวอย่างการใช้งาน
system_prompt = create_interview_system_prompt(
job_position="Software Engineer",
job_description="พัฒนาเว็บแอปพลิเคชันด้วย Python และ React\nต้องมีประสบการณ์ 2 ปีขึ้นไป\nมีความรู้ด้าน Database และ API Design",
difficulty_level="medium"
)
print("System Prompt พร้อมแล้ว:")
print(system_prompt)
ระบบ Memory และ Context Management
การจัดการ context เป็นหัวใจสำคัญของระบบสัมภาษณ์งาน เพราะ AI ต้องจดจำข้อมูลที่ผู้สมัครเคยกล่าวมาทั้งหมด ไม่ว่าจะเป็นประสบการณ์ทำงาน ทักษะ หรือคำตอบในคำถามก่อนหน้า เพื่อถามคำถามติดตามผลได้อย่างมีประสิทธิภาพการสร้าง Conversation Memory System
from collections import deque
from typing import Optional, List, Tuple
import json
class InterviewMemory:
"""ระบบจัดการความจำสำหรับการสัมภาษณ์งาน"""
def __init__(
self,
max_context_length: int = 10,
summary_interval: int = 5
):
self.max_context_length = max_context_length # จำน