Clydex

Documentation / Prise en main

Connectez votre application à Clydex.

Connectez-vous à Responses, configurez votre client et ajoutez des outils qui s'exécutent dans votre application.

Avant de commencer

  1. Créer et copier une clé dans Clés API. Gardez-le privé.
  2. Choisissez un modèle disponible dans Canaux et modèles. Utilisez son identifiant exact à la place de <MODEL_ID> ci-dessous.
  3. Ouvrez un guide ci-dessous. Remplacer <YOUR_CLYDEX_API_KEY> avec votre clé et enregistrez les fichiers.
URL de base Clydex
https://clydex.shop/v1

Voulez-vous que les paramètres soient renseignés pour vous ? Cliquez Utiliser la clé sur votre carte-clé, choisissez votre application et copiez ou téléchargez sa configuration.

Choisissez votre candidature

Codex CLI / App

Connectez Codex avec deux fichiers.

  1. Ouvrez ~/.codex dans votre gestionnaire de fichiers. Créez le dossier s'il est manquant.
  2. Enregistrez les paramètres sous config.toml. Placez les paramètres de niveau supérieur avant tout titre de [section] ; conservez vos autres paramètres.
  3. Enregistrez auth.json dans le même dossier, puis redémarrez Codex ou votre éditeur et démarrez une nouvelle discussion.
~/.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>"
}

Sauvegardez un auth.json existant avant de le remplacer. Ces paramètres s'appliquent également à l'extension IDE Codex.

OpenCode

Un fichier de configuration, puis choisissez Clydex dans OpenCode.

  1. Ouvrez ~/.config/opencode et créez opencode.json s'il n'existe pas.
  2. Collez cette configuration. Si vous disposez déjà d'une configuration, fusionnez-y les paramètres du fournisseur et du modèle Clydex.
  3. Redémarrez OpenCode. Exécutez /models et sélectionnez le modèle sous 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

Connectez Hermes depuis votre terminal.

  1. Ouvrez ~/.hermes/config.yaml. Créez le dossier et le fichier si nécessaire.
  2. Remplacez la section modèle par ces paramètres ; conservez le reste de votre configuration.
  3. Enregistrez le fichier, redémarrez Hermes et démarrez une nouvelle conversation.
~/.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

Ajoutez Clydex dans les paramètres Cherry Studio.

  1. Ouvrez Paramètres → Fournisseurs de modèles et ajoutez un fournisseur nommé Clydex.
  2. Choisissez OpenAI Responses comme type de point de terminaison. Collez l'adresse API et la clé ci-dessous.
  3. Ajoutez l'ID de modèle <MODEL_ID>, activez le fournisseur et sélectionnez ce modèle dans une nouvelle discussion.
Adresse API
https://clydex.shop/v1/
Clé API
<YOUR_CLYDEX_API_KEY>
ID du modèle
<MODEL_ID>

Désactivez la recherche sur le Web et les pièces jointes. Dans les anciennes versions, le type de fournisseur est appelé OpenAI-Response.

API / SDKs

Utilisez votre clé Clydex avec le SDK OpenAI Responses API.

  1. Choisissez Python, JavaScript ou l'exemple de terminal ci-dessous.
  2. Pour Python, exécutez pip install openai, puis python hello.py. Pour JavaScript, exécutez npm install openai, puis nœud hello.mjs.
URL de 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);
Borne
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
}'

Gardez les fichiers contenant votre clé privés. Exécutez des exemples de SDK sur votre ordinateur ou serveur, jamais dans le code d'un navigateur public.

Outils de fonction

Déclarer des fonctions dans tools. Le modèle renvoie un appel, votre application l'exécute et vous renvoyez un function_call_output avec le même call_id. L'exemple ci-dessous montre un aller-retour complet.

Exemple Python : utiliser une fonction locale

Utiliser le client de hello.py ci-dessus, remplacez sa requête par cet exemple. Il effectue jusqu'à deux requêtes de modèle et exécute une fonction d'horloge locale.

Appel de fonction et résultat
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)

Conservez les éléments de sortie renvoyés, y compris les éléments de raisonnement, lors de la construction du tour suivant. Validez les noms d'outils et les arguments dans votre application avant d'exécuter une fonction. Utilisation d'outils personnalisés custom_tool_call et custom_tool_call_output avec le même modèle d’appel/résultat.

Plus d'aide

Options de diffusion et de demande

Ensemble stream: true pour les réponses diffusées via HTTP. Les arguments d’appel d’outil peuvent arriver dans plusieurs événements ; assemblez l’appel complet avant de l’exécuter. L'utilisation finale arrive dans l'événement de réponse du terminal. Le transport WebSocket n’est pas disponible.

Ensemble max_output_tokens pour la longueur de sortie demandée. Il ne s’agit pas d’un plafond de dépenses garanti. Les options de raisonnement, la verbosité du texte et les formats de texte structuré sont acceptés lorsque le modèle sélectionné les prend en charge. Désactivez le stockage et envoyez l'historique complet des conversations à chaque tour.

Une demande n'a pas fonctionné
  • Vérifiez que la clé est active et que son solde est crédité.
  • Utilisez un ID de modèle disponible et le point de terminaison correct pour ce modèle.
  • Pour une erreur de champ non pris en charge, supprimez l'option nommée dans l'erreur. Si votre application l'envoie toujours, utilisez le Exemple d'API.
  • Après un délai d'attente, vérifiez historique des demandes avant de réessayer.
Trouvez votre consommation et vos frais

Ouvert historique des demandes pour voir l'état de la demande, les jetons et le coût. Les demandes en attente sont toujours en cours de vérification. Voir Statistiques pour les totaux, ou Modèles et tarifs pour les tarifs.