ベースURLと認証
すべてのリクエストは、クライアントを正しいベースURLに指します。サインアップ時に受け取ったキーを使用して、 Authorization ヘッダー。このヘッダーはアカウントの認証を行い、前払いクレジットの使用状況を追跡します。
当社のインフラストラクチャは、仲介ルーティング手数料なしで直接アクセスを希望する開発者のために構築されています。専用サーバーを運用しているため、一貫したパフォーマンスが得られます。
最初のリクエスト
接続性とモデルの応答を検証するために最初のメッセージを送信してください。システムプロンプトとユーザークエリを使用して標準のチャット完了エンドポイントを使用します。これにより、キーが機能し、生JSON応答が表示されます。
- 「
modelフィールドはuncensored. - レイテンシーをテストするためのシンプルなユーザーメッセージを含めます。
- 確認
usageobjectからトークン数を取得します。
Python SDK
公式のPythonライブラリを使用して素早く統合できます。パッケージをインストールし、base URLとキーを使用してクライアントを初期化します。このアプローチはシリアライズとリトライを自動的に処理します。
会話履歴を辞書のリストとして定義します。これらをチャットエンドポイントに直接渡します。ライブラリはアシスタントのテキストを解析できる構造化レスポンスオブジェクトを返します。
Node SDK
Node.jsクライアントを使用してサーバー側のロジックを構築します。ライブラリをインポートし、APIキーとベースURLを設定します。このセットアップは、ユーザー入力を非同期で処理するバックエンドサービスに適しています。
completion メソッドをメッセージで呼び出します。レスポンスには生成テキストと使用統計が含まれます。高負荷時にアプリケーションがクラッシュしないよう、エラーを適切に処理してください。
ストリーミングレスポンス
より滑らかなユーザーエクスペリエンスのためにリアルタイムでトークンを受信します。リクエストの適切なフラグを設定してストリーミングを有効にします。サーバーは生成されるままデータチャンクを送信します。
クライアント側でこれらのチャンクを蓄積してテキストを段階的に表示します。これにより、知覚されるレイテンシが大幅に軽減されます。最終チャンクを監視して、総トークン使用量と課金データを取得します。
制限、エラー、コンテキスト
サービスの中断を避けるためにレート制限を尊重してください。キーあたり1分あたり300リクエスト、および最大8つの同時接続が許可されています。これを超えると、429エラーが発生します。
401エラーは、APIキーが無効であることを意味します。402エラーは、前払いクレジットが不足していることを示します。コンテキストウィンドウは合計100,000トークンです。信頼性の高いパフォーマンスを確保するために、プロンプトとレスポンスをこの制限内に収めてください。
cURL
curl https://api.deepseekapiaccess.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Calculate the total latency for three sequential API calls."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.deepseekapiaccess.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.deepseekapiaccess.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)