ベースURLと認証
提供されたベースURLとプリペイドトークンキーを使用してAPIに接続します。リクエストヘッダーにAPIキーを渡すことで認証を行い、アカウントがクレジットにのみアクセスすることを保証します。Googleまたはメールでサインアップすると、電話認証なしで即座にキーを受け取ることができます。
curl https://api.kimicodeapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "What is the current rate limit for free tier users?"}]
}'リクエストは標準的なOpenAI互換エンドポイントを対象とします。この設計により、ベースURLと認証情報を更新するだけで、既存のクライアントコードを書き換えずに当社のサービスに切り替えることができます。
チャット完了エンドポイント
を使用してモデルにメッセージを送信 POST /v1/chat/completions エンドポイント。モデルIDを uncensored 当社のサーバー上で稼働する最適化された大規模言語モデルにアクセスします。このシステムは、マルチターン会話のためにuserやassistantのような標準的なメッセージロールを受け入れます。
from openai import OpenAI
client = OpenAI(base_url="https://api.kimicodeapi.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)このエンドポイントはテキスト入力を受け取り、生成されたテキストを返します。埋め込み、画像、音声はサポートしていません。無制限モデルから最高の結果を得るために、プロンプトの構造に集中してください。
ストリーミングレスポンス(SSE)
リクエストでstreamパラメータをtrueに設定することで、トークンのリアルタイム配信を有効にできます。APIはサーバー送信イベント(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)ストリーミングはエンドユーザーの知覚されるレイテンシを軽減します。各トークンを到着するたびに処理できるため、チャットインターフェースに最適です。ストリーミングはモデルの動作やトークン料金を変更しないことを忘れないでください。
関数呼び出しとツール
構造化関数呼び出しを出力するためにモデルにリクエストにツールを定義します。API は tool_choice パラメータをサポートしており、特定のツールを強制的に使用させるか、自律的に判断させることができます。この機能は標準的な OpenAI ツール形式で動作するため、統合が容易です。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.kimicodeapi.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);アプリケーションからデータを抽出またはアクションをトリガーするために関数呼び出しを使用します。モデルはツール定義を解釈し、必要な引数を含むJSONオブジェクトを返します。この機能は、単純なテキスト生成を超えてAPIを拡張します。
JSONモードとパラメータ
厳格なJSON出力を適用するには、 response_format に {"type": "json_object"}これにより、モデルが有効なJSONを返し、プログラムでの解析に重要であることが保証されます。温度、top_p、ストップシーケンスなどのパラメータを調整して、創造性と出力長を制御できます。
このモデルは10万トークンのコンテキストウィンドウをサポートしており、単一のリクエストで大量のコンテキストを渡すことができます。リクエストごとの最大出力は16,000トークンで、max_tokensを指定しない場合は2,048トークンです。
制限、エラー、コンテキスト
サービス中断を避けるためにリクエスト制限を監視してください。APIはキーあたり1分あたり300リクエスト、最大8つの並列リクエストが可能です。リクエストボディは8 MB未満に保つ必要があります。これらの制限を超えると、429レート制限エラーが発生します。
認証の失敗は、キーが無効な場合に401エラーを返します。402エラーは、前払いクレジットが不足していることを示します。生成中のエラーはトークンを消費しません。コンテキストウィンドウにはプロンプトトークンと補完トークンの両方が含まれます。未使用のクレジットは期限切れにならず、将来のプロジェクトのために前払い残高が利用可能のまま確保されます。