{"id":284493,"date":"2026-02-24T10:33:33","date_gmt":"2026-02-24T10:33:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/geweb-ai-search\/"},"modified":"2026-03-24T08:09:30","modified_gmt":"2026-03-24T08:09:30","slug":"geweb-ai-search","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/geweb-ai-search\/","author":14566605,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.4","stable_tag":"2.1.4","tested":"6.9.4","requires":"6.0","requires_php":"7.2","requires_plugins":null,"header_name":"Geweb AI Search","header_author":"gavrilovweb","header_description":"AI-powered search for WordPress using Google Gemini. Smart answers, source links, and instant autocomplete \u2014 all in one modal.","assets_banners_color":"1d2027","last_updated":"2026-03-24 08:09:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/aisearch.mygeweb.com\/","header_author_uri":"https:\/\/www.linkedin.com\/in\/evgengavrilov","rating":0,"author_block_rating":0,"active_installs":0,"downloads":474,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"gavrilov.web","date":"2026-02-24 10:32:47"},"2.1.0":{"tag":"2.1.0","author":"gavrilov.web","date":"2026-03-09 19:45:25"},"2.1.1":{"tag":"2.1.1","author":"gavrilov.web","date":"2026-03-14 12:59:00"},"2.1.2":{"tag":"2.1.2","author":"gavrilov.web","date":"2026-03-17 09:59:27"},"2.1.3":{"tag":"2.1.3","author":"gavrilov.web","date":"2026-03-18 08:18:58"},"2.1.4":{"tag":"2.1.4","author":"gavrilov.web","date":"2026-03-24 08:09:30"}},"upgrade_notice":{"2.0.0":"<p>Major rewrite. After upgrading, please go to Settings \u2192 Geweb AI Search and click &quot;Generate Library&quot; to re-index your content. Your API key and settings will be preserved.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3472117,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3472117,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3472117,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3472117,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3472125,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3472125,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3472125,"resolution":"3","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,5739,224606,944,140844],"plugin_category":[],"plugin_contributors":[126935],"plugin_business_model":[],"class_list":["post-284493","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-artificial-intelligence","plugin_tags-gemini","plugin_tags-search","plugin_tags-semantic-search","plugin_contributors-gavrilovweb","plugin_committers-gavrilovweb"],"banners":{"banner":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/banner-772x250.png?rev=3472117","banner_2x":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/banner-1544x500.png?rev=3472117","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/icon-128x128.png?rev=3472117","icon_2x":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/icon-256x256.png?rev=3472117","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/screenshot-1.png?rev=3472125","caption":""},{"src":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/screenshot-2.png?rev=3472125","caption":""},{"src":"https:\/\/ps.w.org\/geweb-ai-search\/assets\/screenshot-3.png?rev=3472125","caption":""}],"raw_content":"<!--section=description-->\n<p>Live demo: https:\/\/aisearch.mygeweb.com\/<\/p>\n\n<p>Geweb AI Search transforms your WordPress search into an intelligent assistant powered by Google Gemini AI. Instead of returning a plain list of matching posts, it understands the user's question and provides a direct, contextual answer \u2014 along with links to the source pages.<\/p>\n\n<p>The plugin intercepts the standard WordPress search form and opens a modal with two modes: instant autocomplete suggestions (via WP_Query) and a full AI chat powered by Google Gemini File Search.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>AI-Powered Answers<\/strong> \u2014 Uses Google Gemini File Search to find relevant content and generate natural-language answers<\/li>\n<li><strong>Conversation History<\/strong> \u2014 Users can ask follow-up questions; the context is maintained across the session<\/li>\n<li><strong>Source Attribution<\/strong> \u2014 Every AI answer includes links to the pages it was based on<\/li>\n<li><strong>Instant Autocomplete<\/strong> \u2014 Traditional keyword search with live suggestions while typing<\/li>\n<li><strong>Automatic Indexing<\/strong> \u2014 Posts are automatically uploaded to Gemini when published or updated<\/li>\n<li><strong>Bulk Library Generation<\/strong> \u2014 Index all existing content with one click and a live progress indicator<\/li>\n<li><strong>Multiple AI Models<\/strong> \u2014 Choose between Gemini 2.5 Flash, 2.5 Pro, and Gemini 3 models<\/li>\n<li><strong>Multiple Post Types<\/strong> \u2014 Index any public post type: posts, pages, or custom post types<\/li>\n<li><strong>Secure API Key Storage<\/strong> \u2014 API key is encrypted with libsodium before being stored in the database<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>The plugin converts your WordPress posts to Markdown format (with URL and title in frontmatter)<\/li>\n<li>Each document is uploaded to a Google Gemini File Search Store<\/li>\n<li>When a user submits a search query, Gemini searches the indexed documents and generates an answer<\/li>\n<li>The answer is displayed in a chat modal along with source links<\/li>\n<\/ol>\n\n<h4>Third-Party Services<\/h4>\n\n<p>This plugin connects to the <strong>Google Gemini API<\/strong> to index your content and answer user queries.<\/p>\n\n<ul>\n<li>API endpoint: https:\/\/generativelanguage.googleapis.com\/<\/li>\n<li>Terms of Service: https:\/\/ai.google.dev\/gemini-api\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Data sent to Google:<\/strong><\/p>\n\n<ul>\n<li>Your post content (title and body), converted to Markdown, is uploaded to Gemini for indexing<\/li>\n<li>User search queries are sent to Gemini to generate answers<\/li>\n<\/ul>\n\n<p>By using this plugin you agree to Google's Terms of Service and Privacy Policy. You are responsible for the content you index.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>PHP 7.2 or higher (libsodium is bundled with PHP 7.2+)<\/li>\n<li>WordPress 6.0 or higher<\/li>\n<li>Google Gemini API key (free tier available at https:\/\/aistudio.google.com\/app\/apikey)<\/li>\n<\/ul>\n\n<h3>Customization<\/h3>\n\n<h4>How do I customize the AI behavior?<\/h4>\n\n<p>You can modify the AI system instruction and available models:<\/p>\n\n<pre><code>\/\/ Customize AI system instruction\nadd_filter('geweb_aisearch_gemini_system_instruction', function($instruction) {\n    return $instruction . \"\\nAlways respond in a friendly, conversational tone.\";\n});\n\n\/\/ Limit available models in settings\nadd_filter('geweb_aisearch_gemini_models', function($models) {\n    return ['gemini-2.5-flash', 'gemini-2.5-pro'];\n});\n<\/code><\/pre>\n\n<p>Available filters:\n* <code>geweb_aisearch_gemini_system_instruction<\/code> - Modify AI prompt\/behavior\n* <code>geweb_aisearch_gemini_models<\/code> - Customize available model list in settings<\/p>\n\n<h4>How do I translate the interface texts?<\/h4>\n\n<p>You can customize all search interface labels using filters in your theme's functions.php:<\/p>\n\n<pre><code>\/\/ Customize search placeholder\nadd_filter('geweb_aisearch_search_placeholder', function($text) {\n    return 'What would you like to know?';\n});\n\n\/\/ Customize \"Ask AI\" button text\nadd_filter('geweb_aisearch_ask_ai_button_text', function($text) {\n    return 'Ask Pythia';\n});\n\n\/\/ Customize AI modal title\nadd_filter('geweb_aisearch_ai_modal_title', function($text) {\n    return 'Oracle Pythia';\n});\n\n\/\/ Customize AI textarea placeholder\nadd_filter('geweb_aisearch_ai_textarea_placeholder', function($text) {\n    return 'Write your detailed question to Pythia';\n});\n<\/code><\/pre>\n\n<p>Available filters:\n* <code>geweb_aisearch_search_placeholder<\/code> - Main search input placeholder\n* <code>geweb_aisearch_ask_ai_button_text<\/code> - \"Ask AI\" button label\n* <code>geweb_aisearch_ai_modal_title<\/code> - AI chat modal header\n* <code>geweb_aisearch_ai_textarea_placeholder<\/code> - AI question textarea placeholder<\/p>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>This plugin bundles the following open-source library:<\/p>\n\n<p><strong>league\/html-to-markdown<\/strong>\n* Version: 5.x\n* Author: The League of Extraordinary Packages\n* License: MIT License\n* Repository: https:\/\/github.com\/thephpleague\/html-to-markdown\n* Purpose: Converts WordPress post HTML content to Markdown for AI indexing<\/p>\n\n<h3>Support<\/h3>\n\n<ul>\n<li>GitHub: https:\/\/github.com\/mygeweb\/geweb-ai-search<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for \"Geweb AI Search\"<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Select the ZIP file and click <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Go to <strong>Settings \u2192 Geweb AI Search<\/strong><\/li>\n<li>Enter your Google Gemini API key \u2014 get one free at https:\/\/aistudio.google.com\/app\/apikey<\/li>\n<li>Select the AI model (recommended: gemini-2.5-flash for most sites)<\/li>\n<li>Choose which post types to index<\/li>\n<li>Click <strong>Save Settings<\/strong> \u2014 this will create a Gemini File Search Store automatically<\/li>\n<li>Click <strong>Generate Library<\/strong> to index all existing published content<\/li>\n<li>Your visitors can now use AI-powered search on your site<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20free%3F\"><h3>Is it free?<\/h3><\/dt>\n<dd><p>The plugin itself is free and open source (GPLv2). The Google Gemini API has a generous free tier \u2014 check current limits and pricing at https:\/\/ai.google.dev\/pricing.<\/p><\/dd>\n<dt id=\"what%20content%20is%20sent%20to%20google%3F\"><h3>What content is sent to Google?<\/h3><\/dt>\n<dd><p>The title and body of your published posts and pages are converted to Markdown and uploaded to Google Gemini for indexing. User search queries are also sent to Gemini to generate answers. No personal user data is collected or sent.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20products%3F\"><h3>Does it work with WooCommerce products?<\/h3><\/dt>\n<dd><p>Yes. Select \"Products\" in the post types settings and regenerate the library. Customers can then ask questions about your products and get AI-generated answers.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20custom%20post%20types%3F\"><h3>Does it work with custom post types?<\/h3><\/dt>\n<dd><p>Yes, any public post type registered in WordPress can be selected for indexing.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20update%20a%20post%3F\"><h3>What happens when I update a post?<\/h3><\/dt>\n<dd><p>The plugin automatically re-indexes the post when it is saved as published. If the post is unpublished or deleted, the corresponding document is removed from Gemini.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20api%20quota%20is%20exceeded%3F\"><h3>What happens if the API quota is exceeded?<\/h3><\/dt>\n<dd><p>The AI search will return an error. The standard autocomplete search will continue to work normally since it uses WordPress's built-in search.<\/p><\/dd>\n<dt id=\"which%20gemini%20models%20are%20supported%3F\"><h3>Which Gemini models are supported?<\/h3><\/dt>\n<dd><p>Currently: gemini-2.5-flash, gemini-2.5-pro, gemini-3-flash-preview, gemini-3.1-pro-preview. Gemini 3 models support structured JSON responses with source attribution. Gemini 2.5 models return plain text answers.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Fixed: Nonce compatibility with page caching plugins<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Improved: Modal overlay background opacity<\/li>\n<li>Added: Filters for customizing interface text labels<\/li>\n<li>Updated: Model gemini-3-pro-preview \u2192 gemini-3.1-pro-preview<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Improved: AI response display and formatting<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fixed: Changed method visibility from private to public for better extensibility<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added: AI Indexed status column in post list for enabled post types<\/li>\n<li>Added: Re-upload button to manually re-index individual posts<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite with modern architecture<\/li>\n<li>Added PSR-4 namespace support (Geweb\\AISearch)<\/li>\n<li>Replaced cURL calls with WordPress HTTP API (wp_remote_request)<\/li>\n<li>Added support for Gemini 3 models with structured JSON responses<\/li>\n<li>API key is now encrypted with libsodium before storage<\/li>\n<li>Improved document sync: auto-upload on save, auto-delete on unpublish\/delete<\/li>\n<li>Bulk library generation with pagination and live progress indicator<\/li>\n<li>Conversation history support in AI chat modal<\/li>\n<li>Source attribution with links to indexed pages<\/li>\n<li>Improved error handling and logging<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"AI-powered search for WordPress using Google Gemini. Smart answers, source links, and instant autocomplete \u2014 all in one modal.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284493"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gavrilovweb"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284493"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284493"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284493"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284493"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284493"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}