Документация / Начало работы
Подключите свое приложение к Clydex.
Подключитесь к Responses, настройте свой клиент и добавьте инструменты, которые работают в вашем приложении.
Прежде чем начать
- Создайте и скопируйте ключ в API-ключи. Держите это в тайне.
- Выберите доступную модель в Каналы и модели. Используйте его точный идентификатор вместо
<MODEL_ID>ниже. - Откройте руководство ниже. Заменить
<YOUR_CLYDEX_API_KEY>с вашим ключом и сохраните файлы.
https://clydex.shop/v1Хотите, чтобы настройки были заполнены за вас? Нажмите Использовать ключ на карте-ключе, выберите приложение и скопируйте или загрузите его конфигурацию.
Выберите свое приложение
Codex CLI / App
Соедините Codex с двумя файлами.
- Откройте ~/.codex в файловом менеджере. Создайте папку, если она отсутствует.
- Сохраните настройки как config.toml. Поместите настройки верхнего уровня перед любыми заголовками [разделов]; сохраните остальные настройки.
- Сохраните auth.json в той же папке, затем перезапустите Codex или ваш редактор и начните новый чат.
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{
"OPENAI_API_KEY": "<YOUR_CLYDEX_API_KEY>"
}Создайте резервную копию существующего auth.json перед его заменой. Эти настройки также применимы к расширению IDE Codex.
OpenCode
Один файл конфигурации, затем выберите Clydex в OpenCode.
- Откройте ~/.config/opencode и создайте opencode.json, если он не существует.
- Вставьте эту конфигурацию. Если у вас уже есть конфиг, объедините в него настройки провайдера Clydex и модели.
- Перезапустите OpenCode. Запустите /models и выберите модель в разделе Clydex.
{
"$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
Подключите Hermes со своего терминала.
- Откройте ~/.hermes/config.yaml. При необходимости создайте папку и файл.
- Замените раздел модели этими настройками; сохраните остальную часть вашей конфигурации.
- Сохраните файл, перезапустите Hermes и начните новый разговор.
model:
provider: custom
default: "<MODEL_ID>"
base_url: "https://clydex.shop/v1"
api_mode: codex_responses
api_key: "<YOUR_CLYDEX_API_KEY>"Cherry Studio
Добавьте Clydex в настройки Cherry Studio.
- Откройте «Настройки» → «Поставщики моделей» и добавьте поставщика с именем Clydex.
- Выберите OpenAI Responses в качестве типа конечной точки. Вставьте адрес API и ключ ниже.
- Добавьте идентификатор модели <MODEL_ID>, включите поставщика и выберите эту модель в новом чате.
https://clydex.shop/v1/<YOUR_CLYDEX_API_KEY><MODEL_ID>Отключите веб-поиск и вложения. В более старых версиях тип провайдера называется OpenAI-Response.
API / SDKs
Используйте ключ Clydex с OpenAI SDK Responses API.
- Выберите Python, JavaScript или пример терминала ниже.
- Для Python запустите pip install openai, затем python hello.py. Для JavaScript запустите npm install openai, затем node hello.mjs.
https://clydex.shop/v1from 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)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);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
}'Храните файлы, содержащие ваш ключ, в секрете. Запускайте примеры SDK на своем компьютере или сервере, а не в общедоступном коде браузера.
Функциональные инструменты
Объявляйте функции в tools. Модель возвращает вызов, ваше приложение выполняет его, а вы отправляете обратно function_call_output с тем же самым call_id. Пример ниже показывает полный цикл вызова.
Пример Python: используйте локальную функцию
Использование клиента от hello.py выше, замените его запрос этим примером. Он делает до двух запросов модели и запускает функцию локальных часов.
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)Сохраните возвращенные выходные элементы, включая элементы рассуждений, при построении следующего хода. Проверьте имена инструментов и аргументы в своем приложении перед выполнением функции. Использование пользовательских инструментов custom_tool_call и custom_tool_call_output с тем же шаблоном вызова/результата.
Дополнительная помощь
Параметры потоковой передачи и запроса
Установить stream: true для потоковой передачи ответов по HTTP. Аргументы вызова инструмента могут поступать в нескольких событиях; собрать полный вызов перед его выполнением. Окончательное использование происходит в событии ответа терминала. Транспорт WebSocket недоступен.
Установить max_output_tokens для запрошенной вами длины вывода. Это не гарантированный предел расходов. Параметры рассуждения, многословие текста и форматы структурированного текста принимаются, если выбранная модель их поддерживает. Отключите хранилище и отправляйте полную историю разговоров при каждом ходе.
Запрос не сработал
- Убедитесь, что ключ активен и на его балансе есть кредит.
- Используйте доступный идентификатор модели и правильную конечную точку для этой модели.
- В случае ошибки неподдерживаемого поля удалите параметр, указанный в ошибке. Если ваше приложение всегда отправляет его, используйте Пример API.
- По истечении времени проверьте история запросов прежде чем попытаться еще раз.
Узнайте объем использования и расходы
Открыть история запросов чтобы увидеть статус запроса, токены и стоимость. Незавершенные запросы все еще проверяются. См. Статистика для итогов или Модели и цены по тарифам.
