Examinamos cada endpoint, parâmetro e caso extremo em nossa camada de compatibilidade OpenAI — incluindo onde divergimos intencionalmente.
Muitos gateways afirmam ser compatíveis com OpenAI e, em seguida, eliminam silenciosamente metade da área de superfície da qual o utilizador depende. Aqui está exatamente o que implementamos, o que estendemos e onde divergimos deliberadamente.
Totalmente compatível
- /v1/chat/completions incluindo streaming, ferramentas, tool_choice e resultados estruturados
- /v1/embeddings com lote
- /v1/images/gerações e edições
- /v1/audio/transcrições, traduções e fala
- /v1/models com IDs qualificados pelo provedor
O interruptor de uma linha
from openai import OpenAI
client = OpenAI(
base_url="https://api.starsg.ai/v1",
api_key=STARSG_API_KEY,
)
Onde divergimos
Três diferenças deliberadas. Primeiro, os IDs de modelo são qualificados pelo provedor, portanto o mesmo nome nunca significa duas coisas. Em segundo lugar, os cabeçalhos de limite de taxa informam o limite do gateway em pool, não o do fornecedor upstream. Terceiro, retornamos um bloco extra de amlink em cada resposta que contém o modelo realmente servido, o status do cache e se ocorreu um failover.
Qualquer coisa que possa mudar silenciosamente o significado de um campo, nós não fazemos. As extensões vão em extra_body na entrada e em um bloco com namespace na saída.
Parâmetros não suportados são rejeitados com 400 em vez de ignorados. Eliminar logit_bias silenciosamente é como o utilizador acaba depurando uma regressão de qualidade por uma semana.