Skip to content
Cette page a été traduite de l'original chinois, qui a changé depuis ; elle peut donc être obsolète. La version chinoise fait foi. Voir l'original chinois →
En production

Référence de l'API — Manuel des endpoints de la passerelle

Documentation des endpoints · codes d'erreur · exemples de requêtes

L’API Lurus est entièrement compatible avec le format de l’API OpenAI : vous pouvez utiliser n’importe quel SDK ou outil prenant en charge OpenAI pour l’appeler directement.

Pourquoi utiliser l’API Lurus

Compatible OpenAI

Tous les chemins et la sémantique des endpoints sont alignés sur OpenAI ; remplacez simplement base_url sans modifier votre SDK

Codes d'erreur complets

Chaque erreur comporte un code + un message + une action recommandée, facilitant le traitement automatisé

Authentification multiple

Bearer Token / PAT / JWT, du script au SSO d'entreprise

Routage et nouvelles tentatives

Routage automatique vers le canal amont selon le nom du modèle, bascule automatique en cas d'échec

Intégration en trois étapes ​

  1. Pointez l’URL de base vers https://hub.lurus.cn/v1.

  2. Incluez Authorization: Bearer sk-your-api-key dans les en-têtes de requête (obtenir une clé API).

  3. Lancez une requête avec n’importe quel SDK OpenAI, sans modifier votre code métier. Voir Prise en charge des SDK ci-dessous.

URL de base ​

https://hub.lurus.cn/v1

Méthode d’authentification ​

Toutes les requêtes API doivent inclure la clé API dans l’en-tête :

http
Authorization: Bearer sk-your-api-key

L’authentification ne se limite pas à la clé API

Outre le Bearer Token, OIDC / OAuth2, PAT et JWT sont également pris en charge. Voir Détails de l’authentification.

Endpoints disponibles ​

Obtenir la liste des modèles

GET/v1/models获取模型列表
GET/v1beta/modelsGemini 格式获取

OpenAI格式(Chat)

POST/v1/chat/completions创建聊天对话

OpenAI格式(Responses)

POST/v1/responses创建响应 (OpenAI Responses API)
POST/v1/responses/compact压缩对话 (OpenAI Responses API)

图片生成

POST/v1/images/generations生成图像(qwen-image)
POST/v1/images/edits编辑图像(qwen-image-edit)

视频生成

POST/v1/videos创建视频
GET/v1/videos/{task_id}获取视频任务状态
GET/v1/videos/{task_id}/content获取视频内容
POST/kling/v1/videos/text2videoKling 文生视频
GET/kling/v1/videos/text2video/{task_id}获取 Kling 文生视频任务状态
POST/kling/v1/videos/image2videoKling 图生视频
GET/kling/v1/videos/image2video/{task_id}获取 Kling 图生视频任务状态
POST/jimeng/即梦视频生成
POST/v1/video/generations创建视频生成任务
GET/v1/video/generations/{task_id}获取视频生成任务状态

Claude格式(Messages)

POST/v1/messagesClaude 聊天

Gemini格式

POST/v1beta/models/{model}:generateContentGemini 图片(Nano Banana)
POST/v1/engines/{model}/embeddingsGemini 嵌入(Embeddings)

OpenAI格式(Embeddings)

POST/v1/embeddings创建文本嵌入

文本补全(Completions)

POST/v1/completions创建文本补全

OpenAI音频(Audio)

POST/v1/audio/transcriptions音频转录
POST/v1/audio/translations音频翻译
POST/v1/audio/speech文本转语音

重排序(Rerank)

POST/v1/rerank文档重排序

Moderations

POST/v1/moderations内容审核

Realtime

GET/v1/realtime实时 WebSocket 连接

Format des requêtes ​

Toutes les requêtes utilisent le format JSON :

http
POST /v1/chat/completions HTTP/1.1
Host: hub.lurus.cn
Content-Type: application/json
Authorization: Bearer sk-your-api-key

{
  "model": "deepseek-chat",
  "messages": [
    {"role": "user", "content": "Hello!"}
  ]
}

Format des réponses ​

Le type de chaque champ et son caractère obligatoire sont détaillés dans la Référence des structures de données / Schema (synchronisée automatiquement depuis la spécification OpenAPI, cohérente avec l’implémentation de la passerelle).

Réponse réussie ​

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "deepseek-chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 12,
    "total_tokens": 22
  }
}

Réponse d’erreur ​

json
{
  "error": {
    "code": "invalid_api_key",
    "message": "Invalid API key provided",
    "type": "authentication_error"
  }
}

Limites de débit ​

60RPM requêtes/minute
100,000TPM Token/minute
10Requêtes concurrentes maximum
Type de limiteValeur par défautDescription
RPM (requêtes/minute)60Nombre maximum de requêtes par minute
TPM (Token/minute)100,000Nombre maximum de Token par minute
Requêtes concurrentes10Nombre maximum de requêtes simultanées

Le dépassement des limites renvoie une erreur 429 Too Many Requests ; pour la gestion, voir Gestion des erreurs.

Prise en charge des SDK ​

Python (SDK OpenAI officiel) ​

bash
pip install openai
python
from openai import OpenAI

client = OpenAI(
    base_url="https://hub.lurus.cn/v1",
    api_key="sk-your-api-key"
)

Node.js ​

bash
npm install openai
javascript
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://hub.lurus.cn/v1',
  apiKey: 'sk-your-api-key'
});

Go ​

go
import "github.com/sashabaranov/go-openai"

config := openai.DefaultConfig("sk-your-api-key")
config.BaseURL = "https://hub.lurus.cn/v1"
client := openai.NewClientWithConfig(config)

cURL ​

bash
curl https://hub.lurus.cn/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{"model": "deepseek-chat", "messages": [{"role": "user", "content": "Hi"}]}'

Fonctionnalités spéciales ​

Capacités étendues de la passerelle

Réponse en streaming

Définissez stream: true pour activer les Server-Sent Events et recevoir le résultat token par token

Routage de modèles

Routage automatique vers le canal amont correspondant selon le nom du modèle, sans vous soucier de la configuration sous-jacente

Nouvelle tentative automatique

Bascule automatique vers un canal de secours en cas d'échec de la requête (si plusieurs sont configurés)

Réponse en streaming ​

Définissez stream: true pour activer la réponse en streaming via Server-Sent Events :

json
{
  "model": "deepseek-chat",
  "messages": [...],
  "stream": true
}

Pour le format complet des données de streaming et le traitement token par token, voir Chat Completions — Réponse en streaming.

Routage de modèles ​

Routage automatique vers le canal amont correspondant selon le nom du modèle, sans vous soucier de la configuration sous-jacente.

Nouvelle tentative automatique ​

Bascule automatique vers un canal de secours en cas d’échec de la requête (si plusieurs sont configurés).


Étape suivante

Powered by Lurus Technologies