https://github.com/moontechs/filamentphp-openai-management
This package is used to easily manage files and batches via the OpenAI API
https://github.com/moontechs/filamentphp-openai-management
filament-plugin filamentphp laravel laravel-package opeanai openai-ui php php8
Last synced: about 1 month ago
JSON representation
This package is used to easily manage files and batches via the OpenAI API
- Host: GitHub
- URL: https://github.com/moontechs/filamentphp-openai-management
- Owner: moontechs
- License: agpl-3.0
- Created: 2024-09-08T16:41:56.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-09-23T16:19:47.000Z (8 months ago)
- Last Synced: 2025-03-22T02:16:31.513Z (2 months ago)
- Topics: filament-plugin, filamentphp, laravel, laravel-package, opeanai, openai-ui, php, php8
- Language: PHP
- Homepage:
- Size: 511 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# OpenAI files and batches management
[](https://packagist.org/packages/moontechs/filamentphp-openai-management)
[](https://packagist.org/packages/moontechs/filamentphp-openai-management)
This package is used to easily manage files and batches via the OpenAI API. The flow is described [here](https://platform.openai.com/docs/guides/batch/overview).
## Installation
You can install the package via composer:
```bash
composer require moontechs/filamentphp-openai-management
```You need to publish and run the migrations with:
```bash
php artisan vendor:publish --tag="filamentphp-openai-management-migrations"
php artisan migrate
```You can publish the config file with:
```bash
php artisan vendor:publish --tag="filamentphp-openai-management-config"
```This is the contents of the published config file:
```php
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
```php
use Moontechs\OpenAIManagement\OpenAIManagementPlugin;->plugins([
new OpenAIManagementPlugin,
])
```### Jobs
[Schedule](https://laravel.com/docs/11.x/scheduling) the following CLI commands:
* `php artisan openai-management:files:update` - uploads new files to an OpenAI storage and updates already uploaded files statuses
* `php 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)
1. **Add a project**
* Reffer to the OpenAI [documentation](https://help.openai.com/en/articles/9186755-managing-your-work-in-the-api-platform-with-projects) to create new projects or obtain the ID and [key](https://help.openai.com/en/articles/9186755-managing-your-work-in-the-api-platform-with-projects#h_9ac8d4e902) of an existing one.
* Note: The OpenAI key will be encrypted. Do not regenerate the Laravel `APP_KEY`.
2. **Upload files**
* Check the [documentation](https://platform.openai.com/docs/guides/batch/getting-started) to understand the file structure.
* Multiple file uploads are supported.
* Tags are for internal use only and do not affect API calls.
3. **Request Batch Processing**
* If a file is in the `processed` status you can request batch processing.
4. **Check Batch Status**
* Batch processing can take up to 24 hours. You can check the batch status.
5. **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
- [Moontechs](https://github.com/moontechs)
- [All Contributors](../../contributors)## License
The AGPL-3.0 License. Please see [License File](LICENSE.md) for more information.