Qwen Abliterated: クライアントを3行で切り替え
既存のOpenAI SDKクライアントを当社の無検閲エンドポイントに1分未満で接続します。ベースURLとAPIキーを書き換えるだけで、変更なしで標準的なchat-completions呼び出しを実行できます。
認証とベースURL
当社のAPIは標準的なOpenAI形式に従います。必要なのはベースURLと有効なAPIキーの2つだけです。ベースURLはhttps://api.qwenabliterated.top/v1です。特別なライブラリのインポートやコード構造の変更は不要です。クライアント設定を更新してこのURLを指し、Get API keyページで生成したキーを入力するだけです。システムは標準的なBearerトークン認証を使用するため、既存のOpenAI互換SDKはそのまま動作します。
curl https://api.qwenabliterated.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'キーを安全に保ってください。一部のプロバイダーとは異なり、サインアップに使用したメールアドレス以外でお客様の身元を追跡することはありません。プロンプトはトレーニングデータとして使用されません。キーを紛失した場合は、新しいキーを生成してください。古いアクティブなキーはすぐに置き換えられます。
最初のCompletionリクエスト
標準の/v1/chat/completionsエンドポイントを使用して最初のメッセージを送信します。モデルIDとして"uncensored"を指定してください。このモデルはオープンウェイトモデルで、生出力向けにチューニングされており、汎用モデルに見られる典型的な拒否応答を適用しません。成人向け、論争的、または技術的なトピックを余計なノイズなしで処理しますが、対象となるコンテンツに未成年者が含まれる場合は除きます。
from openai import OpenAI
client = OpenAI(base_url="https://api.qwenabliterated.top/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)レスポンスはchoices[0].message.contentフィールドに生成されたテキストを返します。無効なキーによるリクエスト失敗の場合、401エラーを受け取ります。前払いクレジットが枯渇した場合は、402エラーを受け取ります。エラーはトークン残高を消費しないため、ペナルティなしで再試行できます。
ストリーミングレスポンス
リアルタイムアプリケーションでは、stream: trueを設定してストリーミングを有効にします。APIはServer-Sent Events(SSE)ストリームを返します。各チャンクには部分トークンが含まれます。最終チャンクにはリクエストの合計トークン使用量が含まれており、コストを正確に追跡できます。これはレイテンシが重要なチャットインターフェースやターミナルベースのツールに最適です。
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)ストリーミングはモデルの動作やコンテキストウィンドウを変更しません。これは応答の配信方法のみに関係します。クライアントがストリーミングを正しく処理し、メモリリークを回避するようにしてください。無検閲モデルはストリーミング下でも良好に動作し、フィルタリングされたモデルで見られる典型的な文の途中での途切れなしで、一貫性のあるテキストを配信します。
JSONモード
構造化データが必要な場合は、response_format: {"type": "json_object"}を使用してください。モデルは有効なJSONを出力するように指示されます。これは設定の解析、コード構造の生成、またはダウンストリームサービスへのデータ供給に役立ちます。完璧であることが保証されませんが、無検閲モデルは、安全性のために生JSONの出力を拒否する可能性がある標準モデルよりも複雑な構造をよりよく処理します。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.qwenabliterated.top/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が壊れている場合、APIは自動的に再試行しません。一貫性に影響を与えるためにtemperatureを調整できます。低い温度はより予測可能なJSON構造をもたらし、高い温度はより多くの創造性をもたらしますが、フォーマットエラーのリスクが高まります。
関数呼び出し
ツールサポートは組み込みです。toolsパラメータで関数を定義し、必要に応じてtool_choiceを設定します。モデルは関数を呼び出すと判断した場合、tool_calls配列を返します。関数を実行し、結果をrole: "tool"で後続のメッセージに渡す必要があります。これは標準的なOpenAIツール使用パターンに従っています。
この機能は任意のOpenAI互換SDKで動作します。無検閲モデルはコンテンツフィルタにより関数名の出力を拒否することなく、ツール定義を明確に処理します。これは外部API呼び出しを必要とするエージェントの構築やワークフローの自動化に適しています。
パラメータ、制限、エラー
コンテキストウィンドウは100,000トークンで、プロンプトと生成テキストの両方を含みます。出力の上限は別途設定されていません(max_tokensが未設定の場合、応答はウィンドウの最後まで継続します)。temperature、top_p、stop、seed、およびペナルティパラメータで生成を制御できます。
レート制限は1分あたり300リクエスト、キーあたり8つの同時リクエストです。これらを超えると、429エラーを受け取ります。リクエストボディは8 MB未満である必要があります。これらの制限は、大量のユーザーに対する安定したパフォーマンスを保証します。未成年者に関する性的コンテンツというハードリミットを除き、生成できるコンテンツの種類に隠れた制限はありません。
技術仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| 認証 | Authorization: Bearer YOUR_KEY |
| モデル ID | uncensored |
| Base URL | https://api.qwenabliterated.top/v1 |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| JSON モード | response_format: {"type": "json_object"} |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| レート制限 | キーごとに毎分 300 リクエスト |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| リクエストサイズ | 最大 8 MB |
| 同時実行 | キーごとに同時 8 リクエストまで |
| 料金 | 入力 100 万トークン $0.15 · 出力 100 万トークン $0.50 |
| ボーナス | $50 以上で +5%、$100 以上で +10%、$200 以上で +15% |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| チャージ | USDT(TRC20)または USDC(Base)、$20〜$500 の任意の整数額 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| ログイン | Google またはメール+パスワード |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |
質問と回答
これは公式のQwenモデルと同じですか?
いいえ。当社は無検閲出力用に調整されたオープンウェイトモデルを実行しています。GPT、Claude、Gemini、Grok、またはその他のベンダーのモデルではありません。独立しており、生コンテンツ生成という特定のユースケースに奉仕しています。
既存のOpenAI APIキーを使用できますか?
いいえ。当社のプラットフォームからキーを生成する必要があります。キーの形式は標準的ですが、他のプロバイダーではなく、ここでの前払いクレジットアカウントに紐付いています。キーはサインアップ直後に表示されます。
402エラーが発生した場合どうなりますか?
402エラーは、前払いクレジットが枯渇したことを意味します。暗号通貨(TRC20上のUSDT、Base上のUSDC)でチャージして続行してください。エラーと拒否はクレジットを消費しないため、成功したトークン使用に対してのみ課金されます。