Passer au contenu principal

Présentation

L’API LemonData est conçue pour une compatibilité immédiate (drop-in) avec tous les principaux outils de développement IA. Ce guide documente les paramètres pris en charge et les intégrations vérifiées.
Tous les paramètres sont validés mais transmis aux fournisseurs en amont. Les paramètres non pris en charge pour des modèles spécifiques sont ignorés silencieusement, garantissant une compatibilité maximale.

Formats d’API pris en charge

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

Compatibilité IDE & CLI

Outils vérifiés

OutilStatutFormatNotes
Cursor✅ ComplèteOpenAIFormat d’outil Anthropic pris en charge
Claude Code CLI✅ ComplèteAnthropicRéflexion étendue (extended thinking), tool_choice
Windsurf✅ ComplèteOpenAIFormat OpenAI standard
Aider✅ ComplèteOpenAITous les modèles pris en charge
Continue.dev✅ ComplèteOpenAI/AnthropicPrise en charge du double format
OpenCode✅ ComplèteOpenAIPrise en charge multi-fournisseurs
Cline/Roo Code✅ ComplèteOpenAIVia le format OpenRouter
GitHub Copilot✅ ComplèteOpenAIFormat standard
Codex CLI✅ ComplèteOpenAIAPI OpenAI Responses
Gemini CLI✅ ComplèteGeminiFormat Gemini natif

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 style Anthropic. LemonData prend en charge les deux :
  • Format OpenAI : { type: "function", function: { name, parameters } }
  • Format Anthropic : { name, input_schema } (pas de champ type)

Compatibilité SDK

SDK vérifiés

SDKLangageStatutNotes
OpenAI SDKPython/JS/Go✅ ComplèteTous les paramètres pris en charge
Anthropic SDKPython/JS✅ ComplèteRéflexion étendue (extended thinking), outils
Vercel AI SDKTypeScript✅ ComplètestreamText, generateObject
LangChainPython/JS✅ ComplèteChatOpenAI, bind_tools
LlamaIndexPython✅ ComplèteCompatible OpenAI
Dify-✅ ComplèteFormat OpenAI

Paramètres Chat Completions

Paramètres de base

ParamètreTypeDescription
modelstringIdentifiant du modèle (requis)
messagesarrayMessages de la conversation (requis)
max_tokensintegerNombre maximum de tokens en sortie
temperaturenumberTempérature d’échantillonnage (0-2)
top_pnumberÉchantillonnage nucléaire (0-1)
streambooleanActiver le streaming

Appel d’outils (Tool Calling)

{
  "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 (Tool Choice)

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

Paramètres avancés

ParamètreTypeDescription
stream_optionsobject{ include_usage: true } pour le décompte des tokens
reasoning_effortstring"low", "medium", "high" pour les modèles o1/o3
service_tierstring"auto" ou "default"
seedintegerSorties déterministes
logprobsbooleanRetourner les probabilités logarithmiques (logprobs)
top_logprobsintegerNombre de logprobs supérieures (0-20)
logit_biasobjectCarte de biais de tokens (-100 à 100)
frequency_penaltynumberPénalité de répétition (-2 à 2)
presence_penaltynumberPénalité de présence (-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 la sortie audio (voix, format)
predictionobjectSortie prédite pour une complétion plus rapide
metadataobjectPaires clé-valeur pour le suivi
storebooleanStocker pour une récupération ultérieure

Options spécifiques aux fournisseurs

{
  "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 de base

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

Appel d’outils (Tool Calling)

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

Réflexion étendue (Extended Thinking)

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

Paramètres de l’API Responses

Paramètres de base

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

Paramètres avancés

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

Format d’outil

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

// Format Anthropic (compatibilité Cursor)
{ "name": "fn", "input_schema": {...} }

Paramètres de l’API Gemini

Paramètres de base

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 supplémentaires

ParamètreTypeDescription
cachedContentstringRéférence au 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}'

# Avec suivi de l'utilisation
-d '{"...", "stream_options": {"include_usage": true}}'

Gestion des erreurs

LemonData renvoie des réponses d’erreur compatibles avec OpenAI :
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Consultez le Guide de gestion des erreurs pour plus de 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 obtenir un décompte précis des tokens dans les réponses en streaming.
Faites correspondre le format attendu par votre SDK. LemonData accepte les formats OpenAI et Anthropic.