th ▾
รับ API key

Migration API: การแก้ปัญหาข้อผิดพลาดการผสานรวม LLM ที่พบบ่อย

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

อัปเดตล่าสุด

สรุป

  • การกำหนดค่า URL ฐานที่ไม่ถูกต้องเป็นสาเหตุทั่วไปที่สุดของความล้มเหลวในการเชื่อมต่อทันที
  • การละเลย context window ขนาด 100,000-token นำไปสู่การตัดขาดแบบเงียบๆ ในการสนทนาที่ยาวนาน
  • การสตรีมต้องการส่วนหัวและการจัดการเหตุการณ์เฉพาะที่การเรียกแบบซิงโครนัสมาตรฐานไม่ต้องการ
  • อัตราจำกัดการใช้งาน 300 คำขอต่อนาทีต้องการตรรกะการรีเทรย์ที่แข็งแกร่งเพื่อหลีกเลี่ยงข้อผิดพลาด 429

การกำหนดค่าผิดพลาดของ Base URL

จุดล้มเหลวแรกมักจะเป็น base URL เสมอ เมื่อคุณเปลี่ยนผู้ให้บริการ คุณต้องอัปเดต endpoint ที่ SDK ของคุณติดต่ออยู่ URL ที่ผิดจะส่งผลให้เกิดข้อผิดพลาด 404 หรือ 403 ก่อนที่ payload ของคุณจะถูกส่งออกจากเครื่องของคุณ

ตรวจสอบให้แน่ใจว่าไคลเอนต์ของคุณชี้ไปที่โดเมนที่ถูกต้อง สำหรับบริการของเรา URL ฐานคือ https://api.apimigration.com/v1. URL นี้ทำงานกับ SDK ของ OpenAI มาตรฐานโดยการเปลี่ยนเพียง base_url พารามิเตอร์

  • ตรวจสอบโปรโตคอล (HTTPS vs HTTP)
  • ตรวจสอบการมีอยู่ของ slash ท้ายในค่ากำหนดไคลเอนต์ของคุณ
  • ยืนยันว่าเส้นทางเวอร์ชัน (/v1) ตรงกับข้อกำหนด API ของคุณ
curl https://api.apimigration.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
  }'

กำลังละเว้นขีดจำกัดหน้าต่างบริบท

โมเดลของคุณมีขีดจำกัดแข็งที่ 100,000 tokens สำหรับ prompt และ completion รวมกัน หากเกินขีดจำกัดนี้ API จะปฏิเสธคำขอหรือตัดประวัติของคุณเงียบๆ ขึ้นอยู่กับการใช้งาน ควรติดตามการใช้ tokens ของคุณเสมอเพื่อหลีกเลี่ยงการชนกำแพงนี้

นอกจากนี้ เอาต์พุตสูงสุดต่อคำขอคือ 16,000 โทเค็น หากคุณไม่ได้ตั้งค่า max_tokens, ค่าเริ่มต้นคือ 2,048 tokens ความแตกต่างนี้มีนัยสำคัญสำหรับงานสร้างเนื้อหาแบบยาว

  • ติดตามจำนวนโทเค็นรวมต่อคำขอ
  • ตั้งค่า max_tokens อย่างชัดเจนสำหรับเอาต์พุตที่ยาว
  • เพิ่มลอจิกหน้าต่างเลื่อนสำหรับการสนทนาที่ยาวมาก
from openai import OpenAI

client = OpenAI(base_url="https://api.apimigration.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

การดำเนินการสตรีมที่ไม่ถูกต้อง

การตอบสนองแบบสตรีมต้องการการจัดการเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ (SSE) เฉพาะ หากคุณ treats สตรีมเป็นวัตถุ JSON เดียว โค้ดของคุณจะค้างหรือขัดข้อง แต่ละชิ้นส่วนประกอบด้วยข้อมูลบางส่วน และชิ้นส่วนสุดท้ายรวมถึงสถิติการใช้งานโทเค็น

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

  • เปิดการเชื่อมต่อและอ่านทีละบรรทัด
  • แยกวิเคราะห์ data: บรรทัดเป็น JSON
  • จัดการ [DONE] ส่งสัญญาณได้อย่างถูกต้อง
stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

การละเลยอัตราจำกัด

API ของเราอนุญาตให้ส่งคำขอได้ 300 คำขอต่อนาทีต่อคีย์ หากแอปพลิเคชันของคุณมีปริมาณการใช้งานพุ่งสูง คุณจะได้รับการตอบกลับข้อผิดพลาด 429 Too Many Requests คุณต้องนำไปใช้การปรับเวลาถอยหลังแบบเอกซ์โพเนนเชียล (exponential backoff) เพื่อจัดการกับข้อผิดพลาดเหล่านี้อย่างราบรื่น

คำขอพร้อมกันก็จำกัดอยู่ที่ 8 คำขอต่อคีย์ในเวลาเดียวกันเช่นกัน การเกินขีดจำกัดนี้สามารถทำให้พูลการเชื่อมต่อหมดได้ ตรวจสอบการเชื่อมต่อพร้อมกันของคุณอย่างใกล้ชิด

  • เพิ่มการหน่วงเวลาแบบเอ็กซ์โพเนนเชียลสำหรับข้อผิดพลาด 429
  • 将并发连接数限制为 8。
  • ใช้รูปแบบ circuit breaker สำหรับโหลดสูง
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apimigration.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

สมมติรูปแบบ JSON มาตรฐาน

แม้ว่าเราปฏิบัติตามรูปแบบที่เข้ากันได้กับ OpenAI แต่การคาดเดาอาจทำให้การผสานรวมของคุณเสียหาย ตรวจสอบว่าคุณร้องขอ json_object ใน response_format if you need strict JSON. Without this, the model may return markdown or plain text.

แยกวิเคราะห์การตอบกลับอย่างระมัดระวัง ตรวจสอบโครงสร้าง JSON ก่อนใช้งาน เพื่อป้องกันข้อผิดพลาดรันไทม์ในบริการ downstream

  • ตั้งค่า response_format เพื่อ {"type": "json_object"}.
  • ตรวจสอบ JSON ก่อนการแยกวิเคราะห์
  • จัดการคำตอบที่ผิดปกติอย่างสุภาพ
curl https://api.apimigration.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
  }'

การละเลยการจัดการข้อผิดพลาด

APIs ล้มเหลวได้ การหมดเวลาเครือข่าย ข้อผิดพลาดของเซิร์ฟเวอร์ และข้อมูลโหลดที่ไม่ถูกต้องเกิดขึ้น รหัสของคุณต้องจัดการข้อผิดพลาดเหล่านี้โดยไม่ทำให้ระบบขัดข้อง บันทึกรายละเอียดข้อผิดพลาดเพื่อการแก้ไขข้อบกพร่อง

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

  • บันทึกรหัสข้อผิดพลาดและข้อความ
  • เรียกซ้ำใหม่เมื่อเกิดข้อผิดพลาด 5xx พร้อมการหน่วงเวลา
  • ล้มเหลวเร็วเมื่อเกิดข้อผิดพลาด 4xx
from openai import OpenAI

client = OpenAI(base_url="https://api.apimigration.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

ปัญหาการชำระเงินและการหมุนคีย์

API ของเราใช้เครดิตเติมเงินผ่านคริปโต เครดิตไม่มีวันหมดอายุ หากคุณเครดิตหมด คำขอจะล้มเหลว โปรดตรวจสอบยอดเงินของคุณและเติมเงินก่อนที่มันจะถึงศูนย์

แต่ละบัญชีมีคีย์ที่ใช้งานอยู่หนึ่งคีย์ การสร้างคีย์ใหม่จะยกเลิกคีย์เก่าทันที ตรวจสอบให้แน่ใจว่าการปรับใช้ของคุณอัปเดตคีย์แบบอะตอมมิก (atomically) เพื่อหลีกเลี่ยงเวลาหยุดทำงาน

  • ติดตามยอดคงเหลือเครดิตอย่างสม่ำเสมอ
  • หมุนคีย์แบบอะตอมมิก
  • อัปเดตทุกอินสแตนซ์พร้อมกัน
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apimigration.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

สรุปแนวทางปฏิบัติที่ดีที่สุด

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

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

  • ตรวจสอบ URL พื้นฐาน
  • เคารพข้อจำกัดบริบท
  • จัดการการสตรีมอย่างถูกต้อง
  • จัดการอัตราจำกัด
  • ตรวจสอบ JSON
  • จัดการข้อผิดพลาด
  • จัดการการชำระเงินและคีย์
curl https://api.apimigration.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Run the latest migration script for the user table"}]
  }'

คำถามที่พบบ่อย

ขนาด context window คืออะไร?

หน้าต่างบริบทมีขนาด 100,000 tokens รวม prompt และการตอบกลับ โดยมีการตอบกลับสูงสุด 16,000 tokens ต่อการเรียก หากไม่ได้ระบุ max_tokens ค่าเริ่มต้นคือ 2,048 tokens

ฉันจะสตรีมการตอบกลับได้อย่างไร?

ใช้ Server-Sent Events (SSE) อ่านแต่ละบรรทัดและแยกวิเคราะห์ข้อมูล JSON chunk สุดท้ายรวมถึงการใช้โทเค็น อย่ารอการตอบกลับทั้งหมด

ขีดจำกัดอัตราคืออะไร?

คุณสามารถส่งคำขอได้ 300 คำขอต่อนาทีต่อคีย์ โดยสามารถส่งคำขอพร้อมกันได้ 8 คำขอต่อคีย์ หากเกินขีดจำกัดเหล่านี้จะเกิดข้อผิดพลาด 429

ฉันจะชำระเงินสำหรับ API ได้อย่างไร?

ชำระเงินผ่านคริปโตเท่านั้น คุณสามารถใช้ USDT (TRC20) หรือ USDC (Base) ยอดเติมเงินอยู่ที่ $20 ถึง $500 เครดิตไม่หมดอายุ

รับคีย์ API ของคุณ

ลงทะเบียน คัดลอกคีย์ อัปเดต base URL การตั้งค่าเสร็จสมบูรณ์

รับ API key