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.