กลับไปที่บล็อก

AI สำหรับผู้เริ่มต้นคู่มือ

API ที่เข้ากันได้กับ OpenAI: base_url คืออะไรและวิธีสลับ

API ที่เข้ากันได้กับ OpenAI รับคำขอเดียวกันกับของ OpenAI เปลี่ยน base_url คีย์ และ model id แล้วโค้ดของคุณจะส่งคำขอแรกไปยัง CheapTokens

โดย CheapTokens Teamเผยแพร่เมื่อ อัปเดตเมื่อ ใช้เวลาอ่าน 5 นาที

สามค่าที่ต้องเปลี่ยนเมื่อสลับไปยัง API ที่เข้ากันได้กับ OpenAI: base_url, คีย์ API และ model id
ในหน้านี้
  1. "เข้ากันได้กับ OpenAI" หมายความว่าอะไร?
  2. base_url คืออะไร?
  3. สามค่าที่คุณเปลี่ยน
  4. คำขอแรกใน Python
  5. คำขอเดียวกันด้วย curl
  6. สิ่งที่คุณควรเห็น
  7. ค่าใช้จ่ายเท่าไร?
  8. หากไม่ทำงาน
  9. ขั้นตอนถัดไป

API ที่เข้ากันได้กับ OpenAI คือ API ที่รับคำขอในรูปแบบเดียวกับ Chat Completions API ของ OpenAI และตอบกลับในรูปแบบเดียวกัน การย้ายแอปไปยังผู้ให้บริการรายอื่น โดยปกติคุณจะเปลี่ยนค่าสามค่า: base_url (ตำแหน่งที่คำขอไป) คีย์ API และ model id ส่วนที่เหลือของโค้ดคุณ รวมถึงรายการข้อความและวิธีที่คุณอ่านคำตอบ ยังคงเหมือนเดิม

คู่มือนี้อธิบายแนวคิดด้วยภาษาง่าย ๆ และจบด้วยคำขอแรกที่ใช้งานได้กับ CheapTokens ใน Python และ curl ข้อมูลเกี่ยวกับ CheapTokens ถูกตรวจสอบกับเอกสารของมันเมื่อวันที่ 22 ตุลาคม 2026

"เข้ากันได้กับ OpenAI" หมายความว่าอะไร?#

API คือชุดกฎสำหรับการสื่อสารกับบริการผ่านอินเทอร์เน็ต (ถ้าคำนี้ใหม่สำหรับคุณ เริ่มจาก คำขอ API แรกของคุณทำงานอย่างไร) รูปแบบแชทของ OpenAI กลายเป็นมาตรฐานทั่วไป: ผู้ให้บริการและเครื่องมือหลายรายรับ request body เดียวกันและส่งคืนรูปร่าง response เดียวกัน API เช่นนี้เรียกว่าเข้ากันได้กับ OpenAI

ในทางปฏิบัติ นั่นหมายความว่าสามสิ่งเหมือนกันบนผู้ให้บริการที่เข้ากันได้:

  • คำขอ: JSON body ที่มีฟิลด์ model และรายการ messages โดยแต่ละข้อความมี role (system, user หรือ assistant) และ content
  • เส้นทาง endpoint: /chat/completions ต่อท้าย base URL
  • การตอบกลับ: JSON object ที่ข้อความที่สร้างขึ้นอยู่ใน choices[0].message.content

เนื่องจากรูปแบบใช้ร่วมกัน SDK อย่างเป็นทางการและแอปหลายตัวจึงสามารถสื่อสารกับผู้ให้บริการที่เข้ากันได้รายใดก็ได้ พวกเขาเพียงต้องรู้ว่าจะส่งคำขอไปที่ไหน

base_url คืออะไร?#

base_url คือที่อยู่ที่ทุกคำขอเริ่มต้นด้วย SDK สร้างที่อยู่เต็มโดยเพิ่มเส้นทางของการเรียกเข้าไป

ส่วน ตัวอย่าง
base_url https://api.cheaptokens.dev/v1
เส้นทางที่ SDK เพิ่ม /chat/completions
ที่อยู่เต็มของคำขอ https://api.cheaptokens.dev/v1/chat/completions

ดังนั้นเมื่อคุณตั้งค่า base_url ที่แตกต่าง โค้ดเดียวกันจะส่งคำขอชนิดเดียวกันไปยังเซิร์ฟเวอร์อื่น base URL ของ CheapTokens คือ https://api.cheaptokens.dev/v1 API ของมันเข้ากันได้กับ OpenAI Chat Completions และ Anthropic Messages และยอดคงเหลือแบบเติมเงินหนึ่งยอดครอบคลุมทุกโมเดล

สามค่าที่คุณเปลี่ยน#

ค่า มันคืออะไร มาจากไหน
base_url ที่อยู่ของ API https://api.cheaptokens.dev/v1
คีย์ API รหัสผ่านลับของคุณสำหรับ API บัญชี CheapTokens ของคุณ ดู คีย์ API คืออะไรและวิธีจัดเก็บอย่างปลอดภัย
Model id ชื่อที่แน่นอนของโมเดลในฟิลด์ model เอกสาร CheapTokens

Model id ควรให้ความสนใจ ผู้ให้บริการที่แตกต่างให้ id ที่แตกต่างสำหรับโมเดลเดียวกัน ดังนั้น id จากบริการอื่นจะไม่ทำงานที่นี่ ใช้ id จากเอกสาร CheapTokens id ที่มีให้ใช้ตอนนี้:

โมเดล Model id Context เอาต์พุตสูงสุดต่อคำตอบ
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8,192 โทเค็น
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32,768 โทเค็น
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8,192 โทเค็น

DeepSeek-V4-Flash ส่งคืนได้ถึง 32,768 โทเค็นต่อคำตอบและมี context 380K; GLM-5.3-Flash มี context 390K; MiniMax-M2.7 มี context 180K ทั้งสามคิดค่าบริการจากยอดคงเหลือเดียวกัน ดังนั้นการสลับระหว่างพวกเขาหมายถึงการเปลี่ยนเฉพาะ model id

คำขอแรกใน Python#

ติดตั้งแพ็กเกจ openai จากนั้นจัดเก็บคีย์ของคุณในตัวแปรสภาพแวดล้อมแทนการเขียนลงในโค้ด:

bash
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"

ตอนนี้โค้ด ความแตกต่างเพียงอย่างเดียวจากตัวอย่าง OpenAI มาตรฐานคืออาร์กิวเมนต์ base_url คีย์ และ model id:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",   # 1. where requests go
    api_key=os.environ["CHEAPTOKENS_API_KEY"],   # 2. your CheapTokens key
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",                # 3. model id from the docs
    messages=[
        {"role": "system", "content": "You answer briefly."},
        {"role": "user", "content": "Explain base_url in one sentence."},
    ],
)

print(response.choices[0].message.content)

คีย์ในตัวอย่างเป็นตัวแทน: แทนที่ YOUR_CHEAPTOKENS_KEY ด้วยคีย์ของคุณเองและอย่า commit คีย์จริงลงใน repository

หากแอปที่คุณมีอยู่แล้วอ่านการตั้งค่าจากไฟล์ config หรือตัวแปรสภาพแวดล้อม คุณไม่จำเป็นต้องแก้ไขโค้ดเลย มองหาฟิลด์ที่เรียกว่า base URL, API base หรือ endpoint และกรอกค่าสามค่าเดียวกันที่นั่น

คำขอเดียวกันด้วย curl#

curl แสดงสิ่งที่ SDK ทำเบื้องหลัง: base URL บวกเส้นทาง คีย์ในเฮดเดอร์ Authorization และ JSON body

bash
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": "user", "content": "Explain base_url in one sentence."}
    ]
  }'

สิ่งที่คุณควรเห็น#

เมื่อทุกอย่างตั้งค่าถูกต้อง สคริปต์ Python จะพิมพ์คำตอบข้อความสั้น ๆ และ curl จะพิมพ์ JSON object มองหารายการ choices: ข้อความของคำตอบอยู่ใน choices[0].message.content หากคุณเห็นสิ่งนั้น คำขอแรกของคุณไปยัง CheapTokens ทำงานได้ และคุณสามารถไปยังแอปจริงของคุณได้

ค่าใช้จ่ายเท่าไร?#

การคิดค่าบริการเป็นรายโทเค็น นับแยกสำหรับอินพุตและเอาต์พุต (ดู โทเค็นอินพุต vs เอาต์พุต) ตัวอย่างเช่น MiniMax-M2.7 ปัจจุบันมีค่าใช้จ่าย $0.05 ต่อ 1M โทเค็นอินพุตและ $0.15 ต่อ 1M โทเค็นเอาต์พุต ตารางด้านล่างแสดงราคาปัจจุบันสำหรับทุกโมเดลเสมอ โดยไม่มีค่าธรรมเนียมเพิ่มช่วงพีค

โมเดล บริบท Input $/1M Output $/1M OpenRouter เข้า OpenRouter ออก
GLM-5.3-Flash reasoning 390K $0.02 $0.04 $0.0413 $0.0758
DeepSeek-V4-Flash 380K $0.015 $0.10 $0.0475 $0.1568
MiniMax-M2.7 180K $0.05 $0.15 $0.30 $1.20

ราคาเป็น USD ต่อ 1 ล้านโทเค็น ตัวเลขของ OpenRouter แสดงไว้เพื่อเปรียบเทียบและอาจมีการเปลี่ยนแปลง

ราคาสำหรับรายการโมเดลทั้งหมดยังอยู่ที่ หน้าราคา CheapTokens

หากไม่ทำงาน#

  • ข้อผิดพลาดการรับรองความถูกต้อง (โดยปกติ 401): คีย์หาย พิมพ์ผิด หรือมีช่องว่างเกิน ตรวจสอบว่าตัวแปรสภาพแวดล้อมถูกตั้งค่าในเทอร์มินัลเดียวกับที่คุณรันสคริปต์
  • "ไม่พบ" (โดยปกติ 404): ตรวจสอบ base_url มันต้องลงท้ายด้วย /v1 และคุณไม่ควรเพิ่ม /chat/completions เองเมื่อใช้ SDK หรือเส้นทางจะซ้ำ
  • โมเดลไม่รู้จัก: คัดลอก model id อย่างถูกต้องจากตารางด้านบนหรือจากเอกสาร รวมถึงตัวพิมพ์ใหญ่และส่วนก่อนเครื่องหมายทับ
  • ไม่มีการเชื่อมต่อหรือหมดเวลา: ดู ข้อผิดพลาดการเชื่อมต่อทั่วไปและวิธีแก้ไข
  • คำตอบถูกตัดกลางประโยค: ถึงขีดจำกัด max_tokens แล้ว ซึ่งครอบคลุมใน ทำไมคำตอบ AI หยุดกลางประโยค

ขั้นตอนถัดไป#

เมื่อคำขอแรกทำงานได้ คุณสามารถเพิ่ม สตรีมมิ่งใน Python ใส่ค่าสามค่าเดียวกันลงในเอดิเตอร์หรือเอเจนต์ของคุณ หรืออ่าน วิธีอ่านชื่อโมเดล AI รายละเอียดการตั้งค่าและรายการโมเดลทั้งหมดอยู่ใน เอกสาร CheapTokens