Clydex

Documentación / Primeros pasos

Conecte su aplicación a Clydex.

Conéctese con Responses, configure su cliente y agregue herramientas que se ejecuten en su aplicación.

Antes de empezar

  1. Crear y copiar una clave en Claves API. Mantenlo en privado.
  2. Elige un modelo disponible en Canales y modelos. Utilice su identificación exacta en lugar de <MODEL_ID> abajo.
  3. Abra una guía a continuación. Reemplazar <YOUR_CLYDEX_API_KEY> con su clave y guarde los archivos.
URL base Clydex
https://clydex.shop/v1

¿Quieres completar la configuración por ti? Haga clic Usar clave en su tarjeta de acceso, elija su aplicación y copie o descargue su configuración.

Elige tu aplicación

Codex CLI / App

Conecte Codex con dos archivos.

  1. Abra ~/.codex en su administrador de archivos. Cree la carpeta si falta.
  2. Guarde la configuración como config.toml. Coloque la configuración de nivel superior antes de cualquier título de [sección]; mantenga sus otras configuraciones.
  3. Guarde auth.json en la misma carpeta, luego reinicie Codex o su editor e inicie un nuevo chat.
~/.codex/config.toml
model_provider = "clydex"
model = "<MODEL_ID>"
disable_response_storage = true
cli_auth_credentials_store = "file"
web_search = "disabled"

[model_providers.clydex]
name = "Clydex"
base_url = "https://clydex.shop/v1"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false
request_max_retries = 0
stream_max_retries = 0
~/.codex/auth.json
{
  "OPENAI_API_KEY": "<YOUR_CLYDEX_API_KEY>"
}

Haga una copia de seguridad de un auth.json existente antes de reemplazarlo. Estas configuraciones también se aplican a la extensión IDE Codex.

OpenCode

Un archivo de configuración, luego elija Clydex en OpenCode.

  1. Abra ~/.config/opencode y cree opencode.json si no existe.
  2. Pegue esta configuración. Si ya tiene una configuración, combine el proveedor Clydex y la configuración del modelo en ella.
  3. Reinicie OpenCode. Ejecute /models y seleccione el modelo en Clydex.
~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "clydex/<MODEL_ID>",
  "small_model": "clydex/<MODEL_ID>",
  "provider": {
    "clydex": {
      "npm": "@ai-sdk/openai",
      "name": "Clydex",
      "options": {
        "baseURL": "https://clydex.shop/v1",
        "apiKey": "<YOUR_CLYDEX_API_KEY>"
      },
      "models": {
        "<MODEL_ID>": {
          "name": "<MODEL_ID>",
          "options": {
            "store": false
          }
        }
      }
    }
  }
}
Hermes

Conecta Hermes desde tu terminal.

  1. Abra ~/.hermes/config.yaml. Cree la carpeta y el archivo si es necesario.
  2. Reemplace la sección del modelo con esta configuración; mantenga el resto de su configuración.
  3. Guarde el archivo, reinicie Hermes y comience una nueva conversación.
~/.hermes/config.yaml
model:
  provider: custom
  default: "<MODEL_ID>"
  base_url: "https://clydex.shop/v1"
  api_mode: codex_responses
  api_key: "<YOUR_CLYDEX_API_KEY>"
Cherry Studio

Agregue Clydex en la configuración de Cherry Studio.

  1. Abra Configuración → Proveedores de modelos y agregue un proveedor llamado Clydex.
  2. Elija OpenAI Responses como tipo de punto final. Pegue la dirección API y la clave a continuación.
  3. Agregue el ID del modelo <MODEL_ID>, habilite el proveedor y seleccione ese modelo en un nuevo chat.
dirección API
https://clydex.shop/v1/
clave API
<YOUR_CLYDEX_API_KEY>
ID del modelo
<MODEL_ID>

Mantenga desactivadas la búsqueda web y los archivos adjuntos. En versiones anteriores, el tipo de proveedor se llama OpenAI-Response.

API / SDKs

Utilice su clave Clydex con el SDK OpenAI Responses API.

  1. Elija Python, JavaScript o el ejemplo de terminal a continuación.
  2. Para Python, ejecute pip install openai y luego python hello.py. Para JavaScript, ejecute npm install openai y luego el nodo hello.mjs.
URL base
https://clydex.shop/v1
hello.py
from openai import OpenAI

client = OpenAI(
    api_key="<YOUR_CLYDEX_API_KEY>",
    base_url="https://clydex.shop/v1",
    max_retries=0,
)

response = client.responses.create(
    model="<MODEL_ID>",
    input="Say hello in one sentence.",
    max_output_tokens=128,
    store=False,
)
print(response.output_text)
hello.mjs
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "<YOUR_CLYDEX_API_KEY>",
  baseURL: "https://clydex.shop/v1",
  maxRetries: 0,
});

const response = await client.responses.create({
  model: "<MODEL_ID>",
  input: "Say hello in one sentence.",
  max_output_tokens: 128,
  store: false,
});
console.log(response.output_text);
terminales
curl 'https://clydex.shop/v1/responses' \
  -H 'Authorization: Bearer <YOUR_CLYDEX_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "<MODEL_ID>",
  "input": "Say hello in one sentence.",
  "max_output_tokens": 128,
  "store": false
}'

Mantenga privados los archivos que contienen su clave. Ejecute ejemplos de SDK en su computadora o servidor, nunca en código de navegador público.

Herramientas de función

Declarar funciones en tools. El modelo devuelve una llamada, su aplicación la ejecuta y usted devuelve un function_call_output con el mismo call_id. El siguiente ejemplo muestra un viaje de ida y vuelta completo.

Ejemplo de Python: use una función local

Usando el cliente de hello.py arriba, reemplace su solicitud con este ejemplo. Realiza hasta dos solicitudes de modelo y ejecuta una función de reloj local.

Llamada a función y resultado
import json
import uuid
from datetime import datetime, timezone

history = [{"role": "user", "content": "What time is it in UTC?"}]
tools = [{
    "type": "function",
    "name": "get_utc_time",
    "description": "Return the current UTC time.",
    "parameters": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": False,
    },
    "strict": True,
}]

first = client.responses.create(
    model="<MODEL_ID>", input=history, tools=tools,
    tool_choice={"type": "function", "name": "get_utc_time"},
    parallel_tool_calls=False,
    include=["reasoning.encrypted_content"],
    max_output_tokens=256, store=False,
    extra_headers={"Idempotency-Key": str(uuid.uuid4())},
)
history.extend(item.model_dump(exclude_none=True) for item in first.output)
calls = [item for item in first.output if item.type == "function_call"]
if len(calls) != 1 or calls[0].name != "get_utc_time":
    raise RuntimeError("Expected one get_utc_time call; check the response.")
call = calls[0]
if json.loads(call.arguments) != {}:
    raise RuntimeError("Unexpected function arguments.")
history.append({
    "type": "function_call_output",
    "call_id": call.call_id,
    "output": json.dumps({"utc": datetime.now(timezone.utc).isoformat()}),
})
final = client.responses.create(
    model="<MODEL_ID>", input=history, tools=tools, tool_choice="none",
    include=["reasoning.encrypted_content"],
    max_output_tokens=256, store=False,
    extra_headers={"Idempotency-Key": str(uuid.uuid4())},
)
print(final.output_text)

Conserve los elementos de salida devueltos, incluidos los elementos de razonamiento, al construir el siguiente turno. Valide los nombres y argumentos de las herramientas en su aplicación antes de ejecutar una función. Uso de herramientas personalizadas custom_tool_call y custom_tool_call_output con el mismo patrón de llamada/resultado.

Más ayuda

Opciones de transmisión y solicitud

conjunto stream: true para respuestas transmitidas a través de HTTP. Los argumentos de llamada de herramienta pueden llegar en varios eventos; ensamblar la llamada completa antes de ejecutarla. El uso final llega en el evento de respuesta del terminal. El transporte WebSocket no está disponible.

conjunto max_output_tokens para la longitud de salida solicitada. No es un límite de gasto garantizado. Se aceptan opciones de razonamiento, verbosidad del texto y formatos de texto estructurado cuando el modelo seleccionado los admita. Mantenga el almacenamiento desactivado y envíe el historial de conversaciones completo en cada turno.

Una solicitud no funcionó
  • Verifique que la clave esté activa y su saldo tenga crédito.
  • Utilice una ID de modelo disponible y el punto final correcto para ese modelo.
  • Para un error de campo no admitido, elimine la opción mencionada en el error. Si tu aplicación siempre lo envía, usa el Ejemplo de API.
  • Después de un tiempo de espera, verifique historial de solicitudes antes de volver a intentarlo.
Encuentre su uso y cargos

Abierto historial de solicitudes para ver el estado de la solicitud, los tokens y el costo. Las solicitudes pendientes aún se están revisando. Ver Estadísticas para totales, o Modelos y precios para tarifas.