OpenAI SDK

Llame a Essevin con el SDK de OpenAI para Python o Node.js.

Las aplicaciones que ya usan el SDK de OpenAI solo necesitan cambiar el Base URL, la clave del plan y el ID del modelo. Mantenga el framework y el manejo de errores actuales de la aplicación.

ElementoValor
Base URLhttps://api.essevin.com/v1
Variable de entorno de la claveESSEVIN_OPENAI_API_KEY
ModelosModelos GPT y GPT Image
ID del modeloUtilice un ID devuelto por GET /v1/models para la clave seleccionada

Mantenga las claves fuera del código fuente

Inyecte ESSEVIN_OPENAI_API_KEY mediante su plataforma de despliegue, un archivo .env local o el entorno del sistema. Nunca incluya .env ni una clave real en un commit de Git.

Instale y envíe una solicitud mínima

Instale el SDK:

python -m pip install openai

Envíe una solicitud:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.essevin.com/v1",
    api_key=os.environ["ESSEVIN_OPENAI_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-6-sol",
    messages=[{"role": "user", "content": "Hola"}],
)
print(resp.choices[0].message.content)

Comience con el prompt "Responda únicamente con ok." Agregue stream: true solo cuando la aplicación realmente use streaming, y luego verifique que los eventos SSE lleguen de forma incremental.

Transmita la salida y obtenga el consumo

Al pasar stream_options.include_usage, el último evento trae choices vacío y su campo usage contiene el consumo de tokens de la solicitud.

stream = client.chat.completions.create(
    model="gpt-6-sol",
    messages=[{"role": "user", "content": "Descríbete en tres frases"}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:  # Último evento: choices vacío, solo trae usage
        print()
        print(chunk.usage)

Llamadas a herramientas

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Consultar el clima de una ciudad",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]
messages = [{"role": "user", "content": "¿Cómo está el clima hoy en Shanghái?"}]

resp = client.chat.completions.create(model="gpt-6-sol", messages=messages, tools=tools)
msg = resp.choices[0].message
if msg.tool_calls:
    call = msg.tool_calls[0]
    print(call.function.name, call.function.arguments)
    # Ejecute la herramienta y devuelva el resultado; tool_call_id debe coincidir con el call.id anterior
    messages += [msg, {"role": "tool", "tool_call_id": call.id, "content": "Soleado, 26°C"}]
    resp = client.chat.completions.create(model="gpt-6-sol", messages=messages, tools=tools)
print(resp.choices[0].message.content)

Tiempos de espera y reintentos

openai-python usa por defecto un tiempo de espera de lectura de 600 segundos y 2 reintentos automáticos. Use streaming para salidas largas;

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.essevin.com/v1",
    api_key=os.environ["ESSEVIN_OPENAI_API_KEY"],
    timeout=600,    # segundos; para salidas largas prefiera streaming
    max_retries=2,  # reintentos automáticos ante errores de conexión, 429 y 5xx
)

En esta página