gigachat-php

0

Описание

Комплексная библиотека для интеграции Сбер GigaChat API в PHP-приложения. Нативная поддержка Laravel, автоматизация OAuth-авторизации, работа со всеми моделями GigaChat. SDK включает streaming-поддержку, rate limiting, готовые helper-методы. Оптимизирован для enterprise-разработки. Полная документация и примеры использования AI в production.

Языки

  • PHP100%
README.md

🚀 GigaChat PHP SDK

GigaChat PHP SDK

Мощный PHP SDK для интеграции с Sber GigaChat API. Библиотека обеспечивает простой и удобный интерфейс для работы с AI-моделями GigaChat, включая полную поддержку потоковой передачи данных и стандартных запросов.

Latest Version PHP Version License

🌐 Язык: Русский | English

🔗 GitHub Repository: https://github.com/tigusigalpa/gigachat-php

✨ Основные возможности

  • 🔌 Быстрая интеграция - минимальная настройка для начала работы
  • 🔐 Автоматическая авторизация - управление OAuth токенами без лишних усилий
  • 🎯 Все модели GigaChat - поддержка GigaChat, GigaChat-Pro и GigaChat-Max
  • 🛠 Laravel из коробки - Service Provider, Facades и конфигурация для Laravel 8-12
  • 💬 Диалоги и чаты - поддержка контекстных бесед и одиночных запросов
  • Потоковая передача - получение ответов в режиме реального времени
  • 🎨 Генерация изображений - создание картинок через функцию text2image
  • 🖼️ Работа с изображениями - автоматическая загрузка и обработка
  • 🎭 Стилизация контента - настройка стиля через системные промпты
  • 🔧 Вспомогательные методы - упрощенный API для частых задач
  • 🚦 Ограничение запросов - встроенный rate limiting и middleware
  • 🧪 Artisan команды - консольные инструменты для тестирования
  • 📖 Полная документация - примеры и руководства для всех функций

📦 Установка

Через Composer (рекомендуется)

Установите пакет с помощью Composer:

Настройка для Laravel

Пакет регистрируется автоматически. Опубликуйте файл конфигурации:

⚙️ Конфигурация

Шаг 1: Получение учетных данных

Для работы с API необходимо получить авторизационные данные:

  1. Зарегистрируйтесь в личном кабинете Sber AI
  2. Создайте новый проект и получите Client ID и Client Secret
  3. Сформируйте Authorization Key (Base64 кодирование "Client ID:Client Secret")

💡 Подробная инструкция: Создание проекта и получение ключей

Шаг 2: Переменные окружения

Добавьте в файл

.env
:

💡 Примеры использования

Базовое использование (без Laravel)

Использование в Laravel

После публикации конфигурации используйте Facade:

Работа с диалогами

Потоковая передача данных

🤖 Доступные модели

GigaChat предлагает несколько моделей для различных задач. Актуальный список доступен в официальной документации.

Модели генерации текста

МодельОписаниеПрименение
GigaChat-2Базовая модель второго поколенияОбщие задачи, диалоги
GigaChat-2-ProУлучшенная модель с расширенными функциямиСложные задачи, креативное письмо
GigaChat-2-MaxМаксимальная модель для сложнейших задачПрофессиональные задачи, анализ

Модели эмбеддингов

МодельОписаниеПрименение
EmbeddingsБазовая модель векторного представленияПоиск по смыслу, кластеризация
EmbeddingsGigaRУлучшенная модель эмбеддинговТочный поиск, семантический анализ

🎨 Генерация изображений

GigaChat поддерживает создание изображений через встроенную функцию text2image. Для генерации используйте глагол "нарисуй" и параметр

function_call: auto
.

Базовая генерация

Генерация со стилизацией

Упрощенный метод createImage

Laravel Helper методы

⚠️ Обработка ошибок

SDK предоставляет специализированные исключения:

Коды ошибок GigaChat API

🔐 Ошибки авторизации (400-401)

КодHTTPОписаниеРешение
1400
scope data format invalid
Проверьте формат поля scope
4401
Can't decode 'Authorization' header
Проверьте корректность ключа
5400
scope is empty
Укажите scope
6401
credentials doesn't match db data
Перевыпустите ключ

💳 Ошибки лимитов (402-403)

HTTPОписаниеПричинаРешение
402
Payment Required
Закончились токеныПроверьте лимит в личном кабинете
403
Permission denied
Нет доступа к методуПроверьте тарифный план

🚦 Ошибки лимитов запросов (429)

HTTPОписаниеПричинаРешение
429
Too Many Requests
Превышен лимит запросовУменьшите частоту запросов

📖 Подробнее об ошибках: Официальная документация

🛠️ Artisan команды

Консольные команды для работы с SDK:

🧪 Тестирование

Пакет включает полный набор тестов.

Запуск тестов

Интеграционные тесты

Для запуска с реальным API:

Покрытие

  • ✅ Генерация текста - все методы chat и streaming
  • ✅ Генерация изображений - создание, скачивание, полный workflow
  • ✅ Аутентификация - управление токенами, обновление, кеширование
  • ✅ Laravel интеграция - фасады, helper методы, сервис-провайдер
  • ✅ Валидация - проверка данных, обработка ошибок
  • ✅ Интеграционные тесты - реальные запросы к API

Подробнее: tests/README.md

📚 Примеры использования

Чат-бот для Laravel

Генерация контента

❓ FAQ и решение проблем

Часто задаваемые вопросы

Q: Как получить Client ID и Client Secret?
A: Зарегистрируйтесь в личном кабинете Sber AI и создайте проект.

Q: Что делать при ошибке "Invalid token response"?
A: Проверьте правильность Client ID и Client Secret, а также доступность сервиса авторизации.

Q: Как использовать собственные SSL сертификаты?
A: Установите

GIGACHAT_CERT_PATH
в путь к файлу сертификата или
false
для отключения проверки.

Q: Поддерживается ли работа в production?
A: Да, SDK готов для production. Убедитесь в правильной настройке SSL и rate limiting.

Q: Где посмотреть информацию о тарифах?
A: Актуальная информация доступна в официальной документации.

📄 Лицензия

MIT License. Подробнее см. LICENSE.

🤝 Вклад в проект

Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения дополнительной информации.

📞 Поддержка

🙏 Благодарности

Спасибо Sber AI за предоставление API GigaChat и всем контрибьюторам проекта!