Saltar para o conteúdo principal

Visão Geral

O LemonData suporta três formatos nativos de API com uma única chave de API. Escolha o formato que melhor se adapta ao seu caso de uso - sem necessidade de alterações de configuração.

Formato OpenAI

/v1/chat/completions Formato padrão, maior compatibilidade

Formato Anthropic

/v1/messages Raciocínio estendido, recursos nativos do Claude

Formato Gemini

/v1beta/models/:model:generateContent Integração com o ecossistema Google

Por que Multi-Formato?

BenefícioDescrição
Sem troca de SDKUse qualquer modelo com seu SDK preferido
Recursos nativosAcesse funcionalidades específicas de cada formato
Migração fácilMude das APIs oficiais apenas alterando a URL base
Faturamento únicoUma conta, uma chave de API, todos os formatos

Comparação de Formatos

RecursoOpenAIAnthropicGemini
Endpoint/v1/chat/completions/v1/messages/v1beta/models/:model:generateContent
Cabeçalho de AutenticaçãoAuthorization: Bearerx-api-keyAuthorization: Bearer
Prompt de SistemaNo array de mensagensCampo system separadoEm systemInstruction
Raciocínio Estendido
Streaming✅ SSE✅ SSE✅ SSE
Chamada de Ferramentas
Visão

Formato OpenAI

O formato com maior compatibilidade. Funciona com todos os modelos do 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-5",  # Claude via OpenAI format
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)
Ideal para:
  • Uso geral
  • Integrações existentes com o SDK da OpenAI
  • Compatibilidade máxima

Formato Anthropic

API de Mensagens nativa da Anthropic. Necessária para recursos específicos do Claude, como o raciocínio estendido.
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-5",
    max_tokens=1024,
    system="You are a helpful assistant.",  # Separate system field
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

Raciocínio Estendido (Claude Opus 4.5)

Disponível apenas no formato Anthropic:
message = client.messages.create(
    model="claude-opus-4-5",
    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:
  • Recursos específicos do Claude
  • Modo de raciocínio estendido
  • Usuários nativos do SDK da Anthropic

Formato Gemini

Formato nativo da API Google Gemini para integração com o ecossistema 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."}]
    }
  }'

Streaming

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:
  • Integrações com o Google Cloud
  • Código existente com o SDK do Gemini
  • Recursos nativos do Gemini

Escolhendo o Formato Certo

Guias de Migração

Da API Oficial da OpenAI

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

# Depois (LemonData)
client = OpenAI(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc/v1"  # Adicione esta linha
)
# Pronto! O mesmo código funciona

Da API Oficial da Anthropic

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

# Depois (LemonData)
client = Anthropic(
    api_key="sk-lemondata-key",
    base_url="https://api.lemondata.cc"  # Adicione esta linha (sem o /v1!)
)

Do Google AI Studio

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

# Depois (LemonData) - Use a API REST
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"}]}]}
)

Compatibilidade Entre Modelos

A mágica do LemonData: use qualquer SDK com qualquer modelo. O gateway lida automaticamente com a conversão de formato.

Qualquer SDK → Qualquer 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",  # ✅ Funciona! Convertido automaticamente
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)

# Mesmo SDK, modelos diferentes - sem alterações no código
response = client.messages.create(model="gemini-2.5-flash", ...)  # ✅ Funciona!
response = client.messages.create(model="deepseek-r1", ...)       # ✅ Funciona!

SDK da OpenAI → Todos os Modelos

from openai import OpenAI

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

# Todos estes funcionam com o mesmo SDK:
response = client.chat.completions.create(model="gpt-4o", ...)
response = client.chat.completions.create(model="claude-sonnet-4-5", ...)
response = client.chat.completions.create(model="gemini-2.5-flash", ...)

Comparação com a Indústria

PlataformaFormato OpenAIFormato AnthropicFormato GeminiAPI de Respostas
LemonData✅ Todos os modelos✅ Todos os modelos✅ Todos os modelos✅ Todos os modelos
OpenRouter✅ Todos os modelos
Together AI✅ Todos os modelos
Fireworks✅ Todos os modelos
Embora a compatibilidade entre formatos funcione para a maioria dos recursos, recursos específicos de um formato (como o raciocínio estendido da Anthropic) exigem o formato nativo.