Saltar al contenido principal

Descripción general

LemonData admite tres formatos de API nativos con una sola clave API. Elige el formato que mejor se adapte a tu caso de uso: no se necesitan cambios de configuración.

Formato OpenAI

/v1/chat/completions Formato estándar, la mayor compatibilidad

Formato Anthropic

/v1/messages Razonamiento extendido, funciones nativas de Claude

Formato Gemini

/v1beta/models/:model:generateContent Integración con el ecosistema de Google

¿Por qué multi-formato?

BenefitDescription
No SDK switchingUsa cualquier modelo con tu SDK preferido
Native featuresAccede a capacidades específicas del formato
Easy migrationCambia desde las APIs oficiales con solo modificar la URL base
Single billingUna cuenta, una clave API, todos los formatos

Comparación de formatos

FeatureOpenAIAnthropicGemini
Endpoint/v1/chat/completions/v1/messages/v1beta/models/:model:generateContent
Auth HeaderAuthorization: Bearerx-api-keyAuthorization: Bearer
System PromptEn el arreglo de messagesCampo separado systemEn systemInstruction
Extended Thinking
Streaming✅ SSE✅ SSE✅ SSE
Tool Calling
Vision

Formato OpenAI

El formato más compatible y el punto de partida predeterminado para la mayoría de las nuevas integraciones. Funciona con el conjunto más amplio de modelos de LemonData.
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc/v1"
)

# Works with ANY model
response = client.chat.completions.create(
    model="claude-sonnet-4-6",  # Claude via OpenAI format
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)
Ideal para:
  • Uso general
  • Integraciones existentes con OpenAI SDK
  • Máxima compatibilidad

Formato Anthropic

API Messages nativa de Anthropic. Requerido para funciones específicas de Claude, como el razonamiento extendido.
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc"  # No /v1 suffix!
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="You are a helpful assistant.",  # Separate system field
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

Razonamiento extendido (Claude Opus 4.6)

Solo disponible en el formato Anthropic:
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this complex problem..."}]
)

# Access thinking process
for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Answer: {block.text}")
Ideal para:
  • Funciones específicas de Claude
  • Modo de razonamiento extendido
  • Usuarios del SDK nativo de Anthropic

Formato Gemini

Formato nativo de la API Gemini de Google para integración con el ecosistema de Google.
curl "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Authorization: Bearer sk-your-lemondata-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "Hello!"}]
    }],
    "systemInstruction": {
      "parts": [{"text": "You are a helpful assistant."}]
    }
  }'

Transmisión

curl "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "Authorization: Bearer sk-your-lemondata-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Write a story"}]}]
  }'
Ideal para:
  • Integraciones con Google Cloud
  • Código existente del SDK de Gemini
  • Funciones nativas de Gemini

Cómo elegir el formato correcto

Guías de migración

Desde la API oficial de OpenAI

# Before (OpenAI)
client = OpenAI(api_key="sk-openai-key")

# After (LemonData)
client = OpenAI(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc/v1"  # Add this line
)
# That's it! Same code works
¡Eso es todo! El mismo código funciona

Desde la API oficial de Anthropic

# Before (Anthropic)
client = Anthropic(api_key="sk-ant-key")

# After (LemonData)
client = Anthropic(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc"  # Add this line (no /v1!)
)

Desde Google AI Studio

# Before (Google)
import google.generativeai as genai
genai.configure(api_key="google-api-key")

# After (LemonData) - Use REST API
import requests

response = requests.post(
    "https://api.lemondata.cc/v1beta/models/gemini-2.5-flash:generateContent",
    headers={"Authorization": "Bearer sk-lemondata-key"},
    json={"contents": [{"parts": [{"text": "Hello"}]}]}
)

Compatibilidad entre modelos

La magia de LemonData: usa cualquier SDK con cualquier modelo. La pasarela gestiona automáticamente la conversión de formatos.

Cualquier SDK → Cualquier modelo

# Anthropic SDK with GPT-4o (auto-converts to OpenAI format)
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc"
)

response = client.messages.create(
    model="gpt-4o",  # ✅ Works! Auto-converted
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)

# Same SDK, different models - no code changes
response = client.messages.create(model="gemini-2.5-flash", ...)  # ✅ Works!
response = client.messages.create(model="deepseek-r1", ...)       # ✅ Works!

OpenAI SDK → Todos los modelos

from openai import OpenAI

client = OpenAI(base_url="https://api.lemondata.cc/v1", api_key="sk-...")

# All these work with the same SDK:
response = client.chat.completions.create(model="gpt-4o", ...)
response = client.chat.completions.create(model="claude-sonnet-4-6", ...)
response = client.chat.completions.create(model="gemini-2.5-flash", ...)

Comparación por plataforma

PlatformOpenAI FormatAnthropic FormatGemini FormatResponses API
LemonData✅ Todos los modelos✅ Todos los modelos✅ Todos los modelos✅ Todos los modelos
OpenRouter✅ Todos los modelos
Together AI✅ Todos los modelos
Fireworks✅ Todos los modelos
Aunque el uso entre formatos funciona para la mayoría de las funcionalidades, las funciones específicas de cada formato (como el razonamiento extendido de Anthropic) requieren el formato nativo.