はじめに
Lykuro AI Gateway は、DeepSeek・Qwen などの中国系 LLM を OpenAI 互換 API として提供するプロキシサービスです。 既存の OpenAI SDK を使っているアプリケーションは、base_url を変更するだけで即座に利用開始できます。
API 分類
Lykuro は用途に応じて 3種類の接続方式 を提供します。
| 分類 | プロトコル | エンドポイント | 主な用途 |
|---|---|---|---|
| テキスト生成 | HTTP / SSE | https://api.lykuro.ai/v1/chat/completions | チャット・コード生成・要約 |
| リアルタイム | WebSocket (WSS) | wss://api.lykuro.ai/v1/realtime | 音声対話・ライブ翻訳(準備中) |
| マルチモーダルファイル | HTTP | https://api.lykuro.ai/v1/chat/completions | 画像・音声・動画ファイル解析 |
provider/model_id 形式で指定します。 例:alibaba/qwen-turbo、deepseek/deepseek-v4-flashクイックスタート
① アカウント作成 & APIキー発行
アカウント登録 → 電話番号認証 → ダッシュボード →「APIキー」→「+ 新規作成」
② Python (openai SDK)
from openai import OpenAI
client = OpenAI(
api_key="ly-xxxxxxxxxxxxxxxxxxxx", # Lykuro APIキー
base_url="https://api.lykuro.ai/v1",
)
response = client.chat.completions.create(
model="deepseek/deepseek-v4-flash", # provider/model_id 形式
messages=[{"role": "user", "content": "こんにちは!"}],
)
print(response.choices[0].message.content)③ Node.js (openai SDK)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "ly-xxxxxxxxxxxxxxxxxxxx",
baseURL: "https://api.lykuro.ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek/deepseek-v4-flash", // provider/model_id 形式
messages: [{ role: "user", content: "こんにちは!" }],
});
console.log(response.choices[0].message.content);④ curl
curl https://api.lykuro.ai/v1/chat/completions \
-H "Authorization: Bearer ly-xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-flash",
"messages": [{"role": "user", "content": "こんにちは!"}]
}'認証
すべてのリクエストには Authorization ヘッダーで APIキーを送付してください。
Authorization: Bearer ly-xxxxxxxxxxxxxxxxxxxxAPIキーはサーバーサイドのみで使用してください。フロントエンドのソースコードや公開リポジトリに含めないでください。
• APIキーは ly- プレフィックスで始まります
• 1つのアカウントで複数のAPIキーを発行可能(Tier によって上限が変わります)
• キーは再表示できません。発行後すぐに安全な場所に保存してください
APIリファレンス
/v1/chat/completionsチャット形式での推論リクエスト。OpenAI Chat Completions API と完全互換です。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | ✓ | 使用するモデルID(例: deepseek-v4-flash) |
| messages | array | ✓ | 会話履歴。role は system / user / assistant |
| stream | boolean | true でSSEストリーミング(デフォルト: false) | |
| max_tokens | integer | 最大出力トークン数 | |
| temperature | number | 0.0〜2.0。高いほどランダム(デフォルト: 1.0) | |
| top_p | number | nucleus sampling パラメータ | |
| tools | array | Function Calling 定義 |
レスポンス例
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "deepseek-v4-flash",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "こんにちは!何かお手伝いできることはありますか?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 25,
"total_tokens": 37
}
}/v1/models利用可能なモデル一覧を返します。
curl https://api.lykuro.ai/v1/models \
-H "Authorization: Bearer ly-xxxxxxxxxxxxxxxxxxxx"モデル一覧
モデルは provider/model_id 形式で指定します。
機能(画像入力・Function Calling・思考モードなど)で絞り込み、シリーズ代表の API 利用例も確認できます。docs.lykuro.ai ↗
テキスト生成
| モデルID | コンテキスト | 機能 |
|---|---|---|
| deepseek/deepseek-v4-flash | 1M tokens | streamtoolsJSON |
| deepseek/deepseek-v4-pro | 1M tokens | streamtoolsJSON |
| alibaba/qwen3-max | 1M tokens | streamtoolsJSONthinking |
| alibaba/qwen-turbo | 1M tokens | streamtoolsJSON |
| alibaba/qwen-flash | 1M tokens | streamtoolsJSON |
マルチモーダル(画像・音声・動画)
| モデルID | 対応入力 | 機能 |
|---|---|---|
| alibaba/qwen3.5-omni-plus | テキスト・音声・画像・動画 | streamtools |
| alibaba/qwen3-omni-flash | テキスト・音声・画像・動画 | stream |
| alibaba/qwen-vl-max | テキスト・画像 | streamvision |
| alibaba/qwen-vl-plus | テキスト・画像 | streamvision |
リアルタイム(WebSocket)
| モデルID | 特徴 |
|---|---|
| alibaba/qwen3.5-omni-plus-realtime | フラッグシップ・音声+テキスト+画像 準備中 |
| alibaba/qwen3-omni-flash-realtime | 軽量・低レイテンシ 準備中 |
| alibaba/qwen3-livetranslate-flash-realtime | リアルタイム同時翻訳(60言語) 準備中 |
料金
すべて 日本円・従量課金。月額固定費はありません。1Mトークンあたりの価格です。
| モデル | 入力 (¥/1M) | 出力 (¥/1M) | キャッシュヒット (¥/1M) |
|---|---|---|---|
| deepseek-v4-flash | ¥24 | ¥49 | ¥3 |
| deepseek-v4-pro | ¥108 | ¥216 | ¥11 |
| qwen3-max | ¥160 | ¥640 | — |
| qwen3-plus | ¥80 | ¥320 | — |
| qwen-turbo | ¥30 | ¥120 | — |
※ 価格は USD/JPY レートにより月次で見直される場合があります。
クレジットカードによるプリペイド方式です。ダッシュボードから残高をチャージし、APIリクエストに応じて消費されます。残高がゼロになるとリクエストが停止します。
レート制限
レート制限はアカウントの Tier によって決まります。Tier は累積消費額と利用期間に応じて自動的に引き上げられます。
| Tier | 昇格条件 | RPM | TPM | APIキー上限 |
|---|---|---|---|---|
| Tier 1 | 新規登録時 | 60 | 100万 | 5本 |
| Tier 2 | 累積¥3,000以上 + 7日経過 | 300 | 500万 | 10本 |
| Tier 3 | 累積¥30,000以上 + 30日経過 | 1,500 | 2,000万 | 20本 |
| Tier 4 | 個別申請(本人確認・用途確認) | 任意 | 任意 | 個別 |
レート制限に達した場合、429 Too Many Requests が返されます。 レスポンスヘッダーの Retry-After を確認して待機してください。
エラーコード
エラーレスポンスは OpenAI 互換形式で返されます。
{
"error": {
"type": "invalid_request_error",
"code": "model_not_found",
"message": "指定されたモデルが見つかりません。"
}
}| HTTPステータス | code | 説明 |
|---|---|---|
| 400 | invalid_request | リクエストパラメータが不正 |
| 401 | auth_invalid_api_key | APIキーが無効または未指定 |
| 402 | insufficient_balance | 残高不足 |
| 404 | model_not_found | 指定されたモデルが存在しない、または上流で廃止 |
| 429 | rate_limit_exceeded | レート制限に達した(RPM 超過) |
| 502 | upstream_error | 上流APIサーバーエラー |
| 502 | upstream_rate_limited | 上流APIのレート制限(バックオフ後リトライ推奨) |
| 502 | upstream_timeout | 上流APIがタイムアウト |
| 500 | internal_error | Lykuro サーバー内部エラー |