Passer au contenu principal

Aperçu

LemonData expose plusieurs formats d’API afin que les outils de codage courants, les SDK et les frameworks puissent s’intégrer avec un minimum de code de liaison. Cette page est volontairement plus restreinte qu’une matrice marketing :
  • Supported signifie que nous documentons un chemin d’installation concret et que LemonData expose la forme du protocole attendue par ce chemin.
  • Strong native path signifie que le dépôt dispose également d’un adaptateur direct ou de preuves de format de requête pour cette famille de protocoles.
  • Best-effort signifie que l’intégration peut fonctionner, mais que le client en amont ne considère pas ce flux de passerelle personnalisé comme un contrat stable.
Les champs non pris en charge ne sont pas gérés de manière uniforme. Sur les routes de compatibilité, certains champs sont ignorés ou normalisés. Sur /v1/responses, les champs non pris en charge peuvent renvoyer des erreurs explicites 400 ou 503 lorsque cette route ne peut pas garantir le comportement demandé.

Formats d’API pris en charge

Point de terminaisonFormatCas d’utilisation
/v1/chat/completionsOpenAI ChatCompatibilité universelle
/v1/responsesOpenAI ResponsesConversations avec état
/v1/messagesAnthropic MessagesFonctionnalités natives de Claude
/v1beta/models/:model:generateContentGoogle GeminiFonctionnalités natives de Gemini

Compatibilité IDE & CLI

Chemins d’outils documentés

OutilNiveau de prise en chargeFormatRemarques
CursorSupported with limitsOpenAI-compatibleFonctionne pour les flux de chat/éditeur standard BYOK, pas comme remplacement des fonctionnalités gérées par Cursor comme Tab Completion
Claude Code CLIStrong native pathAnthropicRoute native /v1/messages avec couverture d’adaptateur pour thinking et tool_choice
Codex CLISupported with model/path limitsOpenAI ResponsesTraitez /v1/responses comme un chemin avancé pour les flux de travail spécifiques à Codex ; certains champs réservés à Responses ne sont pas garantis sur chaque modèle et chaque route
Gemini CLIBest-effort / experimentalGeminiLe flux avec une URL de base LemonData personnalisée n’est pas un contrat amont stable
OpenCodeSupportedOpenAI-compatibleUtilisez par défaut un fournisseur compatible OpenAI ; passez à un fournisseur basé sur Responses uniquement lorsque vous en avez explicitement besoin
D’autres éditeurs et outils d’agent compatibles OpenAI fonctionnent souvent avec le même motif d’URL de base, mais ce dépôt ne maintient pas actuellement de couverture de régression spécifique aux outils pour Windsurf, Aider, Continue.dev, Cline/Roo Code, GitHub Copilot et clients similaires.

Exemples de configuration

Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor utilise en interne le format d’outil de type Anthropic. LemonData prend en charge les deux :
  • OpenAI format: { type: "function", function: { name, parameters } }
  • Anthropic format: { name, input_schema } (no type field)

Compatibilité SDK

Chemins SDK & Framework documentés

SDK / FrameworkLangageNiveau de prise en chargeRemarques
OpenAI SDKPython/JS/GoSupported core pathChat Completions et Embeddings sont le chemin par défaut documenté ; certains champs réservés à Responses ne sont pas garantis sur chaque modèle et chaque route
Anthropic SDKPython/JSStrong native pathRoute Messages native avec preuves directes pour les outils, thinking, et le cache de prompt
Vercel AI SDKTypeScriptRecommended integration patternPréférez @ai-sdk/openai-compatible ; utilisez @ai-sdk/openai uniquement lorsque vous souhaitez explicitement un comportement natif Responses
LangChainPython/JSSupported standard surfacesChatOpenAI et OpenAIEmbeddings sont le périmètre prévu ; les extensions natives au fournisseur sont hors périmètre
LlamaIndexPythonSupported via OpenAILikeUtilisez OpenAILike, pas les classes OpenAI intégrées, pour les passerelles tierces comme LemonData
Dify-Supported with scope limitsLe fournisseur OpenAI et les flux orientés chat-completions sont le chemin prévu ; pas adapté aux Responses spécifiques à Codex ou au comportement WebSocket

Paramètres Chat Completions

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle (obligatoire)
messagesarrayMessages de la conversation (obligatoire)
max_tokensintegerNombre maximal de tokens de sortie
temperaturenumberTempérature d’échantillonnage (0-2)
top_pnumberÉchantillonnage Nucleus (0-1)
streambooleanActiver le streaming

Appel d’outil

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

Options de choix d’outil

FormatExampleDescription
String"auto", "none", "required"Sélection simple
OpenAI Object{ "type": "function", "function": { "name": "fn" } }Forcer une fonction spécifique
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Format natif Anthropic

Paramètres avancés

ParamètreTypeDescription
stream_optionsobject{ include_usage: true } pour les comptes de tokens
reasoning_effortstring"low", "medium", "high" pour les modèles reasoning-enabled GPT-5
service_tierstring"auto" ou "default"
seedintegerSorties déterministes
logprobsbooleanRetourner les log probas
top_logprobsintegerNombre de top logprobs (0-20)
logit_biasobjectCarte de biais de token (-100 à 100)
frequency_penaltynumberPénalité de répétition (-2 à 2)
presence_penaltynumberPénalité de sujet (-2 à 2)
stopstring/arraySéquences d’arrêt
nintegerNombre de complétions (1-128)
userstringIdentifiant utilisateur pour le suivi

Fonctionnalités avancées OpenAI

ParamètreTypeDescription
modalitiesarray["text", "audio"] pour le multimodal
audioobjectConfiguration de sortie audio (voice, format)
predictionobjectSortie prédite pour une complétion plus rapide
metadataobjectPaires clé-valeur pour le suivi
storebooleanStocker pour récupération ultérieure

Options spécifiques au fournisseur

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Paramètres Anthropic Messages

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle
messagesarrayMessages de la conversation
max_tokensintegerSortie maximale (jusqu’à 128000)
systemstring/arrayPrompt système
streambooleanActiver le streaming

Appel d’outil

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

Extended Thinking

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Paramètres de l’API Responses

Paramètres principaux

ParamètreTypeDescription
modelstringIdentifiant du modèle
inputstring/arrayContenu d’entrée
instructionsstringInstructions système
max_output_tokensintegerNombre maximal de tokens de sortie
previous_response_idstringPoursuivre la conversation

Paramètres avancés

ParamètreTypeDescription
truncation_strategystring"auto" ou "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringPour les modèles de reasoning
service_tierstringNiveau de priorité

Format d’outil

Prend en charge les formats d’outils OpenAI et Anthropic :
// OpenAI format
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic format (Cursor compatibility)
{ "name": "fn", "input_schema": {...} }

Paramètres API Gemini

Paramètres principaux

ParamètreTypeDescription
contentsarrayContenu de la conversation
systemInstructionobjectPrompt système
generationConfigobjectParamètres de génération

Outils

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Search the web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

Paramètres de sécurité

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

Paramètres additionnels

ParamètreTypeDescription
cachedContentstringRéférence de contenu mis en cache
responseMimeTypestring"text/plain" ou "application/json"
responseSchemaobjectSchéma JSON pour une sortie structurée

Streaming

Tous les endpoints prennent en charge le streaming Server-Sent Events (SSE) :
# Chat Completions
curl https://api.lemondata.cc/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# With usage tracking
-d '{"...", "stream_options": {"include_usage": true}}'

Gestion des erreurs

LemonData renvoie des réponses d’erreur compatibles OpenAI :
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Voir Guide de gestion des erreurs pour les détails.

Bonnes pratiques

Tous les schémas utilisent .passthrough() - les paramètres inconnus sont transmis aux fournisseurs en amont.
Activez stream_options.include_usage pour des comptes de tokens précis dans les réponses en streaming.
Adaptez-vous au format attendu par votre SDK. LemonData accepte à la fois les formats OpenAI et Anthropic.