moontechs/filamentphp-openai-management

OpenAI files and batches management

0.4.10 2024-09-23 16:18 UTC

This package is auto-updated.

Last update: 2024-10-23 16:34:54 UTC


README

Latest Version on Packagist Total Downloads

files_list

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 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 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.

files_list

  1. 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.

upload_files

  1. Request Batch Processing
    • If a file is in the processed status you can request batch processing.

edit_file

  1. Check Batch Status
    • Batch processing can take up to 24 hours. You can check the batch status.

batch_view

  1. 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).

edit_file_batch_completed

Credits

License

The AGPL-3.0 License. Please see License File for more information.