セットアップ内容
Cursorはカスタムモデルプロバイダをサポートするエディタです。OpenAIスタイルのベースURL、キー、モデル名を提供すると、デフォルトプロバイダではなくそこにチャットリクエストを送信します。このサービスはそのプロトコルを話します:POST /v1/chat/completions Bearer認証付き、およびGET /v1/models。
事前に明確にすべきことは2つあります。これはOpenAIのCodexではなく、Cursorの公式製品でもなく、単一のオープンウェイトモデルを実行する独立したAPIです。また、Cursorは設定画面を頻繁に変更するため、以下のラベルはあなたのバージョンでは少し異なる場所にある場合があります。変更されない3つの値は:ベースURL、キー、モデル名です。
ステップ1:キーを取得し、Cursor外でテスト
GoogleまたはメールアドレスとパスワードでAPIキーページに登録します。新規アカウントはワンクリックで$0.50の無料トライアルクレジットを取得でき、7日間有効、カード不要です。これはエディタセットアップをテストするのに十分です。
Cursorに触れる前に、キーが機能することを確認してください。エディタ内のエラーはターミナルのエラーよりも読み取りが困難です。
curl https://api.getcodexapi.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a Python function that reverses a string."}]
}'
コードを含む JSON 応答が返ってきた場合は、次に進みます。エラーが返ってきた場合は、まずここで修正してください。一般的な原因は、キー内の文字の不足や、末尾にペーストされたスペースです。
ステップ2:Cursorを設定
- Cursorの設定を開き、モデルセクションに移動します。
- OpenAI APIキーのフィールドを見つけ、このサービスからのキーを貼り付けます。
- OpenAIベースURLの上書きオプションをオンにし、
https://api.getcodexapi.com/v1を入力します。 - カスタムモデルを追加し、正確な名前
uncensoredを入力します。 - 検証ボタンがある場合は実行し、チャットパネルを開き、モデルリストから
uncensoredを選択します。
検証ステップで失敗が報告された場合は、次の3つを順番に確認してください:ベースURLが/v1で終わり、その後にエンドポイントパスがないこと、キーが末尾の空白なしで貼り付けられたこと、モデル名に大文字が含まれていないこと。docsページのガイドには、追加のクライアント例付きで同じ値がリストされています。
計画すべきこと:上書きは設定でありモデルごとの選択ではないため、Cursorの他の場所で独自のOpenAIキーも使用する場合は、まず上書きをオフにしてください。変更した内容をメモしてください。
保存後、チャットで簡単なコーディング質問を行い、返信を監視します。最初の返信が遅いのは、Cursorがリクエストを構築している間正常です。返信が返された場合、接続が完了し、次のステップは自分のリポジトリの実際の作業で試すことです。
キー経由で送信されるものとされないもの
Cursorは複数の機能を組み合わせています。チャットとインライン編集リクエストは、選択するとカスタムモデルを使用する可能性が最も高いものです。他の機能、例えばタブ補完は歴史的にCursorが独自に実行するモデルを使用しており、エージェントスタイルの機能はCursorがツールをどのように処理するかによって異なる場合があります。確実な方法は、依存している機能を試し、残高を監視することです。
それは簡単に実行できます:このAPIからのすべての応答にはX-Balance-USDヘッダーが含まれており、残高はアカウントで確認できます。チャットメッセージを送信し、残高が動かない場合、そのリクエストは私たちに送信されませんでした。
このエンドポイントでは関数呼び出しがサポートされています(tools、tool_choice、ストリーミングtool_calls、およびrole: "tool"としての結果)、これはエディタエージェントに必要な機能です。ストリーミングはstream: trueでサーバー送信イベント経由で動作します。コンテキストウィンドウは100,000トークンで、プロンプトと補完を合計したもので、大きなファイルとその隣接ファイルが1つのリクエストに収まります。
エディタで無検閲モデルを使用する理由
ほとんどのコーディング作業は拒否に到達しません。到達する場合、それは慎重なフィルタにとってリスクがありそうだが正当なタスクであることが多いです:自分のネットワーク用のポートスキャナの作成、分析中のマルウェアサンプルのパース、攻撃的な言語を含むテストデータの生成、大人向けロールプレイまたはコンパニオンアプリのバックエンド構築、またはコンテンツモデレーションを扱うコードのリファクタリング。このモデルは、合法的な成人の利用に対してコンテンツ拒否なしで応答するように調整されています。
これは依然として単一の汎用オープンウェイトモデルであり、専門的なコードモデルではなく、このモデルがあなたのコードベースで特定の代替品より優れているという保証はありません。独自のタスクをそれ経由で実行してください。1つのルールは固定されています:未成年者を含む性的コンテンツは禁止されており、変更できません。
実際のコスト
料金は入力トークン 100 万トークンあたり $0.15、出力トークン 100 万トークンあたり $0.50 で、サブスクリプションなしの前払いクレジットから課金されます。エディターのトラフィックは入力中心です。なぜなら、すべてのリクエストがファイルコンテキストを再送信するためです。
8,000入力トークンと1,000出力トークンを持つリクエストのコストは、入力に対して8,000 x $0.15 / 1,000,000 = $0.0012、出力に対して1,000 x $0.50 / 1,000,000 = $0.0005で、合計$0.0017です。重い日にそのようなリクエストを150回作成すると、150 x $0.0017 = $0.255、約26セントになります。
コンテキストとして40,000トークンを送信し、1,500トークンを取得するリクエストの料金は$0.006 + $0.00075 = $0.00675です。チャージは$20から開始され、クレジットは期限切れにならないため、使い切るプレッシャーはありません。ボーナスティアについては料金ページを、一般的な概要についてはコーディングAPIページをご覧ください。
エディタ使用のレート制限
フルキーは8つの同時リクエストと1分あたり300リクエストを許可します。トライアルキーは同時2リクエスト、1分あたり60リクエストまで許可します。1人の人が1つのエディタで入力している場合、どちらの制限にもほとんど達することはありませんが、1つのキーを共有するチームや、並列で多くのリクエストを発生させるエージェントの場合、達することがあります。超過すると、APIはHTTP 429を返します。コードrate_limitedは1分あたりのリクエストが多すぎること、concurrencyは同時に多すぎること、それぞれを示します。サービスが一時的に過負荷の場合、Retry-After: 5付きの429も表示されます。
ストリーミングチャットはストリームが終了するまで同時接続スロットを保持します。共有使用の場合、チームに1つのキーではなく、各開発者に独自のキーを提供してください。
トラブルシューティングチェックリスト
- モデルが見つかりません。 空白なしで
uncensoredを再入力します。使用していない古いカスタムモデルを削除してください。 - 認証エラー。 キーを再コピーしてください。Cursorがまだ他のプロバイダのキーを使用していないことを確認してください。
- 返信が早期に停止する。 Cursorが独自の出力上限を設定しているかどうか確認してください。こちら側では、
max_tokensはオプションです。 - 残高に変化がない。 使用した機能はカスタムキー経由でルーティングされませんでした。代わりにチャットを試してください。
- 頻繁な429。 同時リクエストを減らすか、トライアルキーではなくフルキーを使用してください。
