NezhaGateNezhaGate

NezhaGate ofrece tanto una API compatible con OpenAI como una API de Anthropic, así que los SDK oficiales solo necesitan una nueva URL base y clave.

Dos URL base

ProtocoloBase URLPara
OpenAIhttps://nezhagate.com/v1Todos los modelos de chat, además de los endpoints de imagen y vídeo
Anthropichttps://nezhagate.com/anthropicLos modelos Claude (el SDK de Anthropic añade /v1/messages por su cuenta)

Los ejemplos leen la clave de la variable de entorno NEZHAGATE_API_KEY; nunca pongas una clave directamente en el código.

SDK de OpenAI

pip install openai
import os
from openai import OpenAI

client = OpenAI(base_url="https://nezhagate.com/v1", api_key=os.environ["NEZHAGATE_API_KEY"])
r = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Hello"}],
)
print(r.choices[0].message.content)

El SDK de OpenAI también lee las variables de entorno OPENAI_BASE_URL y OPENAI_API_KEY. client.responses.create(...) llama a la API Responses, que solo ofrece los modelos GPT.

SDK de Anthropic

pip install anthropic
import os
from anthropic import Anthropic

client = Anthropic(base_url="https://nezhagate.com/anthropic", api_key=os.environ["NEZHAGATE_API_KEY"])
m = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)
print(next(b.text for b in m.content if b.type == "text"))

Apunta base_url a /anthropic, sin /v1. Las variables de entorno ANTHROPIC_BASE_URL y ANTHROPIC_API_KEY también funcionan.

LangChain

pip install langchain-openai
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-5.5",
    base_url="https://nezhagate.com/v1",
    api_key=os.environ["NEZHAGATE_API_KEY"],
    use_responses_api=False,
    stream_usage=True,
)
print(llm.invoke("Hello").content)

LangChain cambia por su cuenta a la API Responses algunos modelos GPT, o las peticiones con ciertos parámetros; use_responses_api=False (useResponsesApi: false en JavaScript) lo mantiene en el endpoint de chat. Con una base_url personalizada, el streaming no incluye información de uso a menos que pongas stream_usage=True.

Vercel AI SDK

npm install ai @ai-sdk/openai
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const gw = createOpenAI({ baseURL: "https://nezhagate.com/v1", apiKey: process.env.NEZHAGATE_API_KEY });
const { text } = await generateText({ model: gw.chat("gpt-5.5"), prompt: "Hello" });
console.log(text);

Desde AI SDK 5, gw("model-id") usa la API Responses; gw.chat("model-id") usa el endpoint de chat y funciona con todos los modelos. Con @ai-sdk/anthropic, pon baseURL en https://nezhagate.com/anthropic/v1 (con /v1).

Errores habituales

404 from the OpenAI SDK

A base_url le falta /v1; debería ser https://nezhagate.com/v1.

404 from the Anthropic SDK

base_url termina en /v1, así que las peticiones van a /anthropic/v1/v1/messages. Termínala en /anthropic.

A non-GPT model fails through a framework

Puede que el framework haya cambiado a la API Responses, que solo ofrece los modelos GPT: pon use_responses_api=False en LangChain, o usa gw.chat(...) en el Vercel AI SDK.

Más integraciones