Connect WordPress 7.0 AI to your own Ollama server
O WordPress 7.0 chegou com integração nativa de AI — o novo WordPress AI Client permite usar modelos de linguagem directamente no editor para escrever, resumir e melhorar conteúdo.
O problema: todos os conectores disponíveis exigem uma API key de um serviço cloud (OpenAI, Anthropic, Google…). Para quem usa Ollama — o runtime que corre modelos como Llama 3, Mistral, Gemma ou Phi localmente, sem custos por token — não existia nenhum conector oficial.
Desenvolvi este plugin WordPress de raiz para fechar essa lacuna.
Liga o novo AI Client do WordPress 7.0 a qualquer servidor Ollama local ou remoto, usando o endpoint OpenAI-compatível que o Ollama já expõe. Sem registo, sem subscrição, sem dados a sair da máquina.
- +Zero API key — sem registo nem subscrição
- +Descoberta automática de todos os modelos instalados no Ollama
- +Interface no wp-admin (Settings → Connectors) com status em tempo real
- +Compatível com Ollama local, Docker ou servidor remoto
- +URL configurável: wp-admin → constante PHP → env var → default
- +Sem dependências externas — sem Composer, sem node_modules
- +GPL-2.0-or-later — free e open-source
plugin.php
├─ register_provider() → regista no WP AI Client registry
├─ register_connector() → aparece em Settings → Connectors
├─ register_rest_endpoint() → POST /ai-provider-for-ollama-local/v1/settings
└─ enqueue_connector_card_module()
src/
├─ Provider/OllamaProvider.php
│ └─ extends AbstractApiProvider
├─ Models/OllamaTextGenerationModel.php
│ └─ POST /v1/chat/completions (OpenAI-compatible)
├─ Metadata/OllamaModelMetadataDirectory.php
│ └─ GET /v1/models (model discovery)
└─ Support/OllamaConfig.php
└─ option → constant → env var → default URL
assets/connector-card.js
└─ React UI (wp.element) sem build step| Decisão | Motivo |
|---|---|
| Sem Composer | Instalar = upload da pasta. Zero dependências de runtime |
| Autoloader PSR-4 manual | Mesma razão — independente do ambiente PHP |
| esc_url_raw + sanitize_text_field | Boas práticas de segurança WordPress em todos os inputs |
| REST endpoint próprio | Guardar configuração via fetch sem recarregar a página |
| Placeholder API key | WP AI Client exige auth configurada; token local evita erros |
| wp.element sem build step | Zero configuração de tooling para contribuidores |