前提条件:SDKと環境
お好みのOpenAI互換SDKをインストールしましょう。有効なAPIキーと当社のサービスのベースURLのみが必要です。
環境変数にキーをエクスポートして、スクリプトが安全にアクセスできるようにします。Googleまたはメールで新しいアカウントを作成すると、キーが即座に発行されます。このステップには電話番号の認証は必要ありません。
環境が標準的なHTTPライブラリをサポートしていることを確認してください。APIはすべてのリクエストに標準的なJSONペイロードを期待します。ベンダー固有のドライバをインストールする必要はありません。
ベース URL の設定
SDKクライアントを無制限推論用の専用エンドポイントにポイントしてください。ベースURLは、設定ファイル内の標準的なOpenAIエンドポイントに置き換わります。
ベースURLとして HTTPS://api.apikeymistral.com/v1 を使用してください。これにより、すべてのリクエストが高スループットのサーバー経由でルーティングされます。SDKがデフォルトで /chat/completions を使用する場合は、エンドポイントパスを変更する必要はありません。
APIキーをメモリまたは安全な保管庫に保持してください。このキーは、このURLに送信されるすべてのリクエストを認証します。
最初のPOSTリクエスト
テキスト出力を得るための標準的なチャット完了リクエストを送信します。モデルID "uncensored" を使用して、チューニングされたモデルにアクセスします。
創造性を制御するために温度やその他のパラメータを指定します。エンドポイントはメッセージ配列を含む標準的なJSONボディを受け入れます。
接続性をテストするための基本的な curl コマンド:
curl https://api.apikeymistral.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "return json object with keys name age"}]
}'レスポンスに生成されたテキストが含まれていることを確認してください。成功の場合はステータスコードが200であることを確認します。
Python SDK の統合
PythonクライアントにベースURLを使用させます。APIキーとカスタムエンドポイントを使用してクライアントを初期化します。
chat.completions.create メソッドをプロンプトで呼び出します。レスポンスオブジェクトには、choices[0].message.content に生成テキストが含まれます。
レートリミットや無効なキーなどの潜在的なエラーを適切に処理してください。コスト追跡のためにトークン使用量をログに記録してください。
from openai import OpenAI
client = OpenAI(base_url="https://api.apikeymistral.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)このアプローチは任意のOpenAI互換ライブラリで動作します。既存のコードを最小限の変更で再利用できます。
Node SDKの統合
Node.jsクライアントをカスタムベースURLで初期化します。構成オブジェクトにAPIキーを渡します。
desiredなパラメータを使用してchat.completions.create関数を呼び出します。レスポンスは標準的なOpenAI形式に従います。
必要に応じてストリームまたは最終レスポンスを処理します。エラーハンドリングはネットワークの問題や認証の失敗をキャッチすべきです。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apikeymistral.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);このセットアップにより、Nodeアプリケーションに無制限の推論を迅速に統合できます。
ストリーミングレスポンスの処理
リクエストでstream=trueを設定してストリーミングを有効にします。APIは生成されるたびにデータチャンクを返します。
ユーザーにリアルタイムの出力を表示するために各チャンクを処理します。コンテンツを累積して完全な応答を取得します。
ストリームの最後のチャンクでトークン使用量を監視します。これにより、コストを正確に追跡できます。
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)ストリーミングにより長文のレスポンスの体感レイテンシーを低減できます。チャットインターフェースやインタラクティブなアプリケーションに最適です。
制限、エラー、コンテキストウィンドウ
サービス中断を避けるための技術的制限を理解しましょう。コンテキストウィンドウは、プロンプトと補完を合わせて100,000トークンをサポートします。
最大出力はリクエストごとに16,000トークンです。デフォルトの2,048に達しないように、max_tokensを明示的に設定してください。
レートリミットはキーごとに1分間あたり300リクエストを許可します。同時に8つの同時リクエストを実行できます。
キーの有効性を確認して401エラーを処理します。402エラーは残高不足を示します。429エラーはレート制限に達したことを意味します。
ボディサイズ制限の8 MBを超えるリクエストは失敗します。ペイロードを適切に計画してください。