開発者向けクイックスタートガイド
このクイックスタートガイドでは、標準のcursor APIキーを使用して、開発ワークフローに制限なしでOpenAI互換のAPIを統合する方法を示します。
前提条件:APIキー
サインイン直後にキーを生成します。「APIキーの取得」ページにアクセスし、Googleまたはメールパスワードで認証してください。インターフェースは電話番号不要で一意のキーを瞬時に表示します。この文字列はベースURLへのすべてのリクエストを認証するため、安全に保管してください。自動的に$0.50のトライアルクレジットが付与され、未使用の場合7日後に期限切れになります。
OpenAI互換性のためのCursorの構成
クライアントを専用エンドポイントに接続して、ルーティングを正しくしてください。ベースURLを HTTPS://api.keyapicursor.com/v1 に設定し、APIキーをAuthorizationヘッダーに挿入してください。この設定は、モデル名を変更せずに標準のOpenAI互換SDKと互換性があります。オープンウェイトの出力を受け取るには、モデル識別子を uncensored として指定する必要があります。
最初のリクエストを送信
接続とレイテンシを確認するために簡単な完了を実行します。以下のcurlコマンドを使用して、チャット完了エンドポイントに基本的なプロンプトを送信します。応答は生成されたテキストを含むJSONオブジェクトを返します。使用状況フィールドを確認し、トークン消費量が期待どおりであることを確認してください。
ストリーミングレスポンスの処理
インタラクティブアプリケーションでの知覚されるレイテンシを低減するためにトークンをストリーミングします。サーバーは最終チャンクに合計使用データを含むServer-Sent Eventsを送信します。これらのイベントを解析してUIをリアルタイムで更新します。この方法はPythonおよびNodeクライアント間で同一に動作します。
PythonおよびNode SDKとの統合
ベースURLとキーパラメータのみを調整することで既存のコードベースを再利用できます。Pythonのコードスニペットは公式クライアントライブラリとの直接統合を示しています。Nodeの例はJavaScript環境に対して同じパターンに従っています。両方の方法とも、JSONモードと関数呼び出しを標準でサポートしています。
レート制限とトークンについて
過剰な使用時のサービス中断を避けるためにリクエスト量を監視してください。システムはキーごとに1分あたり300リクエストの制限を適用します。8 MBのボディ制限で、同時に8つのリクエストを実行できます。401(無効なキー)や402(残高不足)などのエラーは、前払い残高を消費しません。
cURL
curl https://api.keyapicursor.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Fix syntax error in function parseData"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.keyapicursor.com/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.keyapicursor.com/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)よくある質問
cursor APIキーの取得方法
APIキー取得ページにアクセスし、Googleまたはメールアドレスのパスワードでサインインしてください。電話番号の確認なしで、ダッシュボードに固有のキーが即座に表示されます。
レート制限に達した場合どうなりますか?
APIは1分あたり300リクエストの閾値を超えたことを示す429ステータスコードを返します。再試行する前に少し待つか、持続的なトラフィックの急増に対応できるようプリペイドクレジットの容量をアップグレードしてください。
uncensored モデルは関数呼び出しをサポートしていますか?
はい、無制限モデルはツール使用とJSONモードをサポートしています。リクエストで関数を定義し、プログラムワークフローに適した構造化JSONレスポンスを受け取ることができます。