LLM API คืออะไร? วิธีทำงานและเมื่อไหร่ควรใช้
API LLM คือบริการเว็บที่รันโมเดลภาษาขนาดใหญ่ให้คุณ โค้ดของคุณส่งข้อความผ่าน HTTP โมเดลส่งข้อความกลับ และคุณจ่ายสำหรับสิ่งที่ใช้
อัปเดต

ประเด็นสำคัญ
- API LLM คือเอนด์พอยต์ HTTP: คุณส่งข้อความผ่าน POST และรับผลลัพธ์
- การเรียกเก็บเงินคิดตามโทเคน โดยนับแยกสำหรับข้อมูลนำเข้าและข้อมูลส่งออก
- API ที่เข้ากันได้กับ OpenAI ใช้รูปแบบคำขอหนึ่งรูปแบบ ดังนั้นการเปลี่ยนผู้ให้บริการจึงเป็นการเปลี่ยน base URLเป็นหลัก
- สตรีมมิง การเรียกใช้ฟังก์ชัน และโหมด JSON เปลี่ยนเอนด์พอยต์แชทธรรมดาให้กลายเป็นบล็อกสร้างสำหรับซอฟต์แวร์จริง
สรุปสั้นๆ
ดังนั้น API LLM คืออะไร? คือบริการที่เปิดเผยโมเดลภาษาผ่านที่อยู่เว็บ คุณไม่ต้องดาวน์โหลดโมเดล ไม่ต้องเป็นเจ้าของ GPU และไม่ต้องจัดการซอฟต์แวร์การอนุมาน คุณส่งคำขอที่ประกอบด้วยบทสนทนา และบริการจะส่งข้อความถัดไปในบทสนทนานั้นกลับคืน
คิดเหมือนที่คุณคิดเกี่ยวกับ API การชำระเงินหรือ API แผนที่ มีผู้อื่นดูแลโครงสร้างพื้นฐานที่ซับซ้อน และคุณเรียกใช้จากโปรแกรมของคุณเองด้วยคีย์ที่ระบุตัวตนของคุณ โมเดลคือผลิตภัณฑ์ และ API คือประตูสู่ผลิตภัณฑ์นั้น
ประตูนี้คือ HTTP ธรรมดาพร้อมบอดี้ JSON ซึ่งหมายความว่ามันทำงานได้จาก Python, Node, Go, shell script, มาโครสเปรดชีต หรือส่วนขยาย VS Code ไม่มีอะไรเกี่ยวกับมันที่ผูกติดกับภาษาเดียวหรือเฟรมเวิร์กเดียว
ลักษณะของคำขอและการตอบกลับ
LLM API ส่วนใหญ่ในปัจจุบันลอกเลียนแบบรูปแบบที่ OpenAI นำเสนอสำหรับแชท คุณเรียกใช้เอนด์พอยต์เดียว POST /v1/chat/completions และส่งรายการข้อความ แต่ละข้อความมี role และ content บางอย่าง
systemกำหนดกฎและบุคลิกสำหรับทั้งบทสนทนาuserคือสิ่งที่บุคคล (หรือโปรแกรมของคุณ) พูดassistantคือสิ่งที่โมเดลพูดก่อนหน้านี้ ซึ่งคุณส่งกลับเพื่อให้โมเดลจำสายการสนทนาได้toolเก็บผลลัพธ์ของฟังก์ชันที่โมเดลขอให้คุณเรียกใช้
รายละเอียดสำคัญคือโมเดลไม่มีหน่วยความจำระหว่างการเรียกใช้ คำขอแต่ละครั้งต้องประกอบด้วยบทสนทนาทั้งหมดที่คุณต้องการให้มันพิจารณา หากคุณต้องการแชทบอทที่จำการสนทนาสิบรอบล่าสุด โค้ดของคุณต้องเก็บการสนทนาสิบรอบนั้นและส่งไปทุกครั้ง
นี่คือการเรียกใช้ที่เล็กที่สุดแต่ใช้งานได้ด้วย curl มันใช้เอนด์พอยต์ของเว็บไซต์นี้, ID โมเดล uncensored และ bearer token
curl https://api.codingllmapi.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain what a mutex is in two sentences."}
]
}'
การตอบกลับคือ JSON ข้อความที่คุณต้องการอยู่ที่ choices[0].message.content ข้างๆ นั้นคุณจะได้รับอ็อบเจกต์ usage ที่รายงานจำนวนโทเคนที่ส่งเข้าและจำนวนโทเคนที่ส่งออก ซึ่งคือสิ่งที่ใบแจ้งหนี้คำนวณจาก
โทเคน: หน่วยที่ใช้วัดทุกอย่าง
โมเดลไม่อ่านอักขระหรือคำ มันอ่านโทเคน ซึ่งเป็นกลุ่มข้อความที่มักจะเป็นคำสั้นๆ หรือส่วนหนึ่งของคำที่ยาวกว่า งานเขียนภาษาอังกฤษโดยเฉลี่ยมีโทเคนน้อยกว่าหนึ่งโทเคนต่อคำ และโค้ดมีแนวโน้มที่จะใช้โทเคนมากกว่าต่อบรรทัดเนื่องจากเครื่องหมายวรรคตอนและการเยื้องบรรทัด ให้ถือว่าการแปลงที่แม่นยำเป็นเพียงการประมาณการ และอ่านฟิลด์ usage เพื่อจำนวนจริง
โทเคนมีความสำคัญด้วยสามเหตุผล
- ราคา คุณจ่ายต่อล้านโทเคน โดยมีอัตราราคาสำหรับข้อมูลเข้า (พรอมต์ของคุณ) และอัตราที่สูงกว่าสำหรับข้อมูลออก (คำตอบของโมเดล)
- หน้าต่างบริบท พรอมต์และคำตอบแบ่งปันขีดจำกัดเดียวกัน ใน API นี้ หน้าต่างบริบทมีขนาด 100,000 โทเคนรวมกัน
- ความเร็ว ผลลัพธ์ถูกสร้างทีละโทเคน ดังนั้นคำตอบที่ยาวจึงใช้เวลานานกว่าคำตอบสั้น
ด้วยอัตราบนเว็บไซต์นี้ $0.15 ต่อ 1M โทเคนนำเข้า และ $0.50 ต่อ 1M โทเคนส่งออก คำขอที่มี 2,000 โทเคนนำเข้าและ 500 โทเคนส่งออกจะมีค่าใช้จ่าย 2,000 x $0.15 / 1,000,000 = $0.0003 สำหรับข้อมูลนำเข้า บวก 500 x $0.50 / 1,000,000 = $0.00025 สำหรับข้อมูลส่งออก รวมเป็น $0.00055 ดังนั้นคำขอลักษณะนี้หนึ่งพันคำขอจะมีค่าใช้จ่าย $0.55 อัตราปัจจุบันอยู่บน หน้าราคา เสมอ
การเรียก LLM API จากโค้ด
คุณสามารถเขียน HTTP call ด้วยตนเอง แต่ SDK ช่วยลดความพยายาม เนื่องจาก API นี้เข้ากันได้กับ OpenAI ไลบรารีทางการของ OpenAI จึงใช้งานได้หลังจากเปลี่ยนค่าสองค่า: base URL และคีย์
Python
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.codingllmapi.com/v1",
api_key=os.environ["LLM_API_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a careful code reviewer."},
{"role": "user", "content": "What is wrong with: for i in range(len(x)): print(x[i])"},
],
temperature=0.3,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
Node
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.codingllmapi.com/v1",
apiKey: process.env.LLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three names for a CLI that renames files." }],
});
console.log(resp.choices[0].message.content);
เก็บคีย์ไว้ใน environment variable หรือ secret store การวางคีย์ลงในโค้ด front-end หรือ repository สาธารณะอาจทำให้ใครก็ตามที่พบคีย์นั้นนำไปใช้ได้ และค่าใช้จ่ายจะตกเป็นของคุณ
ฟีเจอร์ที่เปลี่ยนกล่องแชทให้เป็น building block
completion แบบเปล่ามีประโยชน์ แต่โปรแกรมส่วนใหญ่ใช้ฟีเจอร์อย่างน้อยหนึ่งข้อต่อไปนี้
สตรีมมิง
ตั้งค่า stream: true และเซิร์ฟเวอร์จะส่งคำตอบเป็น server-sent events ทีละ token ผู้ใช้จะเห็นข้อความปรากฏทันทีแทนที่จะรอให้คำตอบเสร็จสิ้น ข้อมูลการใช้งานจะมาถึงเมื่อสิ้นสุด stream
โหมด JSON
ส่ง response_format: {"type": "json_object"} และโมเดลจะถูกชี้นำให้ส่งคืน JSON ที่ถูกต้อง นี่คือวิธีที่คุณดึงฟิลด์จากข้อความที่ยุ่งเหยิง จัดประเภทตั๋ว หรือสร้างข้อมูลที่มีโครงสร้างสำหรับขั้นตอนถัดไปใน pipeline ยังคงต้องตรวจสอบผลลัพธ์ในโค้ดของคุณและบอกโมเดลในพรอมต์ว่าคุณคาดหวังคีย์ใด
การเรียกใช้ฟังก์ชัน
คุณอธิบายฟังก์ชันในอาร์เรย์ tools โมเดลอาจตอบกลับด้วยการร้องขอให้เรียกใช้ฟังก์ชันหนึ่งพร้อมอาร์กิวเมนต์ที่กรอกแล้ว โค้ดของคุณจะรันฟังก์ชันและส่งผลลัพธ์กลับเป็นข้อความที่มี role: "tool" โมเดลจะไม่รันอะไรด้วยตัวเอง มันเพียงแต่ถาม และคุณเป็นผู้ตัดสินใจว่าอะไรจะทำงานจริง นี่คือกลไกเบื้องหลัง coding agents ที่อ่านไฟล์และรันเทสต์
การควบคุม Sampling
temperature, top_p, stop, seed และค่าปรับความซ้ำจะถูกส่งผ่านออกไป ค่า temperature ต่ำให้คำตอบที่เสถียรกว่าสำหรับโค้ดและการดึงข้อมูล ค่าที่สูงกว่าให้ข้อความที่หลากหลายมากขึ้น
API ที่โฮสต์ไว้หรือการรันโมเดลด้วยตนเอง
ทางเลือกของ API คือการรัน open-weight model บนฮาร์ดแวร์ของคุณเอง นั่นเป็นทางเลือกที่สมเหตุสมผล และคุ้มค่าที่จะซื่อสัตย์เกี่ยวกับเมื่อมันดีกว่า
| คำถาม | API แบบโฮสต์ | โฮสต์ด้วยตนเอง |
|---|---|---|
| ต้นทุนล่วงหน้า | ไม่มี คุณจ่ายตาม token | การซื้อหรือเช่า GPU |
| เวลาตั้งค่า | นาที | ชั่วโมงถึงวัน |
| การปรับขนาด | จำกัดโดย rate limits ของคีย์ของคุณ | จำกัดโดยฮาร์ดแวร์ของคุณ |
| ข้อมูลออกจากเครื่องของคุณ | ใช่ ไปยังผู้ให้บริการ | ไม่ |
| ต้นทุนเมื่อไม่ได้ใช้งาน | ศูนย์ | คุณจ่ายแม้ไม่มีอะไรทำงาน |
หากคุณส่งคำขอหลายพันคำขอต่อวัน หรือการใช้งานของคุณมีลักษณะเป็นช่วงๆ การคิดราคาต่อโทเคนมักจะเป็นทางเลือกที่ง่ายกว่า หากคุณมีโหลดหนักที่คงที่และมีกฎเข้มงวดที่ห้ามส่งข้อความไปยังบุคคลที่สาม การโฮสต์ในเครื่องอาจมีความเหมาะสมกว่า ทีมงานจำนวนมากเริ่มต้นใช้งาน API เพื่อตรวจสอบแนวคิดและกลับมาพิจารณาประเด็นนี้ในภายหลัง
ขีดจำกัด ข้อผิดพลาด และนิสัยที่ดี
API ทุกตัวมีขีดจำกัด และการรู้ขีดจำกัดเหล่านี้ตั้งแต่เนิ่นๆ จะช่วยประหยัดเวลาในการแก้ไขข้อบกพร่อง บนบริการนี้ คีย์แบบเต็มอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที คีย์ทดลองอนุญาตให้ทำ 2 และ 60 ตามลำดับ ขนาดสูงสุดของ body ของคำขอคือ 8 MB คำขอแบบสตรีมมิงจะคงช่องการทำงานพร้อมกันไว้จนกว่าการสตรีมจะเสร็จสิ้น ซึ่งมักทำให้ผู้ใช้ที่เปิดการสตรีมจำนวนมากแล้วลืมปิดมันตกอยู่ในสถานการณ์ลำบาก
การเกินขีดจำกัดจะส่ง HTTP 429 รหัสข้อผิดพลาด rate_limited หมายถึงมีคำขอต่อนาทีมากเกินไป และ concurrency หมายถึงมีคำขอพร้อมกันมากเกินไป คำตอบ 429 พร้อมหัวข้อความ Retry-After: 5 บ่งบอกถึงการโอเวอร์โหลดชั่วคราว ในทั้งสามกรณี การตอบสนองที่เหมาะสมคือการรอและลองใหม่ด้วย backoff ไม่ใช่การยิงคำขอรัวๆ ใส่เอนด์พอยต์
- อ่านค่า
X-RateLimit-Limit-RequestsและX-RateLimit-Limit-Concurrencyจากหัวข้อความของ response เพื่อดูขีดจำกัดของคุณ และX-Balance-USDเพื่อติดตามเครดิตของคุณ - บันทึก
X-Request-Idกับทุกการเรียกใช้ มันทำให้การตอบคำถามสนับสนุนเร็วขึ้นมาก - ตั้งค่า timeout และจำกัดความยาวของการสนทนาที่เหมาะสม เพื่อให้ลูปที่ควบคุมไม่ได้ไม่สามารถใช้เครดิตของคุณจนหมด
- ตัดตอนการสนทนาเก่าออกก่อนที่หน้าต่างบริบทจะเต็ม
คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงินบน API นี้ และเครดิตไม่หมดอายุ ดังนั้นความผิดพลาดในการทดสอบจึงมีต้นทุนต่ำ
เริ่มต้นใช้งาน API นี้
บริการนี้คือ API ข้อความที่โฮสต์และเข้ากันได้กับ OpenAI สำหรับโมเดล open-weight หนึ่งตัว ดำเนินการโดยผู้ให้บริการอิสระและปรับแต่งเพื่อตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย มันมีเฉพาะข้อความ: ไม่มีภาพ เสียง embedding หรือ fine-tuning มันไม่ใช่ API ทางการของ vendor โมเดลใดๆ พรอมต์ไม่ถูกนำไปใช้ในการฝึก
ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ฟรี $0.50 ได้ด้วยการคลิกหนึ่งครั้งบนหน้าคีย์ API หลังจากเข้าสู่ระบบด้วย Google หรือด้วยอีเมลและรหัสผ่าน ไม่ต้องใช้บัตรและใช้งานได้ 7 วัน หลังจากนั้นคุณสามารถเติมเงินด้วยจำนวนเต็มใดๆ ตั้งแต่ $20 ถึง $500 พร้อมโบนัส 5% จาก $50, 10% จาก $100 และ 15% จาก $200 คุณสามารถจ่ายด้วยบัตร (Visa, Mastercard, Apple Pay, Google Pay) หรือด้วยคริปโต (USDT บน TRC20, USDC บน Base)
ขั้นตอนมีไม่มาก: สร้างคีย์ API ของคุณ, ทำตาม quickstart ในเอกสาร, และรันโค้ด Python ด้านบน หากการใช้งานหลักของคุณคือความช่วยเหลือด้านการเขียนโปรแกรม หน้าเกี่ยวกับ โมเดล uncensored สำหรับ coding agents ครอบคลุมกรณีนั้นโดยละเอียดมากขึ้น
คู่มือเพิ่มเติม
ถาม-ตอบ
API LLM เหมือนกับแชทบอทหรือไม่?
ไม่ใช่ แชทบอทคือแอปพลิเคชันที่มีอินเทอร์เฟซ API LLM คือบริการที่อยู่เบื้องหลังแอปพลิเคชันดังกล่าว และคุณเรียกใช้มันจากโค้ดของคุณเองเพื่อสร้างอินเทอร์เฟซหรือ workflow ที่คุณต้องการ
ฉันจำเป็นต้องรู้แมชชีนเลิร์นนิงเพื่อใช้งานหรือไม่?
ไม่จำเป็น หากคุณสามารถส่ง HTTP request หรือใช้ SDK ได้ คุณก็สามารถใช้ API LLM ได้ คุณต้องเข้าใจพรอมต์และโทเคน แต่ไม่จำเป็นต้องเข้าใจวิธีการฝึกโมเดล
ความหมายของ OpenAI-compatible คืออะไร?
หมายความว่า API นี้ยอมรับรูปแบบคำขอเดียวกับเอนด์พอยต์แชทของ OpenAI SDK และเครื่องมือ OpenAI ที่มีอยู่ใช้งานได้หลังจากที่คุณเปลี่ยน base URLและคีย์
API LLM มีราคาเท่าไหร่?
ผู้ให้บริการมักคิดราคาต่อล้านโทเคน โดยแยกอัตราสำหรับอินพุตและเอาต์พุต ที่นี่คือ $0.15 ต่อ 1M โทเคนอินพุต และ $0.50 ต่อ 1M โทเคนเอาต์พุต จากเครดิตแบบเติมเงินล่วงหน้าโดยไม่ต้องสมัครสมาชิก
ข้อมูลของฉันถูกนำไปฝึกโมเดลหรือไม่
บนบริการนี้ พรอมต์ไม่ถูกนำไปใช้ในการฝึกโมเดล สำหรับผู้ให้บริการรายอื่น โปรดอ่านนโยบายข้อมูลของพวกเขาก่อนส่งข้อความที่ละเอียดอ่อน
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด
รับคีย์ API