๘08Virtual keys และงบประมาณ
Virtual keys and budgets
TL;DR — สรุปใน 30 วินาทีtldr
Virtual key คือ กุญแจใบรองที่ออกให้แต่ละช่องทาง — แต่ละใบมี 3 คุณสมบัติ: อนุญาตเฉพาะโมเดลที่กำหนด, มีเพดานงบประมาณต่อวันของตัวเอง และเพิกถอน/หมุนเวียนได้โดยไม่แตะกุญแจหลัก — นี่คือเหตุผลที่ระบบ 5 ช่องทางอยู่ด้วยกันได้อย่างมีระเบียบ: ประตูเดียว หลายบาน ทุกบานมีมิเตอร์
เมื่อไหร่ควรใช้ / When to usewhen to use
ออกกุญแจทันทีที่ stack ขึ้นแล้ว (บทที่ ๖–๗) และออกใหม่ทุกครั้งที่เพิ่มช่องทาง — บทที่ ๑๓–๑๔ จะใช้กุญแจพวกนี้
| กุญแจ | ใครใช้ | โมเดลที่อนุญาต | เพดาน/วัน |
|---|---|---|---|
BOM_KEY_LINE | LINE bot | thai-chat-rt | $2 |
BOM_KEY_TELEGRAM | Telegram bot | thai-chat-rt | $2 |
BOM_KEY_MT5 | MT5 EA (อ่านอย่างเดียว) | โมเดลวิเคราะห์ตัวเดียว | $1 |
BOM_KEY_WRITER | pipeline บทความ n8n | bom-writer | $5 |
BOM_KEY_WEBUI | เว็บแชท | รายการที่คัดมา | $10 |
วิธีทำ / How-tohow to
ออกกุญแจด้วย API ของ LiteLLM โดยตรง (คำสั่งเดียวต่อใบ):
curl -X POST http://127.0.0.1:4000/key/generate \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"key_alias": "line-bot",
"max_budget": 2.0,
"budget_duration": "1d",
"models": ["thai-chat-rt"]}'
# การตอบกลับมี field "key" = กุญแจจริง -> นำไปแปะใน .env และ n8n credential store
# (ในรายงาน/log พูดแค่ "โหลดคีย์แล้ว ยาว N ตัว" เท่านั้น)หลักการ: กุญแจอยู่ใน .env (VPS) หรือ credential store ของ n8n เท่านั้น ห้ามฝังใน workflow JSON/โค้ด
ตรวจการใช้จ่ายสะสมทุกวัน (นี่คือแหล่งตัวเลข "ใบเสร็จ" ของทั้งเล่ม):
-- SQL บน Postgres ของ LiteLLM (รันผ่าน docker exec)
SELECT date_trunc('day', "startTime") AS day,
count(*) AS calls,
round(sum(spend)::numeric, 4) AS usd
FROM "LiteLLM_SpendLogs"
GROUP BY 1 ORDER BY 1 DESC LIMIT 30;ผลจริงสัปดาห์แรกของ ก.ย. 2026: 1,370 calls/$1.10, 1,470/$0.66, 3,448/$2.76 (พีคสุด), 494/$0.31
ถ้าติดตรงไหน → บทที่ ๑๖
ตัวอย่างการตั้งค่า / Config exampleconfig example
การใช้ง่ายกุญแจฝั่งผู้เรียก — ทุกช่องทางเรียกที่เดียวกัน ต่างกันแค่ใบกุญแจและชื่อโมเดล:
# ทุกช่องทางชี้ที่: https://llm.ชื่อโดเมนคุณ/v1 (OpenAI-compatible 100%)
curl https://llm.example.com/v1/chat/completions \
-H "Authorization: Bearer $BOM_KEY_LINE" \
-d '{"model": "thai-chat-rt",
"messages": [{"role":"user","content":"ทองเที่ยงนี้เป็นไงบ้าง"}]}'ถ้าใช้กุญแจผิดใบ/เกินงบ proxy ตอบ 401/403 ทันที — ไม่มีทางลอยไปกินเงินส่วนอื่น
Pro tip — เคล็ดลับจากสนามจริงpro tip
คำถามที่พบบ่อย / FAQfaq
ถาม: ถ้ากุญแจรั่วจริง ๆ ความเสียหายคือเท่าไหร่? — ถูกกั้นไว้ที่เพดานของใบนั้น ($1–10/วัน) บวกเวลาที่เราเห็นใน spend log — โมเดลที่ใบกุญแจอนุญาตก็ถูกจำกัดอยู่ด้วย ไม่สามารถเอาไปเรียกของแพงกว่าได้
ถาม: ดู dashboard ที่ไหน? — ที่ /ui ของ LiteLLM (หลังผ่าน Cloudflare Access) มีทั้งรายการกุญแจและกราฟ spend รายวัน
คำถามอื่น ๆ ดูที่ FAQ
ดูเพิ่ม / See alsosee also
- บทที่ ๑๓ · LINE/Telegram bot — ใช้กุญแจสองใบแรก
- บทที่ ๑๔ · MT5 + pipeline — ใช้สองใบหลัง
- บทที่ ๑๕ · ความปลอดภัย — สุขลักษณะกุญแจทั้งระบบ
ภาพประกอบ / Figuresfigures
