ercogx / filament-openai-assistant
使用 OpenAI 助手创建聊天页面
1.0.3
2024-08-06 14:58 UTC
Requires
- erusev/parsedown: ^1.7
- openai-php/client: ^v0.10.1
- spatie/laravel-package-tools: ^1.14.0
- symfony/http-client: ^7.1
Requires (Dev)
- filament/filament: ^3.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.19
- pestphp/pest-plugin-laravel: ^2.2
- pestphp/pest-plugin-livewire: ^2.1
README
Filament OpenAI Assistant 是一个 Filament 插件,它添加了一个带有 Open AI 助手的聊天页面
功能
- 与 OpenAI 助手集成
- 易于设置
- 多个助手
- 多线程
- 支持暗黑模式
使用方法
安装
首先,您需要使用 composer 安装此包
composer require ercogx/filament-openai-assistant
发布迁移
然后需要发布迁移
php artisan vendor:publish --tag="filament-openai-assistant-migrations"
如果您使用的是不同于 \App\Models\User::class
的模型,则可以可选地更改 auth 用户的 foreign id
发布配置
接下来,您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-openai-assistant-config"
这将创建一个 config/filament-openai-assistant.php
配置文件,您可以根据需要使用环境变量进行修改
OPENAI_API_KEY=sk-***
OPENAI_ASSISTANT_ID=asst_***
OPENAI_ASSISTANT_NAME=Assistant
您还可以根据需要向 assistants
数组添加更多助手
添加到 Filament 控板
最后一步是将插件添加到您的控板配置中。这将注册插件页面与控板。
public function panel(Panel $panel): Panel { return $panel ->plugins([ \Ercogx\FilamentOpenaiAssistant\OpenaiAssistantPlugin::make() ]); }
您还可以更改聊天页面以进行自定义
\Ercogx\FilamentOpenaiAssistant\OpenaiAssistantPlugin::make() ->setRegistrablePages([ \App\Filament\Pages\ChatPage::class ])
<?php namespace App\Filament\Pages; use Ercogx\FilamentOpenaiAssistant\Pages\OpenaiAssistantPage; class ChatPage extends OpenaiAssistantPage { }
附加步骤
视图
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-openai-assistant-views"
翻译
可选地,您可以使用以下命令发布翻译
php artisan vendor:publish --tag="filament-openai-assistant-translations"
自定义聊天线程模型
如果您想使用自己的聊天线程模型,需要在任何服务提供者的 boot 方法中调用 useChatThreadModel
public function boot(): void { \Ercogx\FilamentOpenaiAssistant\Services\ChatThreadModelServices::useChatThreadModel(\App\Models\MyChatThread::class); }
变更日志
请参阅 CHANGELOG 以获取最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。