Automatic AI Posts, setup automatizado e seeder de permalinks/avatar
Plugin automatic-ai-posts (v2.0.0) - Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita, categoria, imagem de capa e agendamento - Página de configuração com teste real do provedor de IA - Editor: botão para refazer imagem de capa e metadados, textos em PT-BR - Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação - Cache-busting por mtime nos assets do admin Tema gustavoo-portfolio - Marca do cabeçalho reduzida a "Gustavo" - Suporte a título próprio da marca Setup (docker/wp-init.sh, compose.yaml) - Plugins de terceiros (Post Views Counter, Rank Math, Site Kit) instalados do WordPress.org em vez de versionados - Falha explícita ao final se algum plugin obrigatório não instalar - WPCLI_UID/WPCLI_GID configuráveis Seeder do tema - Links permanentes "Dia e nome" e avatar "Iniciais" aplicados apenas em instalação nova, com regravação do .htaccess
This commit is contained in:
1 parent
5891467266
commit
0ea3651fb5
73 files changed
+8858
-39
No files matched your search
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
namespace AAP\Modules\Ai;
|
||||
|
||||
use AAP\Core\Options;
|
||||
use AAP\Modules\Ai\Providers\AnthropicProvider;
|
||||
use AAP\Modules\Ai\Providers\CustomProvider;
|
||||
use AAP\Modules\Ai\Providers\NvidiaProvider;
|
||||
use AAP\Modules\Ai\Providers\OpenAiProvider;
|
||||
use AAP\Modules\Ai\Providers\OpenRouterProvider;
|
||||
use AAP\Modules\Ai\Providers\VertexProvider;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Builds the provider selected in the settings.
|
||||
*/
|
||||
final class ProviderFactory {
|
||||
|
||||
public const LABELS = [
|
||||
'nvidia' => 'NVIDIA Build',
|
||||
'openai' => 'OpenAI',
|
||||
'anthropic' => 'Anthropic',
|
||||
'openrouter' => 'OpenRouter',
|
||||
'vertex' => 'Google Vertex AI',
|
||||
'custom' => 'Custom (OpenAI compatible)',
|
||||
];
|
||||
|
||||
public const DEFAULT_MODELS = [
|
||||
'nvidia' => 'nvidia/nemotron-3-ultra-550b-a55b',
|
||||
'openai' => 'gpt-4o-mini',
|
||||
'anthropic' => 'claude-3-5-sonnet-latest',
|
||||
'openrouter' => 'openai/gpt-4o-mini',
|
||||
'vertex' => 'gemini-2.0-flash',
|
||||
'custom' => 'gpt-4o-mini',
|
||||
];
|
||||
|
||||
public static function current_id(): string {
|
||||
$id = (string) Options::get('aap_ai_provider', 'nvidia');
|
||||
return isset(self::LABELS[$id]) ? $id : 'nvidia';
|
||||
}
|
||||
|
||||
public static function make(?string $provider_id = null): ?Provider {
|
||||
$id = $provider_id ?? self::current_id();
|
||||
$timeout = max(10, Options::int('aap_ai_timeout'));
|
||||
$model = trim((string) Options::get('aap_model', ''));
|
||||
|
||||
return match ($id) {
|
||||
'openai' => new OpenAiProvider((string) Options::get('aap_openai_api_key', ''), $model, $timeout),
|
||||
'anthropic' => new AnthropicProvider((string) Options::get('aap_anthropic_api_key', ''), $model, $timeout),
|
||||
'openrouter' => new OpenRouterProvider((string) Options::get('aap_openrouter_api_key', ''), $model, $timeout),
|
||||
'vertex' => new VertexProvider(
|
||||
(string) Options::get('aap_vertex_project', ''),
|
||||
(string) Options::get('aap_vertex_location', 'us-central1'),
|
||||
(string) Options::get('aap_vertex_service_account', ''),
|
||||
$model,
|
||||
$timeout
|
||||
),
|
||||
'custom' => new CustomProvider((string) Options::get('aap_custom_api_key', ''), $model, $timeout),
|
||||
default => new NvidiaProvider((string) Options::get('aap_nvidia_api_key', ''), $model, $timeout),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user