1. Go to this page and download the library: Download tigusigalpa/gigachat-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tigusigalpa / gigachat-php example snippets
use Tigusigalpa\GigaChat\Auth\TokenManager;
use Tigusigalpa\GigaChat\GigaChatClient;
// Токен-менеджер
$authKey = base64_encode('your_client_id:your_client_secret');
$tokenManager = new TokenManager($authKey);
// Клиент
$client = new GigaChatClient($tokenManager);
// Доступные модели
$models = $client->models();
print_r($models);
// Отправка сообщения
$messages = [
['role' => 'user', 'content' => 'Привет! Как дела?']
];
$response = $client->chat($messages);
echo $response['choices'][0]['message']['content'];
use Tigusigalpa\GigaChat\Laravel\GigaChat;
use Tigusigalpa\GigaChat\Models\GigaChatModels;
// Вопрос-ответ
$answer = GigaChat::ask('Расскажи анекдот');
echo $answer;
// Список моделей
$models = GigaChat::models();
// С параметрами
$response = GigaChat::chat([
['role' => 'user', 'content' => 'Объясни квантовую физику']
], [
'temperature' => 0.7,
'max_tokens' => 1000,
'model' => GigaChatModels::GIGACHAT_2_PRO
]);
echo $response['choices'][0]['message']['content'];
use Tigusigalpa\GigaChat\Laravel\GigaChat;
use Tigusigalpa\GigaChat\Laravel\GigaChatHelper;
// С системным промптом
$conversation = GigaChatHelper::conversation(
'Ты полезный помощник программиста',
'Как создать REST API в Laravel?'
);
$response = GigaChat::chat($conversation);
echo GigaChatHelper::extractContent($response);
// Продолжение диалога
$conversation = GigaChat::continueChat($conversation, 'А как добавить аутентификацию?');
use Tigusigalpa\GigaChat\Laravel\GigaChat;
$messages = [
['role' => 'user', 'content' => 'Напиши длинную историю о космосе']
];
// Callback
GigaChat::chatStream($messages, [], function($event, $error) {
if ($error) {
echo "Ошибка: " . $error;
return;
}
if ($event === '[DONE]') {
echo "\n✅ Готово!";
return;
}
if (isset($event['choices'][0]['delta']['content'])) {
echo $event['choices'][0]['delta']['content'];
}
});
// Генератор
$stream = GigaChat::chatStream($messages);
foreach ($stream as $event) {
if (isset($event['choices'][0]['delta']['content'])) {
echo $event['choices'][0]['delta']['content'];
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Tigusigalpa\GigaChat\Laravel\Traits\HasGigaChat;
class Article extends Model
{
use HasGigaChat;
protected $fillable = ['title', 'content', 'category'];
public function generateSummary(): string
{
return $this->summarize('content');
}
// Генерация тегов
public function generateTags(): array
{
return $this->generateTags('content', 5);
}
// Персонализированный контент
public function generateRelatedContent(): string
{
return $this->generateContent(
'Создай похожую статью на основе этой',
['title', 'category']
);
}
}
use Tigusigalpa\GigaChat\Models\GigaChatModels;
use Tigusigalpa\GigaChat\Laravel\GigaChat;
$response = GigaChat::chat($messages, [
'model' => GigaChatModels::GIGACHAT_2_PRO
]);
$generationModels = GigaChatModels::getGenerationModels();
$embeddingModels = GigaChatModels::getEmbeddingModels();
if (GigaChatModels::isValidGenerationModel('GigaChat-2')) {
// валидна
}
use Tigusigalpa\GigaChat\Models\GigaChatModels;
$options = [
'model' => GigaChatModels::GIGACHAT_2_PRO, // Модель для использования
'temperature' => 0.7, // Креативность (0.0 - 2.0)
'top_p' => 0.9, // Nucleus sampling (0.0 - 1.0)
'max_tokens' => 1000, // Максимальное количество токенов
'repetition_penalty' => 1.1, // Штраф за повторения (0.0 - 2.0)
'update_interval' => 0 // Интервал обновления для streaming
];
$response = GigaChat::chat($messages, $options);
## Генерация изображений
Встроенная функция text2image. Используйте "нарисуй" в промпте с `function_call: auto`.
### Базовое
$response = $client->generateImage("Нарисуй розового кота", [
'system_message' => 'Ты — Василий Кандинский'
]);
$response = $client->generateImage("Нарисуй космический корабль", [
'system_message' => 'Ты — художник-концептуалист научной фантастики',
'temperature' => 0.8
]);
### createImage
Генерирует и скачивает в одном вызове:
use Tigusigalpa\GigaChat\Laravel\GigaChat;
// drawImage добавляет "Нарисуй" автоматически
$result = GigaChat::drawImage("красивый пейзаж");
// Со стилем художника
$result = GigaChat::drawImageInStyle("портрет кота", "Леонардо да Винчи");
// Извлечь ID изображения
$response = GigaChat::generateImage("Нарисуй дракона");
$imageId = GigaChat::extractImageId($response['choices'][0]['message']['content']);
if ($imageId) {
$imageData = GigaChat::downloadImage($imageId);
file_put_contents("dragon.jpg", base64_decode($imageData));
}
namespace Tests\Feature;
use Tests\TestCase;
use Tigusigalpa\GigaChat\Laravel\GigaChat;
class GigaChatTest extends TestCase
{
public function test_gigachat_basic_functionality()
{
$response = GigaChat::ask('Привет!');
$this->assertNotEmpty($response);
$this->assertIsString($response);
}
public function test_gigachat_with_context()
{
$response = GigaChat::askWithContext(
'Ты математик',
'Сколько будет 2+2?'
);
$this->assertStringContainsString('4', $response);
}
}
bash
# Тестирование подключения к API
php artisan gigachat:test
# Отправка сообщения
php artisan gigachat:chat "Привет, как дела?"
# Отправка с параметрами
php artisan gigachat:chat "Расскажи историю" --model=GigaChat-Pro --temperature=0.8 --max-tokens=500
# Streaming режим
php artisan gigachat:chat "Напиши длинный рассказ" --stream
bash
# Установка зависимостей для разработки
composer install --dev
# Запуск всех тестов
composer test
# или
php run-tests.php
# Запуск только unit тестов
php run-tests.php --unit
# Запуск с покрытием кода
composer test-coverage
# или
php run-tests.php --coverage
use Tigusigalpa\GigaChat\Auth\TokenManager;
use Tigusigalpa\GigaChat\GigaChatClient;
$tokenManager = new TokenManager($authKey);
$client = new GigaChatClient($tokenManager);
$response = $client->generateImage("Нарисуй красивый закат над морем");
// Извлечь ID изображения
$content = $response['choices'][0]['message']['content'];
if (preg_match('/<img[^>]+src=["']([^"']+)["'][^>]*>/i', $content, $matches)) {
$fileId = $matches[1];
$imageData = $client->downloadImage($fileId);
file_put_contents('sunset.jpg', base64_decode($imageData));
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.