=== AI Provider for OpenAI Compatible Servers === Contributors: georgestephanis Tags: ai, ollama, openai, llm, local ai Requires at least: 7.0 Tested up to: 7.0 Requires PHP: 7.4 Stable tag: 1.0.0 License: GPL-2.0-or-later License URI: https://spdx.org/licenses/GPL-2.0-or-later.html Connect local or self-hosted OpenAI-compatible servers (Ollama, LM Studio, vLLM, and more) to the WordPress AI Client. == Description == This plugin registers a provider for the WordPress AI Client that talks to any server implementing the OpenAI Chat Completions API — including Ollama, LM Studio, vLLM, llama.cpp, and LocalAI. Run AI features in WordPress against models on your own hardware. No third-party AI service, no per-token billing, and no content leaving your network. = Features = * Connect to any OpenAI-compatible base URL, local or remote (defaults to Ollama's `http://localhost:11434/v1`). * Autodetect available models from the server's `/models` endpoint, or specify models manually. * Setup card on the Connectors settings screen with a one-click connection test. * Best-effort detection of the running backend (Ollama, vLLM, or LM Studio), swapping in the brand's name and icon on the connector card once detected. * Optional API key (bearer token) for servers that require authentication. * Custom HTTP headers for reverse proxies and gateways. * Advanced options for reasoning models: disable thinking blocks, and an R1-style message format that folds the system prompt into the first user message (needed for DeepSeek-R1). * Context length override and a vision/multimodal support toggle. = Requirements = * The WordPress AI Client must be available (WordPress 7.0+). * A running OpenAI-compatible inference server reachable from your web server. == Installation == 1. Install and activate the plugin. 2. Go to Settings → Connectors and locate "OpenAI Compatible". 3. Click "Set up", enter your server's base URL (including `/v1`), and an API key if needed. 4. Click "Test Credentials" to verify the connection and detect models, then Save. == Frequently Asked Questions == = Which servers are supported? = Anything that implements the OpenAI-compatible `/v1/models` and `/v1/chat/completions` endpoints: Ollama, LM Studio, vLLM, llama.cpp server, LocalAI, and many others. = Do I need an API key? = Only if your server requires one. Local servers like Ollama usually don't; leave the field empty or use a placeholder value. = Can my server run on a different machine? = Yes. Enter any base URL reachable from your WordPress host. The plugin allows requests to the configured base URL even when it resolves to a local/private address. = Does this send my content to a third party? = No. Requests go only to the server base URL you configure. == Developer Hooks == This plugin provides several filters for other plugins to dynamically extend its functionality: * **`connectors_ai_openai_compatible_servers_request_data`**: Filters the completions request body payload before it is sent to the endpoint. Passed arguments: `$data` (array), `$modelId` (string). * **`connectors_ai_openai_compatible_servers_request_headers`**: Filters HTTP headers for all request pathways. Passed arguments: `$headers` (array), `$path` (string), `$method` (string). * **`connectors_ai_openai_compatible_servers_detect_provider`**: Adds or overrides detection checks when probing server origins. Passed arguments: `$detected_type` (null|string), `$base_url` (string), `$headers` (array), `$probe_args` (array). * **`connectors_ai_openai_compatible_servers_model_options`**: Modifies the `SupportedOption` array for a resolved model. Passed arguments: `$options` (array), `$modelId` (string), `$mode` (string: 'manual' or 'autodetect'). * **`connectors_ai_openai_compatible_servers_model_capabilities`**: Modifies the `CapabilityEnum` array for a resolved model. Passed arguments: `$capabilities` (array), `$modelId` (string), `$mode` (string: 'manual' or 'autodetect'). == Screenshots == 1. The OpenAI Compatible connector's setup card on the Connectors settings screen — base URL, API key, and autodetect/manual model selection. 2. A successful connection test with manually specified models, detected models to enable, and the advanced settings (context length, thinking-block toggle, image support, R1 message format, custom headers). == Credits == The Ollama, vLLM, and LM Studio brand icons shown when a server is detected are from [LobeHub's lobe-icons](https://github.com/lobehub/lobe-icons), used under the MIT license. == Changelog == = 1.0.0 = * Initial release. == Upgrade Notice == = 1.0.0 = Initial release.