Skip to content

moontechs/filamentphp-openai-management

Repository files navigation

OpenAI files and batches management

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.

About

This package is used to easily manage files and batches via the OpenAI API

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published