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.
| Elemento | Valor |
|---|---|
| Base URL | https://api.essevin.com/v1 |
| Variable de entorno de la clave | ESSEVIN_OPENAI_API_KEY |
| Modelos | Modelos GPT y GPT Image |
| ID del modelo | Utilice 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 openaiEnví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
)