2 Commits

2 changed files with 91 additions and 15 deletions

View File

@@ -0,0 +1,21 @@
<?php
declare(strict_types=1);
namespace mirzaev\neuroseti;
/**
* API
*
* Types of neural networks API
*
* @package mirzaev\neuroseti
*
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
*/
enum api: string
{
case openai = 'OpenAI';
}

View File

@@ -4,6 +4,9 @@ declare(strict_types=1);
namespace mirzaev\neuroseti;
// Files of the project
use mirzaev\neuroseti\api;
/**
* Neural network
*
@@ -17,27 +20,79 @@ namespace mirzaev\neuroseti;
enum network: string
{
// OpenAI GPT-4
case gpt_4_1 = 'GPT-4.1';
case gpt_4_1_mini = 'GPT-4.1 mini';
case gpt_4_1_nano = 'GPT-4.1 nano';
case o_4_mini = 'o4-mini';
case gpt_4_1 = 'gpt-4.1';
case gpt_4_1_mini = 'gpt-4.1-mini';
case gpt_4_1_nano = 'gpt-4.1-nano';
case o4_mini = 'o4-mini';
// OpenAI GPT-5
case gpt_5 = 'GPT-5';
case gpt_5_mini = 'GPT-5 mini';
case gpt_5_nano = 'GPT-5 nano';
case gpt_5_pro = 'GPT-5 pro';
case gpt_5 = 'gpt-5';
case gpt_5_mini = 'gpt-5-mini';
case gpt_5_nano = 'gpt-5-nano';
case gpt_5_pro = 'gpt-5-pro';
// OpenAI GPT RealTime
case gpt_realtime = 'GPT realtime';
case gpt_realtime_mini = 'GPT realtime mini';
case gpt_realtime = 'gpt-realtime';
case gpt_realtime_mini = 'gpt-realtime-mini';
// OpenAI Sora 2
case sora_2 = 'Sora 2';
case sora_2_pro = 'Sora 2 pro';
case sora_2 = 'sora-2';
case sora_2_pro = 'sora-2-pro';
// OpenAI Image Generation
case gpt_image_1 = 'GPT image 1';
case gpt_image_1_mini = 'GPT image 1 mini';
}
case gpt_image_1 = 'gpt-image-1';
case gpt_image_1_mini = 'gpt-image-1-mini';
/**
* Label
*
* @return string The neural network label
*/
public function label(): string
{
// Exit (success)
return match ($this) {
static::gpt_4_1 => 'GPT-4.1',
static::gpt_4_1_mini => 'GPT-4.1 mini',
static::gpt_4_1_nano => 'GPT-4.1 nano',
static::o4_mini => 'o4-mini',
static::gpt_5 => 'GPT-5',
static::gpt_5_mini => 'GPT-5 mini',
static::gpt_5_nano => 'GPT-5 nano',
static::gpt_5_pro => 'GPT-5 pro',
static::gpt_realtime => 'GPT realtime',
static::gpt_realtime_mini => 'GPT realtime mini',
static::sora_2 => 'Sora 2',
static::sora_2_pro => 'Sora 2 pro',
static::gpt_image_1 => 'GPT image 1',
static::gpt_image_1_mini => 'GPT image 1 mini'
};
}
/**
* API
*
* @return api The neural network API
*/
public function api(): api
{
// Exit (success)
return match ($this) {
static::gpt_4_1,
static::gpt_4_1_mini,
static::gpt_4_1_nano,
static::o4_mini,
static::gpt_5,
static::gpt_5_mini,
static::gpt_5_nano,
static::gpt_5_pro,
static::gpt_realtime,
static::gpt_realtime_mini,
static::sora_2,
static::sora_2_pro,
static::gpt_image_1,
static::gpt_image_1_mini,
=> api::openai
};
}
}