公式SDKをインストール
環境に公式のOpenAI Python SDKをインストールすることから始めましょう。このライブラリは、HTTPリクエストとJSONシリアライズを処理します。
- 実行
pip install openaiターミナル内で。 - ライブラリの最新バージョンを使用してください。
この単一依存関係により、業界全体で標準的に使用されているクライアントインターフェースにアクセスできます。
ベース URL とキーの構成
クライアントをベースURLに接続して認証用のAPIキーを設定します。これにより、すべてのリクエストが非制限モデルサーバーにルーティングされます。
使用 https://api.qwenmaxapi.com/v1 ベースURLとして使用します。キーは APIキーを取得 Googleまたはメール経由のページ。キーはサインアップ直後に表示されます。
最初のチャット完了を送信
シンプルなテキストリクエストを /v1/chat/completions エンドポイント。モデルはプロンプトに基づいて制限のないテキストを返します。
モデルID uncensoredAPIは temperature および top_p。これらを調整して創造性を制御できます。
ストリーミングを有効化し、トークンを処理
ストリーミングを有効にして、トークンが生成されるたびに受信します。これにより長い応答に対する知覚されるレイテンシが軽減されます。
設定 stream=True リクエスト内。サーバーはServer-Sent Events (SSE) を送信します。トークン使用詳細は最終チャンクに表示されます。
コードでストリームを処理して、出力を段階的に表示します。
JSONモードと関数呼び出しをテスト
構造化データ出力にはJSONモードを使用してください。設定 response_format に {"type": "json_object"}これにより、モデルが有効なJSONを返すことが保証されます。
提供することで関数呼び出しを有効にします tools 定義。モデルはプロンプトのコンテキストに基づいてツールを呼び出すことができます。使用 tool_choice ツール使用を強制または許可します。
制限、エラー、コンテキストウィンドウ
統合をスケーリングする前に制限を理解してください。コンテキストウィンドウは合計100,000トークンです。
1リクエストあたりの最大出力は16,000トークンです。キーごとに1分あたり300リクエストが可能です。キーごとに最大8つの同時リクエストが許可されます。
無効なキーによる401や、クレジット不足による402などのエラーを処理してください。エラーレスポンスは無料のため、不正なリクエストでもクレジットは消費されません。
cURL
curl https://api.qwenmaxapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 arguments against cloud computing"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.qwenmaxapi.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.qwenmaxapi.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)