Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.255
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
local /
softaculous /
lib /
classes /
ai /
providers /
Delete
Unzip
Name
Size
Permission
Date
Action
class_providers.php
16.26
KB
-rw-r--r--
2026-05-18 07:05
interface_ai_provider.php
3.53
KB
-rw-r--r--
2026-05-18 07:05
Save
Rename
<?php if(!defined('SOFTACULOUS')){ die('Hacking Attempt'); } interface AIProvider { public function get_id(); public function get_name(); public function get_logo(); public function get_api_endpoint(); public function get_auth_type(); public function get_supported_models(); public function get_default_model(); public function get_context_window(); public function supports_streaming(); public function validate_config(array $config); public function get_chat_url(); public function build_headers(array $config); public function build_payload(array $messages, $model, array $options = array()); public function parse_stream_chunk($chunk); public function parse_response($response); public function get_error_message(array $response); } abstract class BaseAIProvider implements AIProvider { protected $id; protected $name; protected $logo; protected $api_endpoint; protected $auth_type = 'api_key'; protected $default_model; protected $models = array(); protected $context_window = 128000; protected $supports_streaming = true; public function get_id() { return $this->id; } public function get_name() { return $this->name; } public function get_logo() { return $this->logo; } public function get_api_endpoint() { return $this->api_endpoint; } public function get_auth_type() { return $this->auth_type; } public function get_supported_models() { return $this->models; } public function get_default_model() { return $this->default_model; } public function get_context_window() { return $this->context_window; } public function supports_streaming() { return $this->supports_streaming; } public function validate_config(array $config) { $errors = array(); if ($this->auth_type === 'api_key' && empty($config['api_key'])) { $errors[] = 'API key is required'; } return $errors; } public function get_chat_url() { return rtrim($this->api_endpoint, '/') . '/chat/completions'; } public function build_headers(array $config) { $headers = array( 'Content-Type: application/json', 'Accept: application/json' ); if ($this->auth_type === 'api_key' && !empty($config['api_key'])) { $headers[] = 'Authorization: Bearer ' . $config['api_key']; } return $headers; } public function build_payload(array $messages, $model, array $options = array()) { $payload = array( 'model' => $model, 'messages' => $messages, 'stream' => !empty($options['stream']) ); if (!empty($options['temperature'])) { $payload['temperature'] = floatval($options['temperature']); } if (!empty($options['max_tokens'])) { $payload['max_tokens'] = intval($options['max_tokens']); } return $payload; } public function parse_stream_chunk($chunk) { $data = json_decode($chunk, true); if (empty($data['choices'][0]['delta']['content'])) { return array(); } return array( 'content' => $data['choices'][0]['delta']['content'], 'done' => !empty($data['choices'][0]['finish_reason']) ); } public function parse_response($response) { $data = json_decode($response, true); if (empty($data['choices'][0]['message']['content'])) { return array('error' => 'Invalid response format'); } return array( 'content' => $data['choices'][0]['message']['content'], 'usage' => !empty($data['usage']) ? $data['usage'] : null ); } public function get_error_message(array $response) { if (!empty($response['error']['message'])) { return $response['error']['message']; } if (!empty($response['message'])) { return $response['message']; } return 'Unknown error occurred'; } }