ค่าสามค่าที่คุณต้องการ
คำถามเกี่ยวกับ Base URL ของ glm api มักมาจากผู้ใช้ที่มีไคลเอนต์ที่ต้องการ URL คีย์ และชื่อโมเดล แต่ไม่รู้ว่าค่าใดควรอยู่ที่ไหน นี่คือคำตอบทั้งหมดในที่เดียว
| การตั้งค่า | ค่า |
|---|---|
| URL พื้นฐาน | https://api.glmapi.cc/v1 |
| ID โมเดล | uncensored |
| Auth header | Authorization: Bearer YOUR_KEY |
| เอนด์พอยต์แชท | POST /v1/chat/completions |
| รายการโมเดล | GET /v1/models |
ข้อชี้แจงหนึ่งข้อก่อนที่คุณจะคัดลอกสิ่งใดก็ตาม ชื่อบนโดเมนหมายถึงคำค้นหา ไม่ใช่ชื่อโมเดล นี่คือ API ข้อความที่เข้ากันได้กับ OpenAI แบบโฮสต์สำหรับโมเดล open-weight model เดียวที่ดำเนินการโดยผู้ให้บริการอิสระ ซึ่งปรับแต่งมาเพื่อตอบคำถามโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย ไม่ใช่ API อย่างเป็นทางการของผู้ขายที่อยู่เบื้องหลัง GLM และไม่ใช่ router ที่ส่งต่อไปยังผู้ให้บริการรายอื่น หากคุณต้องการโมเดล GLM อย่างเป็นทางการ ให้ใช้บริการของผู้ให้บริการรายนั้นโดยตรง
คุณได้รับคีย์โดยการสมัครด้วย Google หรือด้วยอีเมลและรหัสผ่าน หน้า API key ยังมีเครดิตทดลองใช้ $0.50 แบบคลิกเดียว ใช้ได้ 7 วันโดยไม่ต้องใช้บัตร
ตรวจสอบการเชื่อมต่อด้วย curl
ก่อนแตะ SDK หรือแอปใดๆ ให้ยืนยันคีย์และ URL ด้วยคำขอพื้นฐาน หากสิ่งนี้ทำงาน ปัญหาทั้งหมดในภายหลังจะอยู่ในค่ากำหนดไคลเอนต์ของคุณ ไม่ใช่ในบัญชี ก่อนอื่น ให้แสดงรายการโมเดล:
curl https://api.glmapi.cc/v1/models \
-H "Authorization: Bearer YOUR_KEY"คุณควรได้รับรายการ JSON ที่มี id uncensored จากนั้นส่งการเสร็จสิ้นการแชทหนึ่งรายการ:
curl https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Reply with the word ready."}],
"max_tokens": 20
}'เพิ่ม -i เพื่อดูส่วนหัวของการตอบกลับ ส่วนหัวเหล่านี้รวมถึง X-Request-Id, X-Balance-USD (เครดิตคงเหลือของคุณ), X-RateLimit-Limit-Requests และ X-RateLimit-Limit-Concurrency เก็บรหัสคำขอไว้หากคุณต้องการขอการสนับสนุนเกี่ยวกับคำเรียกใช้ใด ๆ
Python และ Node
SDK ทางการของ OpenAI รองรับ Base URL แบบกำหนดเอง คุณเปลี่ยนอาร์กิวเมนต์คอนสตรัคเตอร์สองตัวและชื่อโมเดล ส่วนที่เหลือของโค้ดของคุณจะเหมือนเดิม
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.glmapi.cc/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a tavern."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.glmapi.cc/v1",
apiKey: process.env.GLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three names for a tavern." }],
});
console.log(resp.choices[0].message.content);คุณสมบัติของ Node คือ baseURL (ตัวพิมพ์ใหญ่) ในขณะที่อาร์กิวเมนต์ของ Python คือ base_url การสลับกันเป็นวิธีคลาสสิกที่ทำให้ล้มเหลวแบบเงียบ ๆ กลับไปใช้โฮสต์เริ่มต้นของ SDK และได้รับข้อผิดพลาดการตรวจสอบสิทธิ์จากเซิร์ฟเวอร์ที่ผิด
ตัวแปรสภาพแวดล้อมแทนโค้ด
SDK ของ OpenAI อ่านค่า OPENAI_BASE_URL และ OPENAI_API_KEY จากสภาพแวดล้อมเมื่อคุณไม่ได้ส่งค่าเหล่านั้นอย่างชัดเจน นี่คือวิธีที่รบกวนน้อยที่สุดในการเปลี่ยนเป้าหมายเครื่องมือที่คุณไม่สามารถแก้ไขได้ เช่น สคริปต์จากที่เก็บหรือเฟรมเวิร์กที่สร้างไคลเอนต์ให้คุณ
export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.pyคุณยังคงต้องตั้งชื่อโมเดลภายในเครื่องมือหรือไฟล์ค่ากำหนดเป็น uncensored เนื่องจากไม่มีตัวแปรสภาพแวดล้อมใดที่เก็บค่านี้ หากเครื่องมือมีเมนูแบบเลื่อนลงของโมเดลที่แสดงเฉพาะชื่อที่รู้จัก ให้มองหาตัวเลือกโมเดลกำหนดเองหรือข้อความแบบฟรีเท็กซ์
เก็บค่าไว้ในที่เดียว
เมื่อการเชื่อมต่อทำงานได้แล้ว ให้หลีกเลี่ยงการวาง URL ลงในห้าไฟล์ วางค่าทั้งสามไว้ในที่เดียวและอ่านค่าเหล่านั้นในทุกที่ ไฟล์ .env ทำงานได้ดีสำหรับโครงการขนาดเล็ก:
GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensoredจากนั้นโหลดค่าเหล่านั้นครั้งเดียวเมื่อเริ่มต้นโปรแกรมและสร้างไคลเอนต์เดียวที่โปรแกรมส่วนอื่นนำเข้า ประโยชน์จะปรากฏขึ้นในวันที่คุณเปลี่ยนคีย์ เพิ่มคีย์ทดสอบที่มีเครดิตทดลองใช้ หรือเปรียบเทียบเอนด์พอยต์นี้กับเอนด์พอยต์อื่น คุณแก้ไขไฟล์ ไม่ใช่ฐานโค้ดของคุณ
เก็บคีย์แยกกันสำหรับการพัฒนาและโปรดักชันเมื่อบัญชีอนุญาต และหมุนเวียนคีย์ทันทีหากปรากฏในการคอมมิต ภาพหน้าจอ หรือบันทึกที่แชร์ คีย์ที่รั่วไหลจะใช้เครดิตแบบเติมเงินล่วงหน้าของคุณ และเครดิตจะไม่กลับมา
แอปแชทและเฟรมเวิร์ก
ส่วนต่อประสานผู้ใช้แตกต่างกันในคำพูดแต่ขอค่าสามค่าเดียวกัน มองหาประเภทการเชื่อมต่อที่เรียกว่า OpenAI-compatible, custom OpenAI หรือคล้ายกัน จากนั้นกรอก:
- API URL / Base URL:
https://api.glmapi.cc/v1 - คีย์ API: คีย์จากบัญชีของคุณ
- โมเดล:
uncensored
SillyTavern ช่วยให้คุณเพิ่มเอนด์พอยต์ที่เข้ากันได้กับ OpenAI ผ่านแหล่งที่มาการเสร็จสิ้นการแชทแบบกำหนดเอง และ Open WebUI มีประเภทการเชื่อมต่อที่เข้ากันได้กับ OpenAI ในการตั้งค่า เฟรมเวิร์กเช่น LangChain รับค่า base_url บนคลาสแชทโมเดล และ LiteLLM สามารถเปลี่ยนเส้นทางโมเดลสไตล์ OpenAI ผ่าน Base URL API แบบกำหนดเองได้ ชื่อเมนูเปลี่ยนแปลงระหว่างเวอร์ชัน ดังนั้นให้ปฏิบัติตามเอกสารปัจจุบันของแต่ละโครงการเพื่อดูว่าฟิลด์นี้อยู่ที่ไหนอย่างแม่นยำ
แอปบางแอปถามว่าคุณต้องการเพิ่ม /chat/completions ให้เองหรือไม่ หลายแอปทำสิ่งนี้ ซึ่งหมายความว่า URL ที่คุณป้อนต้องหยุดที่ /v1 หากแอปขอเอนด์พอยต์แบบเต็ม ให้ป้อน https://api.glmapi.cc/v1/chat/completions คู่มือเริ่มต้นใช้งาน แสดงรายละเอียดฟิลด์คำขอที่รองรับเพิ่มเติม
ทำไมคำเรียกใช้ครั้งแรกจึงล้มเหลว
หากการทดสอบ curl ผ่านแล้วแต่แอปของคุณยังเกิดข้อผิดพลาด สาเหตุมักจะเป็นหนึ่งในข้อต่อไปนี้:
- ขาด
/v1. การใช้https://api.glmapi.ccเพียงอย่างเดียวมักจะทำให้เกิดข้อผิดพลาด not-found เนื่องจากเส้นทางอยู่ภายใต้/v1 - เส้นทางซ้ำ แอปจะเพิ่ม
/chat/completionsและคุณก็พิมพ์มันเข้าไป ทำให้ได้/chat/completions/chat/completionsให้ลบออกจาก URL ฐาน - เครื่องหมายทับท้าย ไคลเอนต์บางตัวรวมเส้นทางได้ไม่ดี ให้ลบ
/ท้ายสุดออกหากเห็นเครื่องหมายทับสองตัวใน URL ที่บันทึก - ชื่อโมเดลผิด รหัสโมเดลมีเพียง
uncensoredเท่านั้น ชื่อจากบริการอื่นจะไม่ตรงกัน - ปัญหาเกี่ยวกับคีย์ ตรวจสอบช่องว่างหรือบรรทัดใหม่จากการวางแปะ และตรวจสอบว่าคีย์ถูกส่งเป็น
Bearerซ้ำโดยแอปที่เพิ่มคำนำหน้าอยู่แล้ว - เรียกโฮสต์ผิด ในแอปเบราว์เซอร์ หากไม่ได้ตั้งค่า base URL ระบบจะกลับไปใช้ค่าเริ่มต้นของ SDK ให้บันทึก URL ของคำขอจริง
การเรียกจากฝั่งเบราว์เซอร์ยังเปิดเผยคีย์ของคุณให้กับทุกคนที่เปิดเครื่องมือพัฒนา (dev tools) สำหรับเว็บไซต์สาธารณะ ให้ส่งคำขอจากเซิร์ฟเวอร์ของคุณเองและเก็บคีย์ไว้ที่นั่น
เมื่อไม่มีข้อใดอธิบายได้ ให้ทำงานย้อนกลับจากกรณีเล็กๆที่สุด ให้รันคำสั่ง curl จากก่อนหน้านี้บนเครื่องเดียวกับแอปที่ล้มเหลว หาก curl สำเร็จที่นั่น แสดงว่าเครือข่ายและคีย์ถูกต้อง และแอปกำลังสร้างคำขอแตกต่างออกไป ให้เปิดการบันทึกข้อมูลการแก้ไขข้อบกพร่อง (debug logging) ของแอป แล้วเปรียบเทียบ URL ส่วนหัว และบอดี้ JSON ที่บันทึกกับเวอร์ชัน curl ตัวอักษรต่อตัวอักษร หาก curl ล้มเหลวเฉพาะบนเครื่องนั้น ให้ตรวจสอบพร็อกซีองค์กร กฎ VPN และตัวกรอง DNS ซึ่งบางครั้งบล็อกชื่อโฮสต์ API ที่ไม่คุ้นเคย คำขอที่ไม่ถึงเซิร์ฟเวอร์จะไม่ส่ง X-Request-Id ซึ่งเป็นการแยกแยะสองกรณีนี้ได้อย่างรวดเร็ว
ขีดจำกัดและการตอบกลับ 429
คีย์เต็มจำนวนอนุญาตให้ทำคำขอพร้อมกัน 8 คำขอ และ 300 คำขอต่อนาที คีย์ทดลองอนุญาตให้ทำ 2 และ 60 หากเกินขีดจำกัดใด API จะส่ง HTTP 429 พร้อมรหัส rate_limited (เกินต่อนาที) หรือ concurrency (เกินพร้อมกัน) ขณะระบบโอเวอร์โหลดชั่วคราวคุณยังได้รับ 429 พร้อม header Retry-After: 5
คำขอแบบสตรีมจะยึดสล็อตการทำงานพร้อมกันไปจนกว่าสตรีมจะจบ ดังนั้นแอปที่เปิดสตรีมแล้วทิ้งไว้โดยไม่ปิดการเชื่อมต่ออาจทำให้ตัวเองใช้สล็อตจนหมดได้ บอดี้คำขอสูงสุดคือ 8 MB และหน้าต่างบริบทคือ 100,000 โทเคน ครอบคลุมทั้งพรอมต์และการตอบกลับ ดูอัตราและการเติมเงินที่ หน้าราคา
สตรีมมิง เครื่องมือ และ JSON ใช้ URL เดียวกัน
ไม่มีที่อยู่แยกต่างหากสำหรับสตรีมมิงหรือการเรียกใช้ฟังก์ชัน ทุกอย่างไปที่ /v1/chat/completions และคุณเปิดใช้งานฟีเจอร์ในบอดี้คำขอ คำขอสตรีมมิงตั้งค่า "stream": true และส่งเหตุการณ์ที่ส่งโดยเซิร์ฟเวอร์; คำขอที่มีเครื่องมือเพิ่ม tools และตัวเลือก tool_choice; โหมด JSON เพิ่ม response_format พร้อมประเภท json_object; ฟิลด์การสุ่มตัวอย่างเช่น temperature, top_p, stop, seed และค่าปรับจะถูกส่งผ่าน
นี่คือการเรียก curl แบบสตรีมมิง ตัวเลือก -N จะปิดการบัฟเฟอร์เอาต์พุตของ curl เพื่อให้คุณเห็นข้อมูลเป็นก้อนเมื่อมาถึง:
curl -N https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","stream":true,"messages":[{"role":"user","content":"Count to five."}]}'หากพร็อกซีหรือเลเยอร์โฮสติ้งของคุณบัฟเฟอร์การตอบกลับ การสตรีมมิงจะดูเหมือนการตอบกลับขนาดใหญ่ที่ล่าช้า พร็อกซีย้อนกลับมักต้องปิดการบัฟเฟอร์การตอบกลับสำหรับเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ ดังนั้นให้ตรวจสอบการตั้งค่านี้ก่อนโทษ API สำหรับตัวอย่างโค้ด Python ของแต่ละฟีเจอร์ ดูที่ เริ่มต้นใช้งาน
คู่มือเพิ่มเติม
ถาม-ตอบ
URL ฐานสำหรับ API นี้คืออะไร
https://api.glmapi.cc/v1. คำขอแชทไปที่ /chat/completions ภายใต้ URL นี้ และรายการโมเดลอยู่ที่ /models
ฉันควรใช้ชื่อโมเดลใด?
ใช้ uncensored นี่คือรหัสโมเดลเพียงอย่างเดียว และใช้งานได้กับไคลเอนต์สไตล์ OpenAI ใดๆ ที่ให้คุณพิมพ์รหัสโมเดลแบบกำหนดเอง
นี่คือ GLM API อย่างเป็นทางการหรือไม่?
ไม่ใช่ นี่คือบริการอิสระที่เข้ากันได้กับ OpenAI ซึ่งรันโมเดลแบบเปิดน้ำหนักเพียงตัวเดียว และไม่ใช่ API ทางการของผู้ขายรายใด
ส่วนหัวใดที่ส่งคีย์?
Authorization: Bearer ตามด้วยคีย์ของคุณ ไคลเอนต์ SDK ของ OpenAI จะเพิ่มสิ่งนี้ให้คุณเมื่อคุณส่งคีย์
ฉันต้องใช้บัตรเพื่อทดสอบการเชื่อมต่อหรือไม่?
ไม่ต้อง มีเครดิตทดลองใช้ $0.50 แบบคลิกเดียว ใช้ได้ 7 วัน ที่หน้าคีย์ API หลังจากสมัครสมาชิก
คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว
สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด
