Artfical AI / API
Получить API-ключ Открыть tAI
Справочник

Совместимость с OpenAI SDK

Что работает без изменений, если направить на tAI существующую интеграцию, совместимую с OpenAI, а что нет, — чтобы не пришлось выяснять это методом проб и ошибок.

Кратко

Измените два значения: base_url на https://api.artfical.com/v1 и api_key на ключ tAI — и основной цикл запрос/ответ: chat completions, потоковая передача, вызов инструментов, ввод изображений — работает точно так же, как и с собственным API OpenAI. Эта страница посвящена тем частям, которые не переносятся один в один, чтобы миграция не строилась на обнаружении пробелов один неудавшийся запрос за раз.

# До
client = OpenAI(api_key="sk-...")

# После
client = OpenAI(base_url="https://api.artfical.com/v1", api_key="tai-sk-...")

Работает без изменений

ВозможностьПримечания
Chat CompletionsТот же формат запроса и ответа. См. Chat Completions.
Потоковая передачаТот же формат чанков SSE, включая финальный чанк только с данными об использовании. См. Потоковая передача.
Вызов инструментов / функцийТот же формат tools и tool_calls. tAI никогда не выполняет инструменты самостоятельно; о том, почему это отличается от некоторых других API, ориентированных на агентов, см. в разделе Вызов инструментов.
Ввод изображенийТот же формат части содержимого image_url, data URI в base64. О том, какие модели это принимают, см. в разделе Изображения.
temperature, top_p, presence_penalty, frequency_penalty, seed, stopТе же названия, те же допустимые диапазоны. См. Параметры сэмплирования.
Формат ошибкиТот же формат {"error": {"message", "type"}}. См. Ошибки.
GET /v1/modelsТот же формат списка, хотя набор полей у каждой записи о модели меньше, чем у OpenAI. См. Модели.

Пока не поддерживается

ВозможностьЧто произойдёт, если её отправить
n (несколько вариантов завершения)Игнорируется. choices всегда содержит ровно одну запись.
logprobs / top_logprobsИгнорируется. Данные о логарифмических вероятностях не возвращаются.
response_format (JSON-режим / структурированный вывод)Игнорируется. Если вам нужен надёжно структурированный вывод, более переносимый подход — прямо указать модели в самом промпте отвечать в определённом формате (JSON, фиксированный шаблон) и разобрать полученный текст.
Эндпоинты эмбеддингов, аудио, генерации изображенийНе реализованы. Поверхность API tAI ограничена chat completions и получением списка моделей; полный список эндпоинтов см. в обзоре API.
Эндпоинты fine-tuning, batch и загрузки файловНе реализованы.
Ключи, привязанные к организации / проектуНеприменимо. Ключ tAI привязан к одному рабочему пространству; см. Аутентификация.

Ни одно из неподдерживаемых полей не приводит к полному отказу запроса; они принимаются и молча игнорируются, а не вызывают 400. Это осознанное решение, чтобы не ломать существующий клиент, который по привычке всегда отправляет, скажем, n: 1, даже если это и так значение по умолчанию; риск в том, что клиент может решить, будто по-настоящему неподдерживаемая функция (например, n: 3 для трёх реальных вариантов завершения) работает, хотя на самом деле она молча не работает, — поэтому стоит явно проверять формат ответа, а не полагаться на отсутствие ошибки.

Имена моделей не переносятся

Строку модели из существующей интеграции — "gpt-4o", "gpt-4.1-mini" или подобную — нужно заменить на один из собственных идентификаторов моделей tAI (tai-4.0.6P, tai-4.0.6B, tai-4.0.7, tai-4.1, tai-4.2); о том, для чего позиционируется каждая из них, см. на странице Модели. Автоматического сопоставления имён моделей другого провайдера с моделями tAI нет, поскольку два каталога не соответствуют друг другу один в один ни по возможностям, ни по именованию.

Что стоит перепроверить после миграции

Несколько вещей, которые не вызывают ошибку, но которые легко незаметно сделать неправильно с первого раза: убедитесь, что base_url включает суффикс /v1 (голый https://api.artfical.com без него не будет корректно резолвить запросы), убедитесь, что API-ключ имеет префикс tai-sk-, а не остался от того, куда интеграция была направлена раньше, и если интеграция полагается на то, что какое-то из перечисленных выше неподдерживаемых полей даёт реальный эффект, заложите этот пробел явно, а не предполагайте полный паритет.