TH ▾
รับคีย์ API

อัปเดต

คีย์ API DeepSeek ไม่ทำงาน: สาเหตุและวิธีแก้ไข

เมื่อปรากฏข้อผิดพลาดว่าคีย์ API ของ DeepSeek ไม่ทำงาน คีย์มักไม่ใช่สาเหตุหลักน้อยกว่าที่คุณคิด ความล้มเหลวส่วนใหญ่มาจาก base URL, ยอดเงินเป็นศูนย์, ชื่อโมเดลผิด หรือไคลเอนต์ที่ส่งคีย์ในตำแหน่งผิด

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

เริ่มด้วยการทดสอบแบบบรรทัดเดียว

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

curl -i https://YOUR-PROVIDER/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"YOUR-MODEL","messages":[{"role":"user","content":"ping"}]}'

แฟลก -i จะพิมพ์บรรทัดสถานะและส่วนหัว ซึ่งสำคัญกว่าเนื้อหา หาก curl ทำงานได้แต่แอปของคุณไม่ทำงาน แสดงว่าปัญหาอยู่ที่การตั้งค่าแอป หาก curl ล้มเหลวเช่นกัน ปัญหาคือคีย์ บัญชี หรือเอนด์พอยต์

อ่านรหัสสถานะก่อน

สถานะความหมายทั่วไปสิ่งที่ต้องตรวจสอบ
401คีย์ถูกปฏิเสธข้อผิดพลาดจากการคัดลอก ช่องว่างเพิ่มเติม คีย์ที่ถูกเพิกถอนหรือถูกลบ คีย์จากผู้ให้บริการอื่น
402 หรือข้อความเกี่ยวกับยอดเงินไม่มีเครดิตเหลือหน้ายอดเงินและการเรียกเก็บเงินของบัญชี
404เส้นทางหรือโมเดลผิดBase URL, /v1 ท้ายสุด, การสะกดชื่อโมเดล
429คำขอเกินจำนวนคำขอต่อนาที การเรียกใช้งานพร้อมกัน Header การลองซ้ำ
5xx หรือหมดเวลาฝั่งผู้ให้บริการหรือเครือข่ายหน้าสถานะของผู้ให้บริการ ลองใหม่ในภายหลัง การกำหนดเส้นทางระดับภูมิภาค

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

ตัวคีย์เอง

คีย์เป็นสตริงยาว และมักเกิดข้อผิดพลาดในรูปแบบที่เรียบง่าย วางคีย์ลงในโปรแกรมแก้ไขข้อความธรรมดาและมองหาช่องว่างหรือบรรทัดใหม่ท้ายสุด เครื่องหมายคำพูดนำหน้า หรือการขึ้นบรรทัดใหม่ที่เพิ่มโดยแอปแชท ตรวจสอบให้แน่ใจว่าส่วนหัวอ่านว่า Authorization: Bearer KEY โดยมีช่องว่างเดียวหลังคำว่า Bearer หากคุณตั้งค่าคีย์ในตัวแปรสภาพแวดล้อม ให้แสดงความยาวของมันในแอปของคุณ (ไม่ใช่ค่าของมัน) เพื่อยืนยันว่าโหลดสำเร็จ

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

ยอดเงิน การเรียกเก็บเงิน และเครดิตฟรี

คีย์ API หลายรายการใช้งานได้เฉพาะเมื่อบัญชีมีเครดิต ยอดเงินว่างอาจดูเหมือนคีย์เสีย เปิดหน้าการเรียกเก็บเงินของผู้ให้บริการและยืนยันว่าคุณมีเงิน และยอดเงินเติมเข้าแล้วจริงๆ และเครดิตโปรโมชันยังไม่หมดอายุ การเติมเงินด้วยคริปโตอาจใช้เวลาสักครู่ในการปรากฏ

หากคุณต้องการเปรียบเทียบว่าบริการเติมเงินแบบอื่นจัดการเรื่องนี้อย่างไร โมเดลของเราเรียบง่าย: คุณซื้อเครดิต การเรียกใช้ลดเครดิตลงที่ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน และเครดิตไม่หมดอายุ คุณสามารถอ่านยอดเงินด้วย GET /v1/balance หรือจาก X-Balance-USD header ในการตอบกลับแต่ละครั้ง

Base URL และชื่อโมเดล

สาเหตุที่พบบ่อยที่สุดในการใช้เครื่องมือเช่น SillyTavern, Janitor AI และส่วนเสริมของ editor คือ base URL ที่พิมพ์ผิดเล็กน้อย ความผิดพลาดทั่วไป: ขาด /v1, /v1/v1 ซ้ำ, ใช้ http แทน https, หรือวางเส้นทางเต็ม /chat/completions ลงในฟิลด์ที่เพิ่มอยู่แล้ว ฟิลด์โมเดลเป็นกับดักอีกอย่างหนึ่ง มันต้องตรงกับ model ID ที่ผู้ให้บริการระบุ แสดงรายการด้วย GET /v1/models หากผู้ให้บริการรองรับ หรืออ่านเอกสารปัจจุบัน

คู่มือการตั้งค่าสำหรับเครื่องมือเฉพาะมีอยู่ในเว็บไซต์นี้: การใช้คีย์ใน SillyTavern, ใน Janitor AI และ ใน VS Code

ขีดจำกัดอัตราและคำขอพร้อมกัน

การพุ่งขึ้นของคำขอพร้อมกันสามารถกระตุ้น 429 ได้แม้บนคีย์ที่ถูกต้อง มองหา Retry-After header และลดความถี่ การ retry ขั้นต่ำใน Python มีลักษณะดังนี้:

import time
from openai import OpenAI, RateLimitError

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

def ask(prompt):
    for attempt in range(4):
        try:
            r = client.chat.completions.create(
                model="uncensored",
                messages=[{"role": "user", "content": prompt}],
            )
            return r.choices[0].message.content
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    raise RuntimeError("still rate limited")

ที่ endpoint ของเรา คีย์เต็มรูปแบบอนุญาตให้ 8 คำขอพร้อมกันและ 300 คำขอต่อนาที คำขอแบบ streaming ถือตำแหน่งของมันจนกว่าสตรีมจะเสร็จ รหัสข้อผิดพลาดคือ rate_limited หรือ concurrency และการ overload ชั่วคราวส่งกลับ 429 ด้วย Retry-After: 5

ปัญหาเครือข่ายและภูมิภาค

หาก curl ค้างหรือรีเซ็ต ปัญหาอาจอยู่ระหว่างคุณและผู้ให้บริการ: proxy ขององค์กร, VPN, DNS, หรือการบล็อกระดับภูมิภาค ลองใช้เครือข่ายอื่น ตรวจสอบว่า proxy ของคุณส่งผ่าน Authorization headers และเพิ่ม timeout ไคลเอนต์ของคุณสำหรับการสร้างข้อความยาว การตอบกลับแบบ streaming ยังสามารถถูกตัดโดย proxy ที่ buffer; ทดสอบด้วย stream: false เพื่อแยกปัญหาทั้งสอง

รายการตรวจสอบที่คุณสามารถรันได้ในห้านาที

  1. รันการทดสอบ curl และบันทึก status code
  2. สร้างคีย์ใหม่และทดสอบ หากคีย์ใหม่ใช้งานได้ แสดงว่าคีย์เก่าคัดลอกผิดหรือถูกเพิกถอน
  3. ตรวจสอบยอดเงินและวันที่หมดอายุของเครดิต
  4. เปรียบเทียบ base URL และ model ID กับเอกสารของผู้ให้บริการ ตัวอักษรต่อตัวอักษร
  5. ส่งคำขอหนึ่งคำขอโดยไม่มี streaming, ไม่มี tools และพรอมต์สั้น เพิ่มฟีเจอร์กลับทีละอย่าง
  6. ตรวจสอบการเรียกแบบคู่ขนาน หากแอปของคุณยิงคำขอหลายคำขอพร้อมกัน ลด concurrency
  7. ลองใช้เครือข่ายอื่นหรือปิด VPN
  8. ดูส่วนหัวของคำตอบ รวมถึง request ID ใด ๆ ทีมสนับสนุนสามารถพบการเรียกของคุณจาก ID นั้น

ขั้นตอนที่ห้าพบข้อบกพร่องที่น่าประหลาดใจ จำนวนมาก นิยามเครื่องมือที่ไม่ถูกต้องเล็กน้อย ค่า max_tokens ที่ใหญ่เกินไป หรือ body ที่เกินขนาดจำกัดสามารถส่งกลับข้อผิดพลาดที่ดูเหมือนปัญหาคีย์ ที่ endpoint ของเรา ขนาด body คือ 8 MB และการตอบกลับทุกการตอบกลับมี X-Request-Id header คุณสามารถอ้างอิงไปยังการสนับสนุน

ตั้งค่า backup endpoint

ระบบล่มและขีดจำกัดเกิดขึ้นกับผู้ให้บริการใดๆ ดังนั้นให้เก็บ OpenAI-compatible endpoint ตัวที่สองไว้ใน config ของคุณ โมเดลของเราเป็นโมเดลแบบเปิดน้ำหนักที่โฮสต์และปรับแต่งเพื่อตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย มันไม่ใช่ API ทางการของ DeepSeek และไม่ใช่ router ดังนั้นจึงคาดหวังคำตอบและพฤติกรรมที่แตกต่างกัน การสลับใช้เวลาเพียงสองการตั้งค่า: base URL https://api.deepseekapikey.com/v1 และ model uncensored

curl https://api.deepseekapikey.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}]}'

ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ $0.50 ด้วยคลิกเดียวบน หน้าคีย์ API ใช้ได้เป็นเวลา 7 วัน การเติมเงินมีตั้งแต่ $20 ถึง $500 ด้วยคริปโต; ดู หน้าราคา และ เอกสาร สำหรับรายละเอียด

ถาม-ตอบ

ทำไมคีย์ของฉันถึงทำงานใน curl แต่ไม่ทำงานในแอปของฉัน?

แอปพลิเคชันน่าจะมี base URL ผิด, ชื่อโมเดลผิด หรือสำเนาของคีย์ API เก่าเกินไป เปรียบเทียบการตั้งค่าของแอปกับคำสั่ง curl ที่ทำงานได้ของคุณทีละอักขระ

คีย์ที่ถูกต้องรับประกันว่าคำขอจะสำเร็จหรือไม่

ไม่ การมียอดเงินเป็นศูนย์ ขีดจำกัดอัตรา หรือชื่อโมเดลที่ไม่รู้จัก ล้วนทำให้คำขอล้มเหลวได้แม้จะมีคีย์ที่ใช้งานได้ดี

ฉันสามารถใช้โค้ดเดียวกันกับผู้ให้บริการรายอื่นได้หรือไม่

หากทั้งสองรายเข้ากันได้กับ OpenAI ใช่ เปลี่ยน base URL คีย์ และ ID โมเดล

เอนด์พอยต์ของคุณใช้โมเดลเดียวกับ DeepSeek หรือไม่

ไม่ มันเป็นโมเดลแบบเปิดน้ำหนักที่ดำเนินการโดยผู้ให้บริการอิสระ และไม่ใช่ API ทางการของผู้จัดจำหน่ายรายใด

คีย์ของคุณอยู่ห่างแค่ขั้นตอนการกรอกแบบฟอร์ม

สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด

รับคีย์ API