/filament-openai-assistant

Filament OpenAI Assistant is a filament plugin that adds a chat page with an Open AI assistant

Primary LanguagePHPMIT LicenseMIT

OpenAI Assistant Integration

Filament OpenAI Assistant is a filament plugin that adds a chat page with an Open AI assistant

Preview: Dark Mode:

Feature

  • Integrate with OpenAI Assistant
  • Easy to Setup
  • Multiple Assistants
  • Multiple Threads
  • Support for dark mode

Usage

Installation

First, you need install the package via composer:

composer require ercogx/filament-openai-assistant

Publish Migration

Then need publish migration:

php artisan vendor:publish --tag="filament-openai-assistant-migrations"

Optional you can change foreign id for auth user if you use a different model instead of the \App\Models\User::class

Publish Config

Next, you can publish the config files with:

php artisan vendor:publish --tag="filament-openai-assistant-config"

This will create a config/filament-openai-assistant.php configuration file in your project, which you can modify to your needs using environment variables:

OPENAI_API_KEY=sk-***
OPENAI_ASSISTANT_ID=asst_***
OPENAI_ASSISTANT_NAME=Assistant

You can also add more assistants to the assistants array as needed

Add To Filament Panels

The last step add the Plugin to your Panel's configuration. This will register the plugin's page with the Panel.

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            \Ercogx\FilamentOpenaiAssistant\OpenaiAssistantPlugin::make()
        ]);
}

You can also change the chat page to customize it

\Ercogx\FilamentOpenaiAssistant\OpenaiAssistantPlugin::make()
    ->setRegistrablePages([
        \App\Filament\Pages\ChatPage::class
    ])
<?php

namespace App\Filament\Pages;

use Ercogx\FilamentOpenaiAssistant\Pages\OpenaiAssistantPage;

class ChatPage extends OpenaiAssistantPage
{
    
}

Additional steps

Views

Optionally, you can publish the views using

php artisan vendor:publish --tag="filament-openai-assistant-views"

Translations

Optionally, you can publish the translations using

php artisan vendor:publish --tag="filament-openai-assistant-translations"

Custom Thread Chat Model

If you want to use your own model for chat thread you need call useChatThreadModel in boot method of any service provider

public function boot(): void
{
    \Ercogx\FilamentOpenaiAssistant\Services\ChatThreadModelServices::useChatThreadModel(\App\Models\MyChatThread::class);
}

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.