# Zactonz AI Connector for DeepSeek

> DeepSeek connector for the WordPress AI Client. A very long context window, vision on the Flash model, and thinking mode you can turn up, down or off.

- **Type:** Plugin (WordPress plugins)
- **Version:** 1.0.2, released 29 Oct 2026
- **Requires:** WordPress 7.0+, PHP 7.4+, A DeepSeek account and API key
- **Tested with:** WordPress 7.1.4
- **Licence:** GPL-2.0-or-later
- **Download:** https://downloads.wordpress.org/plugin/zactonz-ai-connector-for-deepseek.latest-stable.zip
- **WordPress.org:** https://wordpress.org/plugins/zactonz-ai-connector-for-deepseek/
- **Source:** https://github.com/zactonz/zactonz-ai-connector-for-deepseek
- **Documentation:** https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-deepseek/

## Overview

Zactonz AI Connector for DeepSeek registers DeepSeek as a connector for the WordPress AI Client. It is built for the **Settings › Connectors** screen and for the plugin-directory connector search, so when WordPress asks for a connector you can add DeepSeek in a couple of clicks. Once active, the models on your DeepSeek account are available to AI features in WordPress.

DeepSeek serves a fast model and a larger one, both with a very long context window and a thinking mode that can be turned up, down or off per request. The connector reads the DeepSeek catalogue for each model's display name, context window, input types and available thinking levels, so vision is offered on the models that accept images and not on the ones that do not.

![The DeepSeek settings screen in WordPress](https://developers.zactonz.com/assets/images/wordpress/zactonz-ai-connector-for-deepseek-settings.webp)

*Settings › DeepSeek: the discovered models, a default per capability, the reasoning effort control and the catalogue with each model's capabilities.*

### Features

- Text generation with every DeepSeek chat model your credentials can reach.
- Automatic model discovery, with each model's name, context window and input types taken from the DeepSeek catalogue.
- Vision input on the models that accept images.
- Tool calling.
- JSON output, so a feature can ask for a machine-readable reply.
- Thinking-mode control for the default text model.
- Thinking output is kept out of the published text while still being recorded on the result.
- Cancellable server-sent event streaming for content, thinking and tool-call chunks.
- A configurable request timeout, defaulting high because a thinking reply takes longer.
- API key supplied by a PHP constant or an environment variable instead of the database.
- An API base URL override for a proxy or gateway, within the hosts and ports WordPress allows outbound requests to.
- Redacted diagnostics and a WordPress Site Health connectivity test.

### A note on structured output

DeepSeek offers JSON output, which guarantees valid JSON, but it does not accept a JSON schema the way some other providers do. The connector therefore asks for JSON mode rather than sending a schema DeepSeek would reject, and does not advertise schema support for DeepSeek models. Where a provider does accept a schema, the connectors in this family use it.

### Part of a family

This connector is one of the Zactonz AI Connector plugins, which add the providers WordPress core leaves out. They follow one set of conventions, so every connector behaves the same way in the admin. [Zactonz AI Connector for Ollama](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-provider-ollama/) covers local, self-hosted and Ollama Cloud models; [Zactonz AI Connector for OpenRouter](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-openrouter/) covers hundreds of hosted models behind one key; [Zactonz AI Connector for Groq](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-groq/) covers very low latency inference on GroqCloud; [Zactonz AI Connector for Mistral AI](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-mistral-ai/) covers Mistral AI's open-weight and commercial models with capabilities read from its catalogue; [Zactonz AI Connector for xAI Grok](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-xai-grok/) covers Grok text, vision and image generation. All of them are listed under [WordPress](https://developers.zactonz.com/wordpress/).

### Not affiliated

This connector is developed by Zactonz Technologies and is not affiliated with, endorsed by or sponsored by DeepSeek. DeepSeek is a trademark of Hangzhou DeepSeek Artificial Intelligence Co., Ltd.

## Installation & setup

### Install the plugin

From the dashboard, go to **Plugins › Add New**, search for **Zactonz AI Connector for DeepSeek** and click **Install Now**, then **Activate**. WordPress also links here directly from **Settings › Connectors** when it needs a connector that is not installed yet.

With WP-CLI:

```bash
wp plugin install zactonz-ai-connector-for-deepseek --activate
```

To install manually, download the zip from the Download button above, upload the folder to `/wp-content/plugins/zactonz-ai-connector-for-deepseek/` and activate it from the **Plugins** menu.

### Connect to DeepSeek

1. Create an API key on the [DeepSeek open platform](https://platform.deepseek.com/api_keys).
2. Go to **Settings › Connectors** and paste the key into the DeepSeek connector.
3. Go to **Settings › DeepSeek** to review the discovered models and choose a default model per capability, a thinking level for the default text model, and the request timeout.

The key is stored in the option WordPress registers for the connector, so the Connectors screen and the connector's own settings screen always show the same credential.

![The DeepSeek connector on the WordPress Connectors screen](https://developers.zactonz.com/assets/images/wordpress/zactonz-ai-connector-for-deepseek-connector.webp)

*Settings › Connectors: the DeepSeek connector with its key saved, as WordPress shows it beside its own connectors.*

### Keep the key out of the database

Define `DEEPSEEK_API_KEY` in `wp-config.php`, or set an environment variable of the same name. When either is present the connector uses it, the settings field is disabled, and nothing is written to the database.

```php
define( 'DEEPSEEK_API_KEY', 'sk-…' );
```

### Thinking mode and timeouts

DeepSeek's models think by default. The thinking level applies to the default text model and maps onto DeepSeek's own effort levels, with **No reasoning** turning thinking off. A thinking reply takes longer to arrive, so the connector's default request timeout is generous; raise it further under **Settings › DeepSeek** if you ask for long answers at the highest level.

### Use a proxy or gateway

**Settings › DeepSeek** has an API base URL field. Leave it empty to use `https://api.deepseek.com/v1`, or point it at a gateway that speaks the same API.

AI features reach the gateway through the WordPress AI Client, which sends every request with `wp_safe_remote_request()`. WordPress refuses such requests to loopback and private network addresses and to any port other than 80, 443 and 8080, so a gateway on a LAN address or a non-standard port will not work unless the site allows that host with the `http_request_host_is_external` filter. The connector's own connection check and Site Health test do not apply that restriction, so with such a gateway they can report a healthy connection while AI features still cannot reach it. Use a public hostname on a standard port, or add the filter.

### Check the connection

**Tools › Site Health** includes a connectivity test for DeepSeek, which runs in the background so it never holds the screen open. **Settings › DeepSeek** has a diagnostics button that reports the endpoint, HTTP status, latency, the number of discovered models, any configured defaults missing from the current catalogue, and the AI Client version. The key never appears in the report.

## FAQ

### Where do I get an API key?

Create one on the DeepSeek open platform at [platform.deepseek.com/api_keys](https://platform.deepseek.com/api_keys).

### Which models will I see?

Every model your DeepSeek account can reach. Each one's display name, context window and accepted input types come from the DeepSeek catalogue, so vision appears only on the models that accept images.

### Can I turn thinking off?

Yes. **Settings › DeepSeek** has a thinking control for the default text model, and **No reasoning** turns thinking mode off for that model. The other levels map onto DeepSeek's own effort levels.

### Where does the thinking text go?

It is recorded on the result as reasoning content, separate from the answer, and it is not part of the published text. Streaming callers also receive it as its own event type.

### Can I ask for a JSON schema?

DeepSeek offers JSON output, which guarantees valid JSON, but it does not accept a JSON schema. The connector asks for JSON mode instead of sending a schema DeepSeek would reject, so features that require a strict schema should use a connector whose provider supports one.

### Does this replace the connectors in WordPress core?

No. WordPress core ships its own connectors. This plugin adds DeepSeek alongside them, and you can keep several connectors active at once and pick a default model per capability.

### Is my key ever displayed or logged?

No. It is never rendered back into the settings screen, and it is excluded from the diagnostics report and from Site Health debug information.

### Which WordPress and PHP versions are supported?

WordPress 7.0 or newer and PHP 7.4 or newer. The connector is tested against the AI Client build that ships with WordPress 7.1 as well as the newest release.

## Changelog

### 1.0.2 — 29 October 2026

**Fixed**

- A reply arrived empty when the provider answered with a list of content chunks rather than a single string, which the AI Client's parser does not read. The chunks were dropped, so the request looked successful and returned nothing.
- Models the provider serves for other tasks, such as transcription, speech and moderation, were offered as text models. The task the provider declares is now believed rather than guessed from the model's name.
- Entries the provider marks as internal reached the model picker. They answer the listing but are not products.
- The reasoning effort selector could offer a level the connector would not then accept. The list the selector is built from and the list that is accepted are now the same one, and are tested against each other.

**Changed**

- The reasoning effort description said a model that always reasons ignores the setting. Which levels a model accepts is the provider's business, and a model may ignore or refuse the level chosen.
- The base URL override wording now says that WordPress restricts which hosts and ports an outbound request may reach.

### 1.0.1 — 6 October 2026

**Fixed**

- The settings screen reported no saved API key, and hid the control that removes it, on a site where AI support is switched off. The key is read back from the AI Client, which WordPress only populates while it is wiring connectors.
- The model-discovery answer in the FAQ described capability detection for embeddings, which this connector does not offer, and claimed capabilities are read from the provider rather than guessed. Where DeepSeek publishes no capability data for a model the connector falls back to inference.
- A streaming request whose parameters could not be encoded as JSON, malformed UTF-8 in post content being the realistic case, sent an empty body and drew a puzzling error from the provider. It now reports what actually went wrong.

### 1.0.0 — 30 September 2026

- Initial release.
- Registers DeepSeek with the WordPress AI Client and the Settings › Connectors screen.
- Discovers models from the DeepSeek catalogue, with display names, context windows and accepted input types, so vision is offered only where DeepSeek accepts images.
- JSON output rather than a JSON schema, matching what DeepSeek accepts.
- Thinking-mode control for the default text model, with thinking output recorded separately from the answer.
- Cancellable server-sent event streaming for content, thinking and tool-call chunks.
- Redacted diagnostics report and an asynchronous WordPress Site Health connectivity test.
- API key from a PHP constant or an environment variable.
