Найти в Дзене
КиберMamedov 💻🔥

Реализация собственного чата с API GigaChat на PHP

Меня подтолкнуло написать данную статью наблюдение, которое показало, что предыдущая статья реализующая API GigaChat на Python интересует людей, которые хотят написать то же самое на PHP. Поэтому данная статья специально для вас. Единственная просьба к вам, подпишитесь, пожалуйста, на канал и оставьте комментарий. В первую очередь я бы не хотел повторяться, поэтому вначале прочтите предыдущую статью, а затем возвращайтесь сюда со всем набором знаний, который потребуется. Теперь начнем. В первую очередь создадим две переменные и вставим свой токен. Теперь определим класс, свойства и конструктор: Метод __construct является конструктором класса GigaChat. Он инициализирует свойства класса ($auth, $rqUID, $access_token и $communication) и вызывает метод get_token для получения токена доступа. Отлично! Теперь определим метод get_token, который отправляет запрос к API GigaChat для получения токена доступа. Он использует значения авторизации и идентификации запроса ($auth и $rqUID), чтобы ауте

Меня подтолкнуло написать данную статью наблюдение, которое показало, что предыдущая статья реализующая API GigaChat на Python интересует людей, которые хотят написать то же самое на PHP. Поэтому данная статья специально для вас. Единственная просьба к вам, подпишитесь, пожалуйста, на канал и оставьте комментарий.

В первую очередь я бы не хотел повторяться, поэтому вначале прочтите предыдущую статью, а затем возвращайтесь сюда со всем набором знаний, который потребуется.

Теперь начнем. В первую очередь создадим две переменные и вставим свой токен.

Создание констант
Создание констант

Теперь определим класс, свойства и конструктор:

Определение класса GigaChat
Определение класса GigaChat

Метод __construct является конструктором класса GigaChat. Он инициализирует свойства класса ($auth, $rqUID, $access_token и $communication) и вызывает метод get_token для получения токена доступа.

Отлично! Теперь определим метод get_token, который отправляет запрос к API GigaChat для получения токена доступа. Он использует значения авторизации и идентификации запроса ($auth и $rqUID), чтобы аутентифицировать запрос.

Определение метода get_token
Определение метода get_token

Теперь переходим к определению метода ask_a_question позволяет пользователям задавать вопросы API GigaChat. Он принимает вопрос в качестве входных данных и необязательный параметр temperature (значение по умолчанию 0.7), который контролирует степень случайности генерируемого ответа (0.7) оптимальное значение, чем выше тем более объемные, но странные ответы. Метод отправляет запрос к API GigaChat и возвращает сгенерированный ответ.

Определяем метод ask_a_question
Определяем метод ask_a_question

Теперь пришло время определить метод get, который является вспомогательной функцией, используемой для отправки HTTP-запросов. Он использует библиотеку cURL для отправки POST-запроса на указанный URL с заданными заголовками и данными. Параметр $json определяет, должны ли данные быть отправлены в формате JSON или URL-кодированы.

Определяем метод get
Определяем метод get

Осталось определить метод reset, который очищает историю коммуникации, хранящуюся в свойстве $communication.

Определение метода сброса истории сообщений
Определение метода сброса истории сообщений

В заключении создаем экземпляр класса GigaChat и вызываем метод ask_a_question для задания вопроса в аргументе метода. Сгенерированный ответ затем выводится на экран.

Создание экземпляра класса и вывод результата.
Создание экземпляра класса и вывод результата.

Код тестировал на сервисе https://replit.com поэтому такой внешний вид браузера, не удивляйтесь.

Результат работы кода
Результат работы кода

Все прекрасно работает, пользуйтесь и не забывайте подписаться и оставить комментарий.