VI ▾

Qwen Abliterated API: Gọi mô hình lưu trữ, không cần GPU

Minh họa máy tính xách tay gửi khối dữ liệu qua cáp đến máy chủ mô hình lưu trữ

Cập nhật

Bạn có thể gọi mô hình chat không kiểm duyệt qua HTTP bằng SDK OpenAI bạn đã dùng, và bỏ qua việc tải trọng lượng hoặc thuê GPU. Hướng dẫn này hiển thị cách thiết lập, với mã hoạt động và chi phí chính xác.

Điểm chính

  • Định cấu hình bất kỳ SDK OpenAI nào trỏ đến base URL và đặt mô hình thành uncensored.
  • Streaming, gọi công cụ và chế độ JSON hoạt động qua các tham số chuẩn.
  • Giới hạn: 8 yêu cầu đồng thời và 300 mỗi phút trên khóa đầy đủ.
  • Trả tiền theo token: $0.15 cho mỗi 1M token đầu vào, $0.50 cho mỗi 1M token đầu ra.

Câu trả lời ngắn: thay đổi base URL

Nếu bạn đang tìm kiếm qwen abliterated api, cách thực tế là một endpoint lưu trữ hỗ trợ giao thức OpenAI. Bạn giữ nguyên mã client, thay đổi hai giá trị và gửi yêu cầu đến máy chủ chạy mô hình cho bạn. Không tải GGUF, không chọn lượng tử hóa, không cần ngân sách VRAM.

Lưu ý cần thiết về cách đặt tên: đây là dịch vụ độc lập, không phải API Qwen chính thức, và mô hình lưu trữ được gọi là uncensored thay vì theo tên checkpoint Qwen. Đây là một mô hình trọng số mở, do nhà cung cấp độc lập vận hành và tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích người trưởng thành hợp pháp. Nếu bạn cần một tệp abliterated cụ thể, hãy chạy tệp đó cục bộ. Nếu bạn cần một endpoint trò chuyện đáng tin cậy cho ứng dụng, hãy đọc tiếp.

Cài đặtGiá trị
URL gốchttps://api.qwenabliterated.top/v1
Mô hìnhuncensored
Tiêu đề xác thựcAuthorization: Bearer YOUR_API_KEY
EndpointPOST /v1/chat/completions, GET /v1/models
Cửa sổ ngữ cảnh100.000 token, prompt cộng với hoàn tất

Lấy khóa

Đăng ký bằng Google hoặc bằng email và mật khẩu, sau đó mở trang khóa API. 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, mỗi người một lần, có hiệu lực trong 7 ngày và không cần thẻ. Điều đó đủ để chạy qua mọi ví dụ bên dưới nhiều lần.

Khóa dùng thử có giới hạn thấp hơn khóa đầy đủ: 2 yêu cầu đồng thời và 60 yêu cầu mỗi phút, so với 8 và 300 trên khóa đầy đủ. Hãy nhớ điều này nếu bạn kiểm tra với các worker song song.

Lưu khóa trong biến môi trường thay vì trong quản lý mã nguồn:

export QWENABL_KEY="paste-your-key-here"

Yêu cầu đầu tiên trong Python

Cài đặt SDK chính thức với pip install openai, sau đó:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.qwenabliterated.top/v1",
    api_key=os.environ["QWENABL_KEY"],
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a blunt technical assistant."},
        {"role": "user", "content": "Explain what a KV cache is in three sentences."},
    ],
    temperature=0.7,
)

print(resp.choices[0].message.content)
print(resp.usage)

Phản hồi chứa khối usage chuẩn, vì vậy bạn có thể ghi lại token prompt và completion và tính chi tiêu của mình. Các tiêu đề bao gồm X-Request-Id cho các câu hỏi hỗ trợ và X-Balance-USD để bạn có thể theo dõi tín dụng còn lại mà không cần mở bảng điều khiển.

Tại sao dùng API thay vì tệp GGUF

Cách thông thường để có mô hình không kiểm duyệt là tìm tệp đã lượng tử hóa, tải nó trong môi trường chạy cục bộ và giao tiếp với máy chủ cục bộ. Điều đó hoạt động, và đối với các thử nghiệm, đó là cách tốt để học. Sự cản trở xuất hiện khi bạn chuyển từ thử nghiệm sang thứ gì đó người khác sử dụng.

Đầu tiên, phần cứng. Một tệp vừa với thẻ máy tính để bàn của bạn ở ngữ cảnh ngắn có thể không vừa ở ngữ cảnh dài, vì bộ nhớ cache attention tăng lên theo mỗi token. Thứ hai, độ đồng thời. Một quy trình cục bộ đơn lẻ xử lý một hoặc hai cuộc trò chuyện thoải mái, nhưng mười người dùng cùng lúc có nghĩa là hàng đợi. Thứ ba, khả dụng. Máy tại nhà ngủ, mất điện và nhận bản cập nhật driver vào thời điểm không phù hợp. API lưu trữ biến những điều này thành công việc của người khác, và bạn chỉ trả tiền cho token đã sử dụng.

Điều bạn đánh đổi là khả năng chọn một checkpoint cụ thể và đảm bảo rằng byte không bao giờ rời khỏi mạng của bạn. Hãy quyết định điều nào quan trọng hơn cho dự án của bạn trước khi chọn.

Node.js và curl

SDK Node lấy cùng hai tùy chọn:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.qwenabliterated.top/v1",
  apiKey: process.env.QWENABL_KEY,
});

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Give me five names for a fantasy tavern." }],
});

console.log(resp.choices[0].message.content);

Và với curl, hữu ích để kiểm tra khóa trước khi kết nối bất cứ thứ gì:

curl -s https://api.qwenabliterated.top/v1/models \
  -H "Authorization: Bearer $QWENABL_KEY"

Một lệnh gọi thành công trả về danh sách JSON bao gồm uncensored. Mã 401 có nghĩa là khóa sai hoặc bị thiếu. tài liệu bao gồm chi tiết về định dạng lỗi.

Truyền phát, chế độ JSON và công cụ

Truyền phát

Đặt stream: true và đọc các sự kiện do máy chủ gửi. Việc sử dụng được báo cáo ở cuối luồng.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Write a short scene on a night train."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Một yêu cầu stream giữ slot đồng thời của nó cho đến khi stream kết thúc, vì vậy một client mở stream và bỏ đi sẽ chặn dung lượng. Luôn tiêu thụ hoặc đóng stream.

Chế độ JSON

Gửi response_format={"type": "json_object"} và đề cập đến JSON trong prompt của bạn. Hãy phân tích một cách phòng thủ; không có mô hình nào tuân theo lược đồ hoàn hảo mỗi lần.

Gọi hàm

Gửi tools và tùy chọn tool_choice. Khi mô hình yêu cầu một công cụ, hãy chạy nó và trả kết quả dưới dạng tin nhắn với role: "tool". Gọi công cụ cũng stream. Các tham số lấy mẫu temperature, top_p, stop, seed và các hình phạt tần suất và hiện diện được chuyển tiếp.

Đưa vào ứng dụng thực tế

Một script đơn lẻ thì dễ. Một ứng dụng cần một vài thói quen hơn, và chúng là những thói quen bạn sẽ sử dụng với bất kỳ API kiểu OpenAI nào.

Giữ khóa trên máy chủ

Không bao giờ gửi khóa trong mã trình duyệt hoặc ứng dụng di động. Gọi API từ backend của bạn và hiển thị route của riêng bạn cho frontend, nơi bạn có thể thêm xác thực và giới hạn theo người dùng. Bất kỳ ai tìm thấy khóa trong bundle đều có thể tiêu tốn tín dụng của bạn.

Đặt thời gian chờ và giới hạn đầu ra

Phần hoàn thành có thể sử dụng bất kỳ phần nào còn lại của cửa sổ 100.000 token, và max_tokens là tùy chọn. Đối với tính năng trò chuyện, hãy đặt giới hạn phù hợp với giao diện của bạn để câu trả lời dài bất thường không thể tăng hóa đơn. Kết hợp điều đó với thời gian chờ client và bạn có một giới hạn trên cả thời gian và tiền bạc cho mỗi cuộc gọi.

Ghi lại ID yêu cầu

Mọi phản hồi đều mang X-Request-Id. Hãy lưu nó bên cạnh bản ghi cuộc gọi của riêng bạn. Khi kết quả có vẻ sai hoặc yêu cầu thất bại, định danh đó là thứ cho phép hỗ trợ tìm ra chính xác yêu cầu. Tiêu đề X-Balance-USD hữu ích cho một cảnh báo đơn giản: nếu số giảm xuống dưới ngưỡng, hãy gửi tin nhắn cho chính bạn trước khi công việc cạn kiệt.

Kiểm tra danh sách mô hình khi khởi động

Một lệnh kiểm tra sức khỏe gọi GET /v1/models không tốn token và xác nhận khóa, URL và đường dẫn mạng trong một bước. Chạy nó khi dịch vụ của bạn khởi động và báo lỗi rõ ràng nếu nó trả về lỗi.

Giới hạn và xử lý lỗi

Các yêu cầu vượt quá giới hạn sẽ nhận được HTTP 429. Mã lỗi cho bạn biết giới hạn nào bạn đã chạm: rate_limited có nghĩa là quá nhiều yêu cầu mỗi phút, và concurrency có nghĩa là quá nhiều cùng một lúc. Trong thời gian quá tải tạm thời, API cũng trả về 429 với tiêu đề Retry-After: 5. Kích thước body tối đa là 8 MB.

Tôn trọng tiêu đề và lùi lại:

import time
from openai import OpenAI, RateLimitError

def ask(client, messages, tries=5):
    for attempt in range(tries):
        try:
            return client.chat.completions.create(model="uncensored", messages=messages)
        except RateLimitError as e:
            wait = int(e.response.headers.get("Retry-After", 5))
            time.sleep(wait * (attempt + 1))
    raise RuntimeError("still rate limited")

Nếu bạn chạy một nhóm worker, hãy giới hạn nó ở 8 luồng cho khóa đầy đủ. Vượt quá điều đó chỉ dẫn đến lỗi 429. Các yêu cầu thất bại hoặc bị từ chối không được tính phí, vì vậy các lần thử lại không tốn thêm chi phí cho bạn khi chúng thất bại.

Chi phí cho một yêu cầu

Token đầu vào là $0,15 cho 1M và token đầu ra là $0,50 cho 1M. Một số ví dụ, được tính toán chính xác:

  • Một lượt chat với 2.000 token prompt và 500 token hoàn thành: 2.000 x $0,15 / 1M = $0,0003, cộng 500 x $0,50 / 1M = $0,00025, vậy $0,00055. Một nghìn lượt chi phí $0,55.
  • Một công việc hàng loạt gửi 10M token đầu vào và nhận 2M token đầu ra: $1,50 cộng $1,00, vậy $2,50.
  • Một cuộc gọi ngữ cảnh dài với 90.000 token prompt và 1.000 token đầu ra: $0,0135 cộng $0,0005, vậy $0,014.

Tín dụng là trả trước, không bao giờ hết hạn và không có gói đăng ký. Nạp tiền bất kỳ số nguyên nào từ $20 đến $500; $50 thêm 5%, vì vậy nạp $50 sẽ nhận được $52,50 tín dụng. Thanh toán bằng tiền mã hóa (USDT trên TRC20, USDC trên Base). Xem trang giá cả để có bảng bonus đầy đủ.

Lưu trữ hoặc tệp cục bộ: cái nào phù hợp

GGUF cục bộ mang lại quyền riêng tư bằng cách cô lập và kiểm soát hoàn toàn đối với trọng lượng chính xác. API lưu trữ không đòi hỏi công việc phần cứng, ngữ cảnh dài và URL mà các dịch vụ khác có thể gọi. Hầu hết các nhóm xây dựng bot, công cụ viết hoặc backend trò chơi đều thấy việc lưu trữ đơn giản hơn, vì một hộp GPU dự phòng là một thứ khác cần duy trì.

Để xem xét rộng hơn về việc trả tiền theo token so với các cách khác để truy cập mô hình kiểu Qwen, hãy xem hướng dẫn so sánh. Các prompt gửi đến API không được dùng để huấn luyện. Mô hình chỉ xử lý văn bản và nội dung tình dục liên quan đến người chưa thành niên không được phép trong mọi trường hợp.

Hỏi đáp

Tôi có cần GPU để sử dụng nó không?

Không. Mô hình chạy trên máy chủ của nhà cung cấp. Mã của bạn chỉ gửi các yêu cầu HTTP, vì vậy một máy tính xách tay hoặc một VPS nhỏ là đủ.

Tôi gửi tên mô hình nào?

Gửi uncensored làm giá trị mô hình. Bạn có thể xác nhận nó bằng một yêu cầu GET đến /v1/models.

Nó có hỗ trợ các SDK Python và Node.js của OpenAI không?

Có. Đặt base URL thành địa chỉ /v1 của trang web và sử dụng khóa của bạn. Chat completions, streaming, gọi hàm và chế độ JSON hoạt động thông qua các tham số bình thường.

Điều gì xảy ra nếu bạn gửi quá nhiều yêu cầu?

Bạn nhận được HTTP 429 với mã rate_limited hoặc concurrency. Hãy đợi và thử lại, và tuân thủ tiêu đề Retry-After khi nó có mặt.

Có cách nào dùng thử miễn phí không?

Người dùng mới có thể nhận $0.50 tín dụng dùng thử miễn phí bằng một cú nhấp chuột trên trang khóa API. Tín dụng này có hiệu lực trong 7 ngày và không cần thẻ.

Khóa của bạn chỉ cách một bước

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

Lấy khóa API