moontechs / filamentphp-openai-management
OpenAI files and batches management
0.4.10
2024-09-23 16:18 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- openai-php/client: ^0.10.1
- spatie/laravel-package-tools: ^1.15.0
- symfony/http-client: ^7.1
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
This package is used to easily manage files and batches via the OpenAI API. The flow is described here.
Installation
You can install the package via composer:
composer require moontechs/filamentphp-openai-management
You need to publish and run the migrations with:
php artisan vendor:publish --tag="filamentphp-openai-management-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="filamentphp-openai-management-config"
This is the contents of the published config file:
return [ 'disk' => 'local', // you can customize used disk and upload/download folders 'directory' => 'openai-files', 'download-disk' => 'local', 'download-directory' => 'openai-files-downloads', 'select-options' => [ 'file-purpose' => [ 'batch' => 'batch', 'assistants' => 'assistants', 'fine-tune' => 'fine-tune', ], 'batch-endpoint' => [ '/v1/chat/completions' => '/v1/chat/completions', '/v1/embeddings' => '/v1/embeddings', '/v1/completions' => '/v1/completions', ], ], ];
Usage
Add a plugin to your Panel Provider
use Moontechs\OpenAIManagement\OpenAIManagementPlugin; ->plugins([ new OpenAIManagementPlugin, ])
Jobs
Schedule the following CLI commands:
php artisan openai-management:files:update
- uploads new files to an OpenAI storage and updates already uploaded files statusesphp artisan openai-management:batches:update
- sends files batch processing requests and updates statuses of the old requests. In case there are no batches in progress, it will send the next batch process request.php artisan openai-management:batches:download-processed-files
- downloads already processed batches (files)
UI (step by step flow)
- Add a project
- Reffer to the OpenAI documentation to create new projects or obtain the ID and key of an existing one.
- Note: The OpenAI key will be encrypted. Do not regenerate the Laravel
APP_KEY
.
- Upload files
- Check the documentation to understand the file structure.
- Multiple file uploads are supported.
- Tags are for internal use only and do not affect API calls.
- Request Batch Processing
- If a file is in the
processed
status you can request batch processing.
- If a file is in the
- Check Batch Status
- Batch processing can take up to 24 hours. You can check the batch status.
- Download Processed Files
- When the batch is completed, a background job downloads the files to the server. You can then download them locally (a download button will appear).
Credits
License
The AGPL-3.0 License. Please see License File for more information.