edvardpotter/gigachat-php-sdk

GigaChat API SDK for PHP projects

1.0.2 2024-03-09 16:36 UTC

This package is auto-updated.

Last update: 2024-11-20 23:12:52 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

PHP API SDK для GigaChat.

Установка

Установите последнюю версию

$ composer require edvardpotter/gigachat-php-sdk

Требования

PHP >= 7.4

Как использовать

<?php

require 'vendor/autoload.php';

use Edvardpotter\GigaChat\GigaChat;
use Edvardpotter\GigaChat\GigaChatDialog;
use Edvardpotter\GigaChat\GigaChatOAuth;
use Edvardpotter\GigaChat\Type\Message;
use Edvardpotter\GigaChat\Type\Model;

// https://gu-st.ru/content/Other/doc/russiantrustedca.pem
$cert = __DIR__ . '/russiantrustedca.pem';

$oauthClient = new GigaChatOAuth(
    'client_id',
    'client_secret',
    $cert // false для отключения проверки сертификата
);

// Получить токена
$accessToken = $oauthClient->getAccessToken();
echo $accessToken->getAccessToken();
echo $accessToken->isExpired();

$gigaChat = new GigaChat(
    $accessToken->getAccessToken(),
    $cert
);

// Пример отправки сообщения
$messages = [
    new Message(
        'Когда уже ИИ захватит этот мир?'
    ),
];
$completion = $gigaChat->chatCompletions($messages);

foreach ($completion->getChoices() as $choice) {
    echo $choice->getMessage()->getContent();
    echo $choice->getMessage()->getRole();
}

// Пример для работы с GigaChat в режиме диалога
$dialog = new GigaChatDialog($gigaChat);
$questionMessage = new Message('Когда уже ИИ захватит этот мир?');
$answerMessage = $dialog->getAnswer($questionMessage);

$questionMessage = new Message('Как ИИ изменятся в будущем?');
$answerMessage = $dialog->getAnswer($questionMessage);

// Сброс истории диалога
$dialog->reset();


// Получить список доступных моделей
$models = $gigaChat->getModels();
foreach ($models as $model) {
    echo $model->getId();
    echo $model->getObject();
    echo $model->getOwnedBy();
}

// Посчитать кол-во токенов для строки
$tokensCount = $gigaChat->tokensCount(Model::ID_GIGACHAT_LATEST, 'Когда уже ИИ захватит этот мир?');
echo $tokensCount->getObject();
echo $tokensCount->getTokens();
echo $tokensCount->getCharacters();

// Скачивание файла
$stream = $gigaChat->getFile('file_id');
file_put_contents('file_name.jpg', $stream);

// Создать векторные представления
$embeddings = $gigaChat->getEmbeddings(['1234']);