導入ガイド
base_url を Y-API に向けるだけで、ほかのコードは変更不要です。以下のサンプルはそのままコピーして動きますし、20 種類のモデルはすべて同じ書き方です。
ステップ 1
基本設定
OpenAI 互換の SDK なら、この 3 項目を差し替えるだけで動きます。api_key はコンソールの「API キー」ページで発行し、model には「利用できるモデル」にある ID を指定してください。
- base_url
- https://api.y-api.bestvirtualgoods.com/v1
- api_key
- sk-...(コンソールで作成)
- model
- deepseek/deepseek-v4-flash
エージェントを書く場合や、クライアントコードを自動生成する場合は、機械可読な OpenAPI 3.1 仕様をご利用ください。実際に存在する 3 つのエンドポイント、リクエストとレスポンスの全フィールド、そして SDK が自動でリトライしてしまう失敗がまとめてあります。
モデル一覧は JSON でも公開しており、こちらは API キーなしで読めます。モデル ID、提供元、そしてクレジット価格と実支払い価格の両方が入っています。ゲートウェイ自身の GET /v1/models にはキーが必要です——このファイルはその認証なし版で、内容は前回のビルド時点のものです。
ステップ 2
最初のリクエストを送る
3 つのサンプルはいずれも等価です。お使いのものをコピーしてください。
curl https://api.y-api.bestvirtualgoods.com/v1/chat/completions \
-H "Authorization: Bearer $YAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-flash",
"messages": [{"role": "user", "content": "こんにちは"}]
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.y-api.bestvirtualgoods.com/v1",
api_key=os.environ["YAPI_KEY"], # コンソールで作成したキー
)
response = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "こんにちは"}],
)
print(response.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api.y-api.bestvirtualgoods.com/v1',
apiKey: process.env.YAPI_KEY, // コンソールで作成したキー
})
const response = await client.chat.completions.create({
model: 'deepseek/deepseek-v4-flash',
messages: [{ role: 'user', content: 'こんにちは' }],
})
console.log(response.choices[0].message.content)応用
ストリーミング
stream パラメータを追加するだけです。返ってくるチャンクの形式は OpenAI と同じ SSE なので、クライアント側で特別な処理は必要ありません。
stream = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "こんにちは"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")応用
モデルの切り替え
すべてのモデルが同じ base_url と同じキーを共有するため、切り替えは model フィールドを書き換えるだけです。全一覧は「利用できるモデル」ページにあります。
# 低価格。高頻度・バッチ処理向け
client.chat.completions.create(model="deepseek/deepseek-v4-flash", messages=msgs)
# より高性能。複雑な推論向け
client.chat.completions.create(model="deepseek/deepseek-v4-flash", messages=msgs)トラブルシューティング
エラーハンドリング
よくあるエラーは 2 つで、いずれもコンソールのリクエストログに記録が残ります。
| ステータス | 意味 | 対処方法 |
|---|---|---|
| 401 | 意味キーが無効か、すでに失効しています。 | 対処方法コンソールの「API キー」ページでキーが残っているか確認し、必要であれば新しく発行してください。 |
| 403 | 意味アカウントのクレジットを使い切っています。429ではありません。しかもメッセージは中国語なので、英語で検索しても何も出てきません。 | 対処方法https://y-api.bestvirtualgoods.com/app/billing で入金すればすぐに復旧します。キーは有効なままで、コードを変更する必要もありません。 |
原因をステータスコードから読み取らないでください。本サイトが返す 7 件のステータスコードのうち 5 件は数字の意味と実際の原因が違い、そのうち 2 件は公式 SDK が既定で 2 回、黙って再試行してからプログラムに渡します。エラーコード参照ページには全件と、それぞれが実際に返す原文を載せています。
すべてのエラーコードを 1 件ずつ実測 →