VI ▾
Lấy khóa API

Cập nhật

Lỗi khóa API DeepSeek: Nguyên nhân và cách khắc phục

Khi lỗi khóa API DeepSeek không hoạt động xuất hiện, bản thân khóa ít khi là nguyên nhân hơn bạn nghĩ. Hầu hết các lỗi đến từ base URL, số dư trống, tên mô hình sai hoặc client gửi khóa ở vị trí sai.

Một khóa bị chặn trong đường ống với một đường ống dự phòng bao quanh, minh họa việc khắc phục sự cố khóa API
Minh họa một sân khấu với các mặt nạ nổi được kết nối với máy chủ, đại diện cho chat nhập vai với API trong SillyTavern

Bắt đầu với một lệnh kiểm tra một dòng

Trước khi thay đổi bất cứ thứ gì trong ứng dụng của bạn, hãy loại bỏ ứng dụng khỏi phương trình. Một lệnh gọi curl đơn lẻ cho bạn biết liệu khóa, URL và tên mô hình có hoạt động cùng nhau hay không. Thay thế các chỗ giữ chỗ bằng các giá trị từ bảng điều khiển và tài liệu của nhà cung cấp của bạn.

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"}]}'

Cờ -i in ra dòng trạng thái và tiêu đề, và những thứ đó quan trọng hơn thân phản hồi. Nếu curl hoạt động và ứng dụng của bạn không hoạt động, lỗi nằm ở cài đặt của ứng dụng. Nếu curl cũng thất bại, vấn đề là khóa, tài khoản hoặc endpoint.

Đọc mã trạng thái trước tiên

MãÝ nghĩa thông thườngNhững gì cần kiểm tra
401Khóa bị từ chốiSao chép lỗi, khoảng trắng thừa, khóa bị thu hồi hoặc bị xóa, khóa từ nhà cung cấp khác
402 hoặc thông báo về số dưHết tín dụngSố dư tài khoản và trang thanh toán
404Đường dẫn hoặc mô hình saiBase URL, dấu /v1 ở cuối, lỗi chính tả tên mô hình
429Quá nhiều yêu cầuYêu cầu mỗi phút, yêu cầu đồng thời, tiêu đề thử lại
5xx hoặc hết thời gian chờPhía nhà cung cấp hoặc mạngTrạng thái nhà cung cấp, thử lại sau, định tuyến khu vực

Đây là các ý nghĩa phổ biến trên các nhà cung cấp theo phong cách OpenAI. Mỗi nhà cung cấp đều ghi rõ các mã chính xác của riêng mình, vì vậy hãy kiểm tra tài liệu hiện tại của họ để biết chi tiết.

Bản thân khóa

Các khóa là các chuỗi dài và chúng bị hỏng theo những cách nhàm chán. Dán khóa vào trình soạn thảo văn bản thuần túy và tìm kiếm khoảng trắng hoặc ký tự xuống dòng ở cuối, dấu ngoặc kép ở đầu, hoặc ký tự xuống dòng được thêm vào bởi ứng dụng trò chuyện. Đảm bảo tiêu đề có dạng Authorization: Bearer KEY với một khoảng trắng duy nhất sau Bearer. Nếu bạn đặt khóa trong biến môi trường, hãy in độ dài của nó trong ứng dụng của bạn (không phải giá trị của nó) để xác nhận rằng nó đã được tải.

Hai trường hợp khác cũng phổ biến. Đầu tiên, bạn đã tạo một khóa, đóng trang và sao chép một giá trị bị che. Hầu hết các bảng điều khiển chỉ hiển thị một khóa một lần, vì vậy hãy tạo một khóa mới. Thứ hai, bạn đang sử dụng một khóa từ dịch vụ này với URL của dịch vụ khác. Một khóa chỉ hợp lệ đối với nhà cung cấp đã cấp nó.

Số dư, thanh toán và tín dụng miễn phí

Nhiều khóa API chỉ hoạt động khi tài khoản có tín dụng. Số dư trống có thể trông giống như một khóa bị hỏng. Mở trang thanh toán của nhà cung cấp của bạn và xác nhận rằng bạn có tiền, rằng việc nạp tiền thực sự đã được ghi nhận và rằng bất kỳ tín dụng khuyến mãi nào chưa hết hạn. Việc nạp tiền bằng crypto có thể mất vài phút để hiển thị.

Nếu bạn muốn so sánh cách một dịch vụ trả trước khác xử lý điều này, mô hình của chúng tôi rất đơn giản: bạn mua tín dụng, các lệnh gọi sẽ trừ nó đi với giá $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra, các yêu cầu thất bại hoặc bị từ chối không bị tính phí và tín dụng không bao giờ hết hạn. Bạn có thể đọc số dư bằng GET /v1/balance hoặc từ tiêu đề X-Balance-USD trên mỗi phản hồi.

URL cơ sở và tên mô hình

Nguyên nhân phổ biến nhất trong các công cụ như SillyTavern, Janitor AI và các plugin trình soạn thảo là base URL được nhập sai. Các lỗi phổ biến: thiếu /v1, /v1/v1 bị nhân đôi, sử dụng http thay vì https, hoặc dán đường dẫn đầy đủ /chat/completions vào một trường đã thêm nó. Trường mô hình là cái bẫy khác. Nó phải khớp với ID mô hình mà nhà cung cấp liệt kê. Hãy liệt kê chúng bằng GET /v1/models nếu nhà cung cấp hỗ trợ nó, hoặc đọc tài liệu hiện tại.

Hướng dẫn thiết lập cho các công cụ cụ thể có trên trang web này: sử dụng khóa trong SillyTavern, trong Janitor AI và trong VS Code.

Giới hạn tốc độ và tính đồng thời

Một đợt yêu cầu đồng thời có thể kích hoạt lỗi 429 ngay cả với một khóa hợp lệ. Hãy tìm tiêu đề Retry-After và giảm tần suất. Một lệnh thử lại tối thiểu trong Python trông như thế này:

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")

Trên endpoint của chúng tôi, một khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút. Một yêu cầu truyền phát giữ slot của nó cho đến khi luồng kết thúc. Mã lỗi là rate_limited hoặc concurrency, và quá tải tạm thời trả về 429 với Retry-After: 5.

Vấn đề mạng và khu vực

Nếu curl bị treo hoặc đặt lại, vấn đề có thể nằm giữa bạn và nhà cung cấp: proxy doanh nghiệp, VPN, DNS hoặc chặn khu vực. Hãy thử một mạng khác, kiểm tra xem proxy của bạn có chuyển tiếp tiêu đề Authorization hay không và tăng thời gian chờ của client cho các quá trình tạo dài. Các phản hồi truyền phát cũng có thể bị cắt bởi các proxy đệm; hãy kiểm tra với stream: false để tách biệt hai vấn đề.

Một danh sách kiểm tra bạn có thể chạy trong năm phút

  1. Chạy lệnh kiểm tra curl và ghi chú mã trạng thái.
  2. Tạo một khóa mới và kiểm tra nó. Nếu khóa mới hoạt động, khóa cũ đã được sao chép sai hoặc bị thu hồi.
  3. Kiểm tra số dư và bất kỳ ngày hết hạn nào trên tín dụng.
  4. So sánh base URL và ID mô hình với tài liệu của nhà cung cấp, từng ký tự một.
  5. Gửi một yêu cầu không có truyền phát, không có công cụ và một prompt ngắn. Thêm các tính năng trở lại từng cái một.
  6. Kiểm tra các lệnh gọi song song. Nếu ứng dụng của bạn gửi nhiều yêu cầu cùng một lúc, hãy giảm độ đồng thời.
  7. Hãy thử một mạng khác hoặc tắt VPN.
  8. Xem các tiêu đề phản hồi, bao gồm bất kỳ ID yêu cầu nào. Một nhóm hỗ trợ có thể tìm thấy yêu cầu của bạn từ ID đó.

Bước năm tìm thấy một số lỗi đáng ngạc nhiên. Các định nghĩa công cụ không hợp lệ một chút, giá trị max_tokens rất lớn hoặc thân vượt quá giới hạn kích thước đều có thể trả về các lỗi trông giống như các vấn đề về khóa. Trên endpoint của chúng tôi, giới hạn thân là 8 MB và mọi phản hồi đều có tiêu đề X-Request-Id mà bạn có thể trích dẫn để hỗ trợ.

Thiết lập một endpoint dự phòng

Sự cố và giới hạn xảy ra với mọi nhà cung cấp, vì vậy hãy giữ một endpoint OpenAI tương thích thứ hai trong cấu hình của bạn. Mô hình trọng số mở được lưu trữ của chúng tôi được tinh chỉnh để trả lời mà không từ chối nội dung cho việc sử dụng người lớn hợp pháp. Đây không phải là API chính thức của DeepSeek và không phải là bộ định tuyến, vì vậy hãy mong đợi các câu trả lời và hành vi khác nhau. Việc chuyển đổi chỉ cần hai cài đặt: URL cơ sở https://api.deepseekapikey.com/v1 và mô hình 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"}]}'

Người dùng mới có thể nhận $0,50 tín dụng dùng thử chỉ với một cú nhấp chuột trên trang khóa API, có hiệu lực trong 7 ngày. Nạp tiền từ $20 đến $500 bằng tiền mã hóa; xem trang giá cả và tài liệu để biết chi tiết.

Hỏi đáp

Tại sao khóa của tôi hoạt động trong curl nhưng không hoạt động trong ứng dụng của tôi?

Ứng dụng của bạn có thể có base URL sai, tên mô hình sai hoặc bản sao khóa cũ. So sánh các cài đặt của nó với lệnh curl hoạt động của bạn từng ký tự một.

Một khóa hợp lệ có đảm bảo rằng các yêu cầu sẽ thành công không?

Không. Số dư trống, giới hạn tốc độ hoặc tên mô hình không xác định đều có thể gây lỗi với một khóa hợp lệ.

Tôi có thể sử dụng cùng mã với một nhà cung cấp khác không?

Nếu cả hai đều tương thích OpenAI, có. Hãy thay đổi base URL, khóa và ID mô hình.

Endpoint của bạn có phải là cùng mô hình với DeepSeek không?

Không. Đó là một mô hình trọng số mở do một nhà cung cấp độc lập vận hành và nó không phải là API chính thức của bất kỳ nhà cung cấp nào.

Khóa của bạn chỉ còn một bước nữa là xong

Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.

Lấy khóa API