{"id":343101,"date":"2026-10-14T19:22:16","date_gmt":"2026-10-14T19:22:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-deepseek-connector-with-web-search\/"},"modified":"2026-10-14T20:02:50","modified_gmt":"2026-10-14T20:02:50","slug":"vachr-web-search-connector-for-deepseek","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vachr-web-search-connector-for-deepseek\/","author":23454938,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.10","stable_tag":"1.0.10","tested":"7.1.3","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Vachr Web Search Connector for DeepSeek","header_author":"Radomir Vach","header_description":"Connect WordPress to DeepSeek with real web search, visitor chat, a protected REST API, and a PHP helper.","assets_banners_color":"204c72","last_updated":"2026-10-14 20:02:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"chuckumi","date":"2026-10-14 20:02:50","revision":3747071}},"upgrade_notice":{"1.0.10":"<p>Uses the WordPress AI Client for configured DeepSeek credentials and aligns the text domain with the plugin slug.<\/p>","1.0.9":"<p>Corrects unsupported Flash model IDs and adds DeepSeek V4 Pro.<\/p>","1.0.8":"<p>Long generations no longer time out after a short period; the timeout can be adjusted with the <code>aidsw_deepseek_request_timeout<\/code> filter.<\/p>","1.0.7":"<p>Restores WordPress 6.4+ compatibility and removes production debug-log writes.<\/p>","1.0.6":"<p>When WordPress AI Request Logging is enabled, Web Search requests are visible in its central request-log screen.<\/p>","1.0.5":"<p>Web Search is now enabled by default. Pass <code>web_search: false<\/code> or <code>false<\/code> as the PHP helper&#039;s third argument to disable it for one request.<\/p>","1.0.4":"<p>Ordinary text generation now uses the WordPress AI Client; Web Search is enabled by default.<\/p>","1.0.3":"<p>Prompt and response diagnostic storage has been removed.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3746990,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3746990,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3746990,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3746990,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.10"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3746990,"resolution":"1","location":"assets","locale":"","width":2342,"height":1374},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3746990,"resolution":"2","location":"assets","locale":"","width":2886,"height":1500}},"screenshots":{"1":"DeepSeek connected in WordPress Settings &gt; Connectors.","2":"Vachr Web Search Connector settings, including the model, visitor chat, and external application API options."}},"plugin_section":[],"plugin_tags":[2353,2364,25308,237722,286810],"plugin_category":[],"plugin_contributors":[259308],"plugin_business_model":[],"class_list":["post-343101","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatbot","plugin_tags-connector","plugin_tags-deepseek","plugin_tags-web-search","plugin_contributors-chuckumi","plugin_committers-chuckumi"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/vachr-web-search-connector-for-deepseek\/assets\/icon.svg?rev=3746990","icon":"https:\/\/ps.w.org\/vachr-web-search-connector-for-deepseek\/assets\/icon.svg?rev=3746990","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vachr-web-search-connector-for-deepseek\/assets\/screenshot-1.png?rev=3746990","caption":"DeepSeek connected in WordPress Settings &gt; Connectors."},{"src":"https:\/\/ps.w.org\/vachr-web-search-connector-for-deepseek\/assets\/screenshot-2.png?rev=3746990","caption":"Vachr Web Search Connector settings, including the model, visitor chat, and external application API options."}],"raw_content":"<!--section=description-->\n<p>Vachr Web Search Connector for DeepSeek connects WordPress to DeepSeek's Anthropic-compatible Messages API. It can perform real web searches through DeepSeek's hosted search tool, then use the results to answer questions. Web Search is enabled by default and can be disabled for an individual request. The plugin also provides an optional visitor chat, a protected server-side REST API, and a PHP helper for other plugins and themes. Your DeepSeek API key stays on the WordPress server and is never exposed to visitors or external applications.<\/p>\n\n<p>All requests use the WordPress AI Client and the centrally configured DeepSeek connector. When Web Search is enabled, the DeepSeek provider adapter sends the provider-specific server-tool request through the AI Client's authenticated transport.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Adds the <code>[deepseek_chat]<\/code> shortcode for an optional visitor chat.<\/li>\n<li>Adds a protected <code>POST \/wp-json\/ai-deepseek\/v1\/chat<\/code> endpoint for external applications.<\/li>\n<li>Provides <code>ai_deepseek_connector_websearch_query()<\/code> for other plugins and themes on the same site.<\/li>\n<li>Uses the WordPress AI Client for chat and provider-hosted Web Search, with one key managed in Settings &gt; Connectors.<\/li>\n<li>Pass <code>web_search: false<\/code> to disable provider-hosted Web Search for one request.<\/li>\n<li>Returns generated text, provider-returned source links when available, and token-usage data.<\/li>\n<li>Registers DeepSeek in the native Connectors screen.<\/li>\n<\/ul>\n\n<h4>How Web Search works<\/h4>\n\n<p>Web Search is performed by DeepSeek's server-side tool, not by WordPress and not by a crawler included in this plugin. It is enabled by default for the visitor chat, REST API, and PHP helper.<\/p>\n\n<p>To disable it for one request, set <code>web_search: false<\/code> in a REST request, clear the chat checkbox, or pass <code>false<\/code> as the third PHP-helper argument.<\/p>\n\n<p>Chat and search use the same DeepSeek API key from Settings &gt; Connectors; the AI Client supplies the key to the provider adapter without the plugin reading it. DeepSeek may send the question to its search infrastructure and can make an additional model request to turn tool results into a final response. This can increase latency and API cost. Source links are returned only when the provider includes them.<\/p>\n\n<h4>External service and privacy<\/h4>\n\n<p>This plugin sends the following data to DeepSeek through the WordPress AI Client: the question, selected model, system instructions, and whether Web Search was requested. Web Search can cause DeepSeek to process the question through its search service. The DeepSeek API key is sent only from the WordPress server to DeepSeek; it is never exposed to visitors or REST clients.<\/p>\n\n<p>The plugin does not store questions, responses, source links, or conversations in the WordPress database. It does not use analytics or tracking.<\/p>\n\n<p>If the site owner explicitly enables the WordPress AI feature <strong>AI Request Logging<\/strong>, requests made through this connector are added to its central AI Request Logs screen. That feature can retain request and response previews, model, token usage, duration, and errors according to its own settings. No connector request is added there while the feature is disabled.<\/p>\n\n<p>Before enabling public chat, inform visitors about the data transfer and establish a lawful basis appropriate to your jurisdiction. Do not submit sensitive personal data. Review the <a href=\"https:\/\/platform.deepseek.com\/downloads\/DeepSeek%20Privacy%20Policy.pdf\">DeepSeek Privacy Policy<\/a> and applicable DeepSeek terms.<\/p>\n\n<h4>Security<\/h4>\n\n<p>The external REST endpoint requires an integration bearer token, generated on activation and visible only to WordPress administrators. Treat it as a password and replace it immediately if it may have been exposed. Browser chat requests use a WordPress REST nonce, and public chat is disabled by default. Public browser requests are limited to 12 per five minutes per IP address.<\/p>\n\n<h3>Developer usage<\/h3>\n\n<h4>REST API<\/h4>\n\n<p>Send a JSON request to your own WordPress site. Never place the integration token in browser JavaScript.<\/p>\n\n<pre><code>POST https:\/\/your-site.example\/wp-json\/ai-deepseek\/v1\/chat\n<\/code><\/pre>\n\n<p>Headers:<\/p>\n\n<pre><code>Authorization: Bearer YOUR_INTEGRATION_TOKEN\n\nContent-Type: application\/json\n<\/code><\/pre>\n\n<p>Example request:<\/p>\n\n<pre><code>curl -X POST https:\/\/your-site.example\/wp-json\/ai-deepseek\/v1\/chat -H \"Authorization: Bearer YOUR_INTEGRATION_TOKEN\" -H \"Content-Type: application\/json\" -d '{\"message\":\"What changed in WordPress this week?\",\"web_search\":true}'\n<\/code><\/pre>\n\n<p>Request fields:<\/p>\n\n<ul>\n<li><code>message<\/code> (string, required): question, up to 12,000 characters.<\/li>\n<li><code>web_search<\/code> (boolean, optional): use DeepSeek's web-search tool; defaults to <code>true<\/code>. Set it to <code>false<\/code> to use standard text generation instead.<\/li>\n<\/ul>\n\n<p>Successful response fields:<\/p>\n\n<ul>\n<li><code>text<\/code> (string): generated final answer.<\/li>\n<li><code>sources<\/code> (array): links returned by DeepSeek, when available.<\/li>\n<li><code>usage<\/code> (object): provider token-usage object.<\/li>\n<\/ul>\n\n<p>Errors use normal WordPress REST error objects and appropriate HTTP status codes, including 400 for invalid messages, 403 for authentication or disabled chat, 429 for the public-chat rate limit, and 502 for upstream failures.<\/p>\n\n<h4>PHP API<\/h4>\n\n<p>Other code running on the same WordPress site can call:<\/p>\n\n<pre><code>$result = ai_deepseek_connector_websearch_query( 'What is the latest WordPress release?', 'deepseek-flash' );\n<\/code><\/pre>\n\n<p>Supported model IDs are <code>deepseek-flash<\/code> and <code>deepseek-v4-pro<\/code>. For compatibility, the aliases <code>deepseek-v4-flash<\/code> and <code>deepseek-v4.1-flash<\/code> are normalized to <code>deepseek-flash<\/code>. Web Search is enabled by default. Pass <code>false<\/code> as the third argument to disable it: <code>$result = ai_deepseek_connector_websearch_query( 'Summarize this text', 'deepseek-flash', false );<\/code>. The helper returns the same <code>text<\/code>, <code>sources<\/code>, and <code>usage<\/code> array as the REST endpoint, or a <code>WP_Error<\/code>. Check errors before accessing the response:<\/p>\n\n<pre><code>if ( is_wp_error( $result ) ) { \/* handle $result-&gt;get_error_message() *\/ }\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin on WordPress 7.0 or newer.<\/li>\n<li>Go to Settings &gt; Connectors and add your DeepSeek API key. The same key is used for chat and Web Search.<\/li>\n<li>Go to Settings &gt; Vachr Web Search Connector, choose a DeepSeek model, and save.<\/li>\n<li>To show the visitor chat, enable \u201cAllow Chat for Visitors\u201d and add <code>[deepseek_chat]<\/code> to a page or post.<\/li>\n<li>For an external integration, copy the Integration Token from the same settings screen and store it in that application's secret manager.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20a%20deepseek%20api%20key%3F\"><h3>Where do I get a DeepSeek API key?<\/h3><\/dt>\n<dd><p>Create one in your DeepSeek platform account and save it in Settings &gt; Connectors. The plugin and its Web Search provider use the same centrally managed key. Do not put it in page content, JavaScript, or an external client.<\/p><\/dd>\n<dt id=\"does%20web%20search%20always%20return%20citations%3F\"><h3>Does Web Search always return citations?<\/h3><\/dt>\n<dd><p>No. Citations depend on what DeepSeek returns for the request. The plugin displays and returns source links when they are present.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20save%20conversations%20or%20ai%20requests%3F\"><h3>Does the plugin save conversations or AI requests?<\/h3><\/dt>\n<dd><p>No. The connector has no conversation database or diagnostic archive. However, when the site owner explicitly enables WordPress AI's <strong>AI Request Logging<\/strong> feature, the connector writes compatible request records to its central AI Request Logs screen.<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20debugging%3F\"><h3>How do I enable debugging?<\/h3><\/dt>\n<dd><p>Use WordPress's standard debugging configuration in <code>wp-config.php<\/code>; this plugin has no separate logging switch.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Use the WordPress AI Client for configured DeepSeek credentials.<\/li>\n<li>Match the plugin text domain to its WordPress.org slug.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Add support for the <code>deepseek-v4-pro<\/code> model.<\/li>\n<li>Normalize <code>deepseek-v4.1-flash<\/code> and the previous <code>deepseek-v4-flash<\/code> setting to the API's <code>deepseek-flash<\/code> model ID.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Raise the standard DeepSeek AI Client request timeout to ten minutes for long generations.<\/li>\n<li>Add the <code>aidsw_deepseek_request_timeout<\/code> filter for site-specific timeout configuration.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Restore compatibility with WordPress 6.4+ while retaining WordPress AI Client support when available.<\/li>\n<li>Remove production debug-log writes.<\/li>\n<li>Escape the public-chat setting description consistently.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Add Web Search adapter requests to WordPress AI Request Logs when that WordPress AI feature is enabled.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Enable Web Search by default; disable it per REST or PHP request when needed.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Route ordinary text generation through the standard WordPress AI Client on WordPress 7.0+.<\/li>\n<li>Keep DeepSeek's Anthropic adapter only for provider-specific Web Search requests.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Removed prompt and response diagnostic storage.<\/li>\n<li>Use WordPress debug logging only for minimal, non-sensitive technical errors.<\/li>\n<li>Expanded privacy, Web Search, REST API, and PHP API documentation.<\/li>\n<li>Improved translation readiness and synchronized release metadata.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to DeepSeek with real, provider-powered web search, an optional visitor chat, a protected REST API, and a PHP helper.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343101"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/chuckumi"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343101"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343101"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343101"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343101"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343101"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}