Стартовий набір для чат-ботів на базі Laravel та штучного інтелекту

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 09 липня, 2025
Ви готові поринути у світ штучного інтелекту в Laravel? У цьому блозі ми розглянемо новий стартер-кит AI Chat від Pushpak Chhajed, який дозволяє створити додаток з функціоналом чату в реальному часі за допомогою сучасних технологій. Дізнайтеся більше про його можливості

Laravel AI Chat — це стартер-набір, створений Pushpak Chhajed, який пропонує функціонал реального часу для відповідей за допомогою Prism, Inertia.js, Vue.js та Tailwind CSS. Якщо ви хочете швидко налаштувати новий додаток Laravel з функцією AI-чат, цей набір стане відмінною стартовою точкою.

# Основні можливості

Стартер-набір можна встановити за допомогою laravel new:

laravel new --using=pushpak1300/ai-chat my-ai-chat
cd my-ai-chat
composer run dev

Цей набір містить файл app/Enums/ModelName.php, в якому ви можете визначити імена моделей, доступних для використання.

<?php
 
declare(strict_types=1);
 
namespace App\Enums;
 
use Prism\Prism\Enums\Provider;
 
enum ModelName: string
{
    case GPT_4O_MINI = 'gpt-4o-mini';
    case GPT_4_1_NANO = 'gpt-4.1-nano';
    case O4_MINI = 'o4-mini';
    // Додаємо інші моделі
    case MY_NEW_MODEL = 'my-new-model-2-micro';
 
    /**
     * @return array{id: string, name: string, description: string, provider: string}[]
     */
    public static function getAvailableModels(): array
    {
        return array_map(
            fn (ModelName $model): array => $model->toArray(),
            self::cases()
        );
    }
 
    public function getName(): string
    {
        return match ($this) {
            self::GPT_4O_MINI => 'GPT-4o mini',
            self::GPT_4_1_NANO => 'GPT-4.1 Nano',
            self::O4_MINI => 'O4 mini',
            self::MY_NEW_MODEL => 'Людське ім’я моделі',
        };
    }
 
    public function getDescription(): string
    {
        return match ($this) {
            self::GPT_4O_MINI => 'Найдешевша модель, краще підходить для складних завдань',
            self::GPT_4_1_NANO => 'Доступна модель для простих завдань',
            self::O4_MINI => 'Модель з можливістю розуміння, найкраще підходить для комплексних завдань',
            self::MY_NEW_MODEL => 'Короткий опис можливостей моделі',
        };
    }
 
    public function getProvider(): Provider
    {
        return match ($this) {
            self::GPT_4O_MINI => Provider::OpenAI,
            self::GPT_4_1_NANO => Provider::OpenAI,
            self::O4_MINI => Provider::OpenAI,
            self::MY_NEW_MODEL => Provider::YourProvider,
        };
    }
 
    /**
     * @return array{id: string, name: string, description: string, provider: string}
     */
    public function toArray(): array
    {
        return [
            'id' => $this->value,
            'name' => $this->getName(),
            'description' => $this->getDescription(),
            'provider' => $this->getProvider()->value,
        ];
    }
}

Pushpak планує реалізувати ще кілька функцій у планах розвитку, зокрема підтримку мультимодальних можливостей, викликів інструментів, генерацію зображень та відновлювальні потоки. Запрошуємо вас долучитися до покращення цього стартер-набору, запропонувавши свої ідеї чи можливості.

Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.