Установите SDK

PHP

Что нужно каждому SDK, как установить его пакет, как обратиться к Slen без него и с каким API-ключом он работает.

3 мин чтения

У Slen есть SDK для PHP — пакет slen/sdk — и SDK для Node.js — пакет @slen/sdk. Оба обращаются к одному API. Эта страница говорит, что нужно каждому из них, как установить его пакет и с каким API-ключом он работает.

Что нужно SDK

  • PHP 8.3 или новее, с ext-json.

  • psr/http-client 1 и psr/http-factory 1 — интерфейсы HTTP-клиента, через который SDK отправляет запросы.

  • psr/http-message 1.1 или 2 — интерфейсы запроса и ответа.

  • php-http/discovery 1.19 или более поздняя 1 — находит HTTP-клиент и фабрики, установленные в вашем приложении.

  • psr/log 1.1, 2 или 3 — интерфейс логгера, в который SDK пишет свой журнал.

Своего HTTP-клиента пакет не требует: его приносит ваше приложение. Эти пакеты используются, только когда они есть в вашем приложении.

  • guzzlehttp/guzzle 7.9 или более поздняя 7, либо 8.3 или более поздняя 8 — HTTP-клиент, который SDK собирает сам, с таймаутами своей конфигурации.

  • symfony/http-client 7 — то же самое с Symfony HttpClient.

  • nyholm/psr7 1.8 или более поздняя 1 — фабрики запросов, с которыми работает Symfony HttpClient.

  • illuminate/support из Laravel 11 или 12 — интеграция с Laravel: сервис-провайдер, фасад Slen и файл конфигурации.

Интеграция с Laravel — для Laravel 11 и 12: рядом с более ранним illuminate/support пакет не устанавливается.

Подойдёт и любой другой клиент PSR-18. У него остаются свои таймауты — как SDK с ним обходится, говорит статья Конфигурация.

Установить пакет

Composer
composer require slen/sdk guzzlehttp/guzzle

Любой вызов SDK можно отправить и без него: SDK отправляет обычные HTTP-запросы к API. Вот запрос из статьи Быстрый старт по HTTP:

Terminal
curl https://api.slen.ai/api/v1/operations/execute \
  -H "Authorization: Bearer $SLEN_API_KEY" \
  -H "Idempotency-Key: order-42:email" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "generate_email",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": "Write a short follow-up email."
        }
      ]
    }
  }'
200 OK
{
  "data": {
    "execution_id": "74438200973594700",
    "status": "completed",
    "operation": "generate_email",
    "output": {
      "model": "gpt-4o",
      "content": "Hi Ada, just checking in on the proposal I sent last week.",
      "finish_reason": "stop",
      "tool_calls": null,
      "usage": {
        "input_tokens": 14,
        "output_tokens": 16,
        "cached_input_tokens": 0
      }
    },
    "error": null,
    "error_code": null,
    "error_message": null,
    "cost": {
      "estimated": "0.00412500",
      "actual": null
    },
    "cache": {
      "hit": false,
      "cached_at": null
    },
    "replayed": false,
    "waiting_on": null,
    "trace_url": "/v1/executions/74438200973594700"
  }
}

Статья Обзор описывает соглашения, которым следует каждый запрос API.

API-ключ

Каждый вызов SDK несёт API-ключ вашего проекта. Выпустите его на странице Ключи и доступ — по шагам это описано в статье Управление API-ключами. Ключ показывается один раз, при выпуске.

Что ключ может вызывать, зависит от его разрешений. Запуску флоу нужно gateway:write, чтению клиентов — customers:read, изменению клиентов и их кредитов — customers:write. Статья Клиент и методы называет разрешение каждого вызова, а статья Аутентификация говорит, что включает каждое разрешение.

Храните ключ там, где ваше приложение хранит секреты, и не кладите его в код, который выполняется в браузере. Примеры этого справочника читают его из переменной окружения SLEN_API_KEY.

Terminal
export SLEN_API_KEY="sl_live_…"

PHP SDK получает ключ при создании. В приложении на Laravel переменную читает файл конфигурации SDK.

Что читать дальше