edvardpotter / gigachat-php-sdk
GigaChat API SDK for PHP projects
1.0.2
2024-03-09 16:36 UTC
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^7.0
This package is auto-updated.
Last update: 2024-11-20 23:12:52 UTC
README
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']);