AI สำหรับผู้เริ่มต้นคู่มือ
System prompt และ temperature: ทำอะไรและตั้งค่าอย่างไร
ข้อความ system และ temperature ทำอะไรในคำขอที่เข้ากันได้กับ OpenAI พร้อมตัวอย่าง Python และ curl ที่คุณส่งไปยังโมเดล CheapTokens ได้

ในหน้านี้
System prompt คือข้อความที่มี role เป็น system ที่บอกโมเดลว่าต้องปฏิบัติตัวอย่างไรในทุกคำตอบ: มันคือใคร ใช้รูปแบบใด หลีกเลี่ยงอะไร Temperature คือตัวเลข โดยปกติอยู่ระหว่าง 0 ถึง 2 (ช่วงขึ้นอยู่กับโมเดล) ที่กำหนดว่าถ้อยคำสามารถแปรผันได้มากน้อยเพียงใด: ค่าต่ำให้คำตอบที่โฟกัสและทำซ้ำได้ ค่าสูงให้คำตอบที่หลากหลายขึ้น ทั้งสองอย่างใส่ไว้ในคำขอ Chat Completions เดียวกัน ซึ่งคุณส่งไปที่ https:/
ด้านล่าง: แต่ละอย่างคืออะไร ค่าใดควรเริ่มต้นด้วย และคำขอที่คุณรันได้ใน Python หรือ curl หากคุณยังไม่เคยส่งคำขอ เริ่มจาก คำขอ API แรกของคุณกับ CheapTokens
System prompt คืออะไร?#
คำขอแชทคือรายการข้อความ และทุกข้อความมี role เอกสารอ้างอิง Chat Completions ระบุสี่ role: system, user, assistant และ tool (เอกสารอ้างอิง DeepSeek API ตรวจสอบเมื่อ 22 ตุลาคม 2026) สำหรับคำขอแรกคุณต้องใช้สาม role:
system— คำสั่งถาวรจากคุณในฐานะนักพัฒนา โมเดลถือเป็นกฎของบทสนทนาuser— สิ่งที่ผู้ใช้ถามหรือให้มาในเทิร์นนี้assistant— คำตอบก่อนหน้าของโมเดล คุณเพิ่มเองเมื่อสนทนาต่อ
ข้อความ system ต้องตั้ง role เป็น system และ content เป็นสตริง ฟิลด์ name เป็นทางเลือก
"messages": [
{"role": "system", "content": "You are an editor. Rewrite the user's text to be shorter and friendlier. Return only the rewritten text."},
{"role": "user", "content": "Send me the report by tonight or I will be upset."}
]ข้อความ system ต้องมาก่อน ข้อความ user คืองานจริง
วิธีเขียน system prompt ที่มีประโยชน์#
- บอกว่าโมเดลทำอะไรในหนึ่งประโยค: "You are an editor", "You classify support tickets"
- ระบุรูปแบบเอาต์พุต: "Return only the rewritten text", "Answer in two sentences", "Reply with valid JSON"
- ให้กฎเป็นประโยคสั้น ตรงประเด็น หลายบรรทัดที่ชัดเจนได้ผลดีกว่าย่อหน้ายาวหนึ่งย่อหน้า
- เขียนให้สั้น system prompt ถูกส่งไปกับทุกคำขอและนับเป็น input tokens ดังนั้นอันยาวจะเสียค่าใช้จ่ายทุกครั้ง วิธีคิดค่าบริการ input และ output อยู่ใน input vs output tokens
Temperature ทำอะไร?#
โมเดลเลือกโทเคนถัดไปแต่ละตัวจากชุดตัวเลือกที่น่าจะเป็น Temperature ควบคุมว่าโมเดลจะยึดตัวที่น่าจะเป็นที่สุดอย่างเคร่งครัดเพียงใด ตามเอกสารอ้างอิง DeepSeek API (ตรวจสอบเมื่อ 22 ตุลาคม 2026) temperature รับค่าตั้งแต่ 0 ถึง 2 โดยค่าเริ่มต้นคือ 1: ค่าสูงให้เอาต์พุตสุ่มมากขึ้น ค่าต่ำให้เอาต์พุตที่โฟกัสและกำหนดได้แน่นอนขึ้น ช่วงค่าแตกต่างกันระหว่างโมเดล: DeepSeek ระบุ 0 ถึง 2, Z.ai ระบุ 0 ถึง 1 สำหรับ GLM-5.3 (ทั้งคู่ตรวจสอบเมื่อ 22 ตุลาคม 2026) ดังนั้นค่าตั้งแต่ 0 ถึง 1 ปลอดภัยกับทั้งสอง ตรวจสอบช่วงของโมเดลคุณในเอกสาร
จุดเริ่มต้นที่ใช้ได้กับงานส่วนใหญ่ เป็นหลักการทั่วไป ไม่ใช่การรับประกัน:
เลื่อนตารางไปทางขวา →
| งาน | เริ่มด้วย |
|---|---|
| การสกัดข้อมูล การจำแนกประเภท โค้ด รูปแบบเข้มงวด | 0 ถึง 0.3 |
| ถาม-ตอบ สรุป เขียนใหม่ | 0.3 ถึง 0.7 |
| ระดมสมอง ตั้งชื่อ ข้อความสร้างสรรค์ | 0.8 ถึง 1 |
สามสิ่งที่ควรรู้:
- Temperature ต่ำทำซ้ำได้มากกว่า ไม่ใช่เหมือนกันทุกไบต์ อย่าพึ่งพาคำตอบที่เท่ากันทุกไบต์
- เปลี่ยน temperature หรือ top_p อย่างใดอย่างหนึ่ง ไม่ใช่ทั้งคู่ นี่คือคำแนะนำของ DeepSeek;
top_pเป็นพารามิเตอร์การสุ่มตัวที่สองที่มีค่าเริ่มต้น 1 ปล่อยไว้ก่อนในระหว่างเรียนรู้ - บางโหมดไม่สนใจ temperature เอกสารอ้างอิง DeepSeek ระบุว่า temperature ไม่มีผลในโหมด thinking และ
top_pถูกกำหนดตายตัวที่ 1.0 ในโหมด non-thinking หากคุณเปลี่ยนค่าแล้วไม่เห็นความแตกต่าง ให้ตรวจสอบโหมดของโมเดลก่อน
ส่งคำขอด้วยทั้งสองอย่าง#
ตั้งคีย์เป็นตัวแปรสภาพแวดล้อม เพื่อไม่ให้หลุดเข้าไปในโค้ด (ดู API key คืออะไรและวิธีเก็บอย่างปลอดภัย) ใช้ model id ที่ถูกต้องจาก เอกสาร CheapTokens: ผู้ให้บริการต่างกันตั้งชื่อโมเดลเดียวกันต่างกัน ตัวอย่างนี้ใช้ MiniMax-M2.7
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[
{"role": "system", "content": "You are an editor. Rewrite the user's text to be shorter and friendlier. Return only the rewritten text."},
{"role": "user", "content": "Send me the report by tonight or I will be upset."},
],
temperature=0.3,
max_tokens=1000,
)
print(response.choices[0].message.content)
print(response.choices[0].finish_reason)คำขอเดียวกันด้วย curl:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "system", "content": "You are an editor. Rewrite the user'\''s text to be shorter and friendlier. Return only the rewritten text."},
{"role": "user", "content": "Send me the report by tonight or I will be upset."}
],
"temperature": 0.3,
"max_tokens": 1000
}'สิ่งที่คุณควรเห็น: ประโยคเวอร์ชันสั้นและเป็นมิตรกว่า และ stop เป็น finish_reason หาก finish_reason เป็น length แสดงว่าคำตอบชนขีดจำกัด max_tokens; ดู ทำไมคำตอบ AI หยุดกลางประโยค
ดู temperature ทำงาน#
วิธีที่ดีที่สุดในการเข้าใจ temperature คือถามคำถามเดิมหลายครั้ง ลูปนี้ส่งคำขอสั้นหนึ่งครั้งสามครั้งที่ค่า 0 และสามครั้งที่ค่า 1 โดยใช้ client จากตัวอย่างด้านบน:
for temp in (0, 1):
print("temperature", temp)
for _ in range(3):
r = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[
{"role": "system", "content": "Answer with one word."},
{"role": "user", "content": "Name a fruit."},
],
temperature=temp,
max_tokens=500,
)
print(" ", r.choices[0].message.content)ที่ค่า 0 สามบรรทัดมักเป็นคำเดียวกัน; ที่ค่า 1 คุณมักเห็นคำต่างกันมากขึ้น โมเดลที่ใช้เหตุผลก่อนตอบอาจใช้ส่วนหนึ่งของ max_tokens ไปกับเหตุผลนั้น ดังนั้นตั้งขีดจำกัดให้เผื่อไว้แม้เป็นคำตอบคำเดียว จากนั้นเปลี่ยนเฉพาะ system prompt (เช่น "Answer with one word, in French") แล้วรันอีกครั้ง: กฎในข้อความ system มีผลในทุก temperature
การทดลองแบบนี้มีขนาดเล็ก เพื่อให้เห็นภาพคร่าวๆ นี่คือค่าใช้จ่ายของ 100 คำขอ ที่มี input ประมาณ 120 และ output 80 โทเคนต่อคำขอ (เป็นตัวอย่างภาระงาน จำนวนโทเคนขึ้นอยู่กับ prompt ของคุณ):
| โมเดล | Input $/1M | Output $/1M | ต่อคำขอ | 100 คำขอ | OpenRouter, 100 คำขอ |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0000056 | $0.00056 | $0.0011 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0000098 | $0.00098 | $0.0018 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000018 | $0.0018 | $0.0132 |
120 โทเค็นอินพุตและ 80 โทเค็นเอาต์พุตต่อคำขอ ราคาต่อ 1M โทเค็นเป็นราคาปัจจุบันและเปลี่ยนแปลงไปพร้อมกับอัตราค่าบริการของเรา คอลัมน์ OpenRouter แสดงราคาอ้างอิงสำหรับปริมาณงานเดียวกัน
ลองกับโมเดลไหน#
- MiniMax-M2.7 เป็นตัวเลือกแรกที่ดีสำหรับคำขอทดสอบสั้นๆ หลายครั้ง และคุณสามารถใช้ system prompt เดิมซ้ำเพื่อเปรียบเทียบคำตอบ: context 180K, output สูงสุด 8,192 โทเคน, ถูกกว่าราคาอ้างอิงของ OpenRouter ทั้งฝั่ง input และ output ราคาปัจจุบัน: input $0.05, output $0.15 ต่อ 1M โทเคน
ยอดเงินเดียวครอบคลุมทั้งหมด ดังนั้นการสลับโมเดลคือการเปลี่ยน model บรรทัดเดียว ราคาปัจจุบันทั้งหมดอยู่ที่ หน้าราคา
หากใช้งานไม่ได้#
- 401 หรือข้อผิดพลาดการยืนยันตัวตน: คีย์หาย พิมพ์ผิด หรือตัวแปรสภาพแวดล้อมไม่ได้ตั้งในเทอร์มินัลนี้ ตรวจสอบ
echo $CHEAPTOKENS_API_ KEY - ไม่พบโมเดล: คัดลอก model id จาก เอกสาร ให้ตรงทุกตัวอักษร รวมถึงคำนำหน้า
- ข้อผิดพลาดเกี่ยวกับพารามิเตอร์ไม่ถูกต้อง: ให้
temperatureอยู่ในช่วงที่โมเดลของคุณรองรับ (0 ถึง 1 ปลอดภัย) และส่งเป็นตัวเลข ไม่ใช่สตริง - โมเดลไม่สนใจกฎของคุณ: ทำให้เป็นประโยคสั้น ตรงประเด็นหนึ่งประโยค ย้ายไปไว้บนสุดของข้อความ system และระบุรูปแบบที่ต้องการให้ตรงเป๊ะ
- เปลี่ยน temperature แล้วไม่มีอะไรเปลี่ยน: คุณอาจใช้โหมดที่ไม่สนใจค่านี้ (ดูด้านบน) หรือคำตอบถูกจำกัดมาก ("one word", "valid JSON") จนมีความแปรผันน้อย
- คำตอบถูกตัด: เพิ่ม
max_tokens; คู่มือ max_tokens อธิบายวิธี
ขั้นตอนถัดไป#
ใส่กฎชัดเจนหนึ่งข้อในข้อความ system เลือก temperature จากตาราง แล้วรันลูปด้านบนกับงานของคุณเอง เมื่อผลลัพธ์เป็นอย่างที่ต้องการ ให้เก็บ system prompt ให้สั้นและใช้ซ้ำ รับคีย์และตรวจสอบราคาปัจจุบันได้ที่ เอกสาร



