Minicpmユーザー向けクイックスタート
既存のOpenAI互換クライアントを1分以内に当社の無検閲APIに接続します。ベースURLを書き換え、キーを設定し、「無検閲」モデルでのテキスト生成を開始します。
ベースURLと認証
このAPIを使用するには、APIキーと正しいベースURLが必要です。当サービスは標準的なOpenAIクライアントライブラリと完全に互換性があります。新しい依存関係のインストールや新しいSDKの習得は不要です。既存のクライアントを当社のエンドポイントに指すだけです。
APIキーの取得ページでキーを生成してください。Googleでログインするか、メールアドレスとパスワードを使用できます。キーは即座に表示されます。安全に保管してください。すべてのリクエストには、Authorizationヘッダーにこのキーを含める必要があります。
すべてのリクエストのベースURLは次の通りです:https://api.minicpm.cc/v1。このURLはチャット補完、モデル一覧、ストリーミングレスポンスを処理します。埋め込みやビジョン用の個別のエンドポイントはありません。これはテキスト専用のAPIです。
最初のリクエスト
標準的なチャット完了リクエストを送信してテキストの生成を開始します。モデルIDは常にuncensoredです。このモデルは、法的な成人向け用途においてコンテンツ拒否なしで回答するように調整されたオープンウェイト大規模言語モデルです。GPT、Claude、またはその他のベンダーのモデルではありません。
modelフィールドをuncensoredに設定します。標準的な配列形式でメッセージを提供してください。APIはテキストレスポンスを返します。max_tokensで出力長を制御できます。設定しない場合、デフォルトの最大出力は2,048トークンです。
Python SDK統合
APIと対話するには、公式のOpenAI Pythonライブラリを使用します。ベースURLとAPIキーを設定するだけです。ライブラリの残りの部分は期待どおりに動作します。これには、ストリーミング、関数呼び出し、JSONモードのサポートが含まれます。
pip install openaiでライブラリをインストールします。ベースURLとキーでクライアントを初期化します。チャット補完エンドポイントにメッセージを送信します。レスポンスオブジェクトには生成されたテキスト、トークン使用量、終了理由が含まれます。Pythonコードでこれらのフィールドに直接アクセスできます。
Node SDK統合
Node.js SDKはPython版と同じように動作します。パッケージをインストールし、ベースURLを設定します。クライアントは認証とリクエストフォーマットを自動的に処理します。これにより、バックエンドサービスにAPIを迅速に統合できます。
ベースURLとAPIキーをOpenAIクライアントのコンストラクタに渡します。chat.completions.createメソッドを使用します。レスポンス構造はOpenAI標準に一致します。エラーの処理、トークン使用量の確認、コンテンツの処理が可能です。このアプローチは、すでにOpenAIを使用している既存のコードベースとの互換性を保証します。
ストリーミングレスポンス
リクエストにstream: trueを設定してストリーミングを有効にします。APIはSSE(Server-Sent Events)のシーケンスを返します。各イベントにはレスポンスのチャンクが含まれます。これにより、生成されたテキストをユーザーに表示できます。
最後のチャンクにはトークン使用量の統計情報が含まれます。これはコストの追跡に役立ちます。ストリーミングはユーザーにとってのレイテンシを低減します。チャットインターフェースに推奨されます。クライアントコードでイベントを解析して最終的なレスポンスを構築するか、リアルタイムでトークンを表示できます。
制限、エラー、コンテキスト
モデルは100,000トークンのコンテキストウィンドウをサポートします。これにはプロンプトと補完の両方が含まれます。1リクエストあたりの最大出力は32,000トークンです。これを制御するにはmax_tokensパラメータを調整できます。
レート制限はキーあたり1分あたり300リクエストに設定されています。同時に8つのリクエストを送信できます。リクエストボディは8 MB未満である必要があります。キーが無効な場合、401エラーが発生します。クレジットがない場合、402エラーが発生します。レート制限を超えた場合、429エラーが発生します。エラーと拒否はクレジットを消費しません。
cURL
curl https://api.minicpm.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.minicpm.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.minicpm.cc/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);ストリーミング
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 仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| Base URL | https://api.minicpm.cc/v1 |
| モデル ID | uncensored |
| 認証 | Authorization: Bearer YOUR_KEY |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| JSON モード | response_format: {"type": "json_object"} |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| 同時実行 | キーごとに同時 8 リクエストまで |
| リクエストサイズ | 最大 8 MB |
| レート制限 | キーごとに毎分 300 リクエスト |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| チャージ | USDT(TRC20)または USDC(Base)、$10〜$500 の任意の整数額 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| 料金 | 入力 100 万トークン $0.25 · 出力 100 万トークン $1.00 |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| ボーナス | $50 以上で +5%、$100 以上で +10% |
| ログイン | Google またはメール+パスワード |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
エラーコード
エラーは固定の 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 | モデル混雑 — 数秒後に再試行 |
質問と回答
コンテキストウィンドウのサイズは?
コンテキストウィンドウは100,000トークンで、入力プロンプトと出力補完の両方を含みます。1リクエストあたりの最大出力は32,000トークンです。
エラーの処理方法
401エラーはAPIキーが無効であることを示します。402エラーは前払いクレジットが枯渇したことを示します。429エラーは1分あたり300リクエストのレート制限を超えたことを意味します。エラーはクレジットを消費しません。
ストリーミングを使用できますか?
はい。リクエストに<code>stream: true</code>を設定してください。APIはSSEを返します。最後のチャンクにはトークン使用量の統計情報が含まれます。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。セットアップはこれだけです。