Встановіть 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.

Що читати далі