{"id":292250,"date":"2026-03-28T14:16:59","date_gmt":"2026-03-28T14:16:59","guid":{"rendered":"https:\/\/ja.wordpress.org\/plugins\/rapls-ai-chatbot\/"},"modified":"2026-07-17T09:41:36","modified_gmt":"2026-07-17T09:41:36","slug":"rapls-ai-chatbot","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/rapls-ai-chatbot\/","author":23425763,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.15.0","stable_tag":"1.15.0","tested":"7.0.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Rapls AI Chatbot \u2013 Self-Hosted RAG Chatbot & MCP Server (OpenAI, Claude, Gemini, OpenRouter)","header_author":"Rapls","header_description":"AI Chatbot plugin with OpenAI\/Claude\/Google support and automatic site content learning.","assets_banners_color":"9386f3","last_updated":"2026-07-17 09:41:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/raplsworks.com\/plugins\/rapls-ai-chatbot\/","header_author_uri":"https:\/\/raplsworks.com\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1614,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"rapls","date":"2026-06-29 10:41:13"},"1.11.1":{"tag":"1.11.1","author":"rapls","date":"2026-07-03 10:52:55"},"1.14.0":{"tag":"1.14.0","author":"rapls","date":"2026-07-09 13:15:42"},"1.14.1":{"tag":"1.14.1","author":"rapls","date":"2026-07-12 02:45:25"},"1.15.0":{"tag":"1.15.0","author":"rapls","date":"2026-07-17 09:41:36"},"1.5.10":{"tag":"1.5.10","author":"rapls","date":"2026-04-19 13:09:24"},"1.5.11":{"tag":"1.5.11","author":"rapls","date":"2026-04-19 13:21:28"},"1.5.12":{"tag":"1.5.12","author":"rapls","date":"2026-04-20 12:15:59"},"1.5.13":{"tag":"1.5.13","author":"rapls","date":"2026-04-21 03:30:04"},"1.5.14":{"tag":"1.5.14","author":"rapls","date":"2026-04-21 13:41:52"},"1.5.18":{"tag":"1.5.18","author":"rapls","date":"2026-04-29 09:06:06"},"1.5.20":{"tag":"1.5.20","author":"rapls","date":"2026-04-29 09:20:35"},"1.5.21":{"tag":"1.5.21","author":"rapls","date":"2026-04-29 14:27:50"},"1.5.6":{"tag":"1.5.6","author":"rapls","date":"2026-03-28 14:59:09"},"1.5.7":{"tag":"1.5.7","author":"rapls","date":"2026-04-17 14:08:05"},"1.5.9":{"tag":"1.5.9","author":"rapls","date":"2026-04-19 13:09:24"},"1.6.4":{"tag":"1.6.4","author":"rapls","date":"2026-04-30 12:32:26"},"1.6.5":{"tag":"1.6.5","author":"rapls","date":"2026-04-30 12:44:03"},"1.7.1":{"tag":"1.7.1","author":"rapls","date":"2026-05-01 10:08:10"},"1.7.5":{"tag":"1.7.5","author":"rapls","date":"2026-05-03 04:07:35"},"1.7.6":{"tag":"1.7.6","author":"rapls","date":"2026-05-03 08:02:19"},"1.7.7":{"tag":"1.7.7","author":"rapls","date":"2026-05-17 15:02:23"},"1.8.0":{"tag":"1.8.0","author":"rapls","date":"2026-05-21 00:24:48"},"1.8.1":{"tag":"1.8.1","author":"rapls","date":"2026-05-25 13:00:17"},"1.8.2":{"tag":"1.8.2","author":"rapls","date":"2026-05-30 02:16:23"},"1.9.0":{"tag":"1.9.0","author":"rapls","date":"2026-06-07 14:20:13"},"1.9.1":{"tag":"1.9.1","author":"rapls","date":"2026-06-12 14:11:30"},"1.9.2":{"tag":"1.9.2","author":"rapls","date":"2026-06-16 13:25:08"},"1.9.3":{"tag":"1.9.3","author":"rapls","date":"2026-06-19 14:38:02"},"1.9.4":{"tag":"1.9.4","author":"rapls","date":"2026-06-22 04:16:29"}},"upgrade_notice":{"1.15.0":"<p>Failed AI calls are now classified and visible to admins \u2014 an error badge in the conversation view and a 24-hour provider-error summary in System Health. Recommended for all users.<\/p>","1.14.1":"<p>Chat errors now show their real cause (API key, model, provider, or quota) instead of one generic message, and the custom quota message setting works again. Recommended for all users.<\/p>","1.14.0":"<p>Adds an &quot;Add to knowledge&quot; button on unanswered questions, a &quot;Create draft page&quot; button for generated FAQs, and a dashboard System Health panel. Recommended for all users.<\/p>","1.13.0":"<p>Adds visitor-initiated chat history deletion (privacy), an Unanswered Questions report, a one-click FAQ draft generator, optional GA4 events, and WP-CLI commands. All new data features are off by default. Recommended for all users.<\/p>","1.12.0":"<p>Adds a setup checklist, a demo preview, industry starter templates, page context, a monthly Cost Guard, model fallback, and an optional weekly summary email. Recommended for all users.<\/p>","1.11.1":"<p>Blocked messages now say which limit was reached (quota, credits, token, daily, or rate limit). Recommended for sites using Usage Control.<\/p>","1.11.0":"<p>Adds optional &quot;Grounded Answers Only&quot; (anti-hallucination) and &quot;Usage Control&quot; (per-visitor\/user caps to protect your API spend). Both off by default. Recommended for all users.<\/p>","1.10.0":"<p>Adds an optional &quot;AI-smell score&quot; for Japanese bot replies in the Conversations log (detection only; replies are never changed). Recommended for all users.<\/p>","1.9.4":"<p>Feedback buttons (\ud83d\udc4d\ud83d\udc4e) on bot messages now default to off for new installs. Existing settings are unchanged.<\/p>","1.9.3":"<p>Adds support for Google&#039;s new &quot;AQ.&quot; Gemini API keys (the legacy &quot;AIza&quot; format is being retired by Google) and warns if your current Gemini key needs migrating. Recommended for all Gemini users.<\/p>","1.9.2":"<p>The free onboarding now lets you choose between OpenRouter free models and the Google Gemini free tier, each with an up-front data-handling note. Recommended for all users.<\/p>","1.9.1":"<p>Fixes a chat freeze when AI responses contain markdown tables, and API key deletion on WordPress 7.0 sites. Recommended for all users.<\/p>","1.9.0":"<p>Adds a one-minute onboarding flow that lets new users connect a free OpenRouter API key (no credit card) and start chatting immediately. Includes automatic fallback when free models are rate-limited upstream.<\/p>","1.8.2":"<p>Documentation refresh \u2014 updated description, features, and FAQ. No functional changes.<\/p>","1.8.1":"<p>Fixes a PHP &quot;Undefined array key&quot; warning in the chatbot widget. Recommended for all.<\/p>","1.8.0":"<p>Adds the WordPress 7.0 &quot;AI Client (Connectors)&quot; provider option. Recommended for WordPress 7.0 sites.<\/p>","1.5.0":"<p>Major release: Gutenberg block, Abilities API, language auto-detect. Recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3493381,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3493381,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3493381,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3493381,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"rapls-ai-chatbot\/chatbot":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"rapls-ai-chatbot\/chatbot","version":"1.5.0","title":"AI Chatbot","category":"widgets","icon":"format-chat","description":"Embed an AI chatbot inline on your page.","keywords":["chat","ai","chatbot","assistant","rapls"],"supports":{"html":false,"multiple":false},"attributes":{"height":{"type":"string","default":"500px"},"theme":{"type":"string","default":""},"bot":{"type":"string","default":""}},"textdomain":"rapls-ai-chatbot","editorScript":"file:.\/editor.js","render":"file:.\/render.php"}},"tagged_versions":["1.10.0","1.11.1","1.14.0","1.14.1","1.15.0","1.5.10","1.5.11","1.5.12","1.5.13","1.5.14","1.5.18","1.5.20","1.5.21","1.5.6","1.5.7","1.5.9","1.6.4","1.6.5","1.7.1","1.7.5","1.7.6","1.7.7","1.8.0","1.8.1","1.8.2","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3594068,"resolution":"1","location":"assets","locale":"","width":800,"height":1074},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3597591,"resolution":"10","location":"assets","locale":"","width":2412,"height":1204},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3597591,"resolution":"2","location":"assets","locale":"","width":1332,"height":1682},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3597591,"resolution":"3","location":"assets","locale":"","width":1832,"height":1684},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3493381,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3493381,"resolution":"5","location":"assets","locale":"","width":1286,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3594068,"resolution":"6","location":"assets","locale":"","width":1280,"height":850},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3594068,"resolution":"7","location":"assets","locale":"","width":1280,"height":860},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3594068,"resolution":"8","location":"assets","locale":"","width":1269,"height":800},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3597591,"resolution":"9","location":"assets","locale":"","width":2432,"height":1296}},"screenshots":{"1":"Chat widget \u2014 the front-end chatbot answering a visitor from your site content.","2":"Start for free \u2014 the onboarding panel connects a no-credit-card OpenRouter or Google Gemini free key in about a minute, with each option's data-handling trade-off shown up front.","3":"Dashboard \u2014 setup checklist, conversation\/index\/knowledge stats, System Health panel (API key, cron, REST reachability), and 30-day token usage with an estimated cost.","4":"Knowledge base \u2014 add custom text\/Q&amp;A or import TXT, CSV, MD, PDF, or DOCX files.","5":"Conversations \u2014 review, filter, archive, and export visitor conversations with lead and status details.","6":"Analytics \u2014 conversation, message, cost, and quality metrics (Pro).","7":"Site Learning \u2014 auto-crawl posts, pages, and custom post types so the bot answers from your own content.","8":"AI Settings \u2014 choose your provider (OpenAI, Anthropic Claude, Google Gemini, or OpenRouter), enter your API key, pick a model, and enable Vector Embedding (RAG).","9":"Unanswered Questions \u2014 questions the bot could not answer from your content, with one-click \"Add to knowledge\" and an AI-generated FAQ draft you can save as a draft page.","10":"Cost controls \u2014 Monthly Cost Guard with budget warnings, per-visitor usage limits, and model fallback so API bills never run away."}},"plugin_section":[],"plugin_tags":[191735,2364,216196,242115,70446],"plugin_category":[],"plugin_contributors":[253146],"plugin_business_model":[],"class_list":["post-292250","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-chatbot","plugin_tags-chatbot","plugin_tags-chatgpt","plugin_tags-mcp","plugin_tags-rag","plugin_contributors-rapls","plugin_committers-rapls"],"banners":{"banner":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/banner-772x250.png?rev=3493381","banner_2x":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/banner-1544x500.png?rev=3493381","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/icon-128x128.png?rev=3493381","icon_2x":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/icon-256x256.png?rev=3493381","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-1.png?rev=3594068","caption":"Chat widget \u2014 the front-end chatbot answering a visitor from your site content."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-2.png?rev=3597591","caption":"Start for free \u2014 the onboarding panel connects a no-credit-card OpenRouter or Google Gemini free key in about a minute, with each option's data-handling trade-off shown up front."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-3.png?rev=3597591","caption":"Dashboard \u2014 setup checklist, conversation\/index\/knowledge stats, System Health panel (API key, cron, REST reachability), and 30-day token usage with an estimated cost."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-4.png?rev=3493381","caption":"Knowledge base \u2014 add custom text\/Q&amp;A or import TXT, CSV, MD, PDF, or DOCX files."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-5.png?rev=3493381","caption":"Conversations \u2014 review, filter, archive, and export visitor conversations with lead and status details."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-6.png?rev=3594068","caption":"Analytics \u2014 conversation, message, cost, and quality metrics (Pro)."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-7.png?rev=3594068","caption":"Site Learning \u2014 auto-crawl posts, pages, and custom post types so the bot answers from your own content."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-8.png?rev=3594068","caption":"AI Settings \u2014 choose your provider (OpenAI, Anthropic Claude, Google Gemini, or OpenRouter), enter your API key, pick a model, and enable Vector Embedding (RAG)."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-9.png?rev=3597591","caption":"Unanswered Questions \u2014 questions the bot could not answer from your content, with one-click \"Add to knowledge\" and an AI-generated FAQ draft you can save as a draft page."},{"src":"https:\/\/ps.w.org\/rapls-ai-chatbot\/assets\/screenshot-10.png?rev=3597591","caption":"Cost controls \u2014 Monthly Cost Guard with budget warnings, per-visitor usage limits, and model fallback so API bills never run away."}],"raw_content":"<!--section=description-->\n<p><strong>Add an AI chatbot that answers visitors from <em>your own<\/em> content \u2014 and admits when it doesn't know.<\/strong> Rapls AI Chatbot searches your posts, pages, and knowledge base first, then replies in natural language, in the visitor's own language. With Grounded Answers Only mode, if your content has no answer, the bot says so instead of making something up.<\/p>\n\n<p><strong>You can be live in about five minutes, for free, with no credit card.<\/strong> On first setup a guided \"Start for free\" panel hands you a free key from OpenRouter or the Google Gemini free tier, tests it, auto-selects a working model, and switches the chatbot on \u2014 no AI or API experience needed.<\/p>\n\n<p><strong>No monthly SaaS fee \u2014 and no runaway bill.<\/strong> It runs on your own API key with no markup, and built-in Usage Control caps daily usage per visitor, so you can open the bot to the public without worrying about your API spend. A Monthly Cost Guard lets you set a hard budget, and Model Fallback keeps the bot answering on a lightweight model when your main model hits its quota. Conversations and keys stay on your own server.<\/p>\n\n<p>Built for site owners, agencies, and developers who want control over the model, the data, and the cost. Connect OpenAI, Anthropic Claude, Google Gemini, or OpenRouter, and switch anytime.<\/p>\n\n<h4>Why site owners pick Rapls<\/h4>\n\n<ul>\n<li><strong>Free to try, fast to launch.<\/strong> Guided onboarding gets you from install to a working chatbot in minutes, with a no-credit-card OpenRouter or Gemini key.<\/li>\n<li><strong>Grounded answers, or an honest \"I don't know.\"<\/strong> RAG hybrid search grounds replies in your actual posts, pages, and knowledge base \u2014 and Grounded Answers Only mode keeps the bot from inventing answers your site doesn't contain.<\/li>\n<li><strong>Your bill can't run away.<\/strong> Self-hosted and BYOK with no markup, plus per-visitor daily caps (Usage Control) so public traffic can't drain your API budget.<\/li>\n<li><strong>Replies that don't sound like a robot.<\/strong> An optional AI-smell score reviews the bot's Japanese replies for machine-sounding wording, so you can tune the tone. (Detection only \u2014 replies are never altered.)<\/li>\n<li><strong>No lock-in.<\/strong> Switch between OpenAI, Claude, Gemini, and OpenRouter whenever you want.<\/li>\n<li><strong>Speaks your visitors' language.<\/strong> Automatic multi-language replies, so one bot serves an international audience.<\/li>\n<\/ul>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Bring your own key: OpenAI, Anthropic Claude, Google Gemini, or OpenRouter, switchable per site.<\/li>\n<li>Site learning: indexes your posts and pages so the bot answers from your content.<\/li>\n<li>Knowledge base: add Q&amp;A or upload PDF\/DOCX files, with priority over general answers.<\/li>\n<li>RAG hybrid search: combines keyword and semantic retrieval for grounded replies.<\/li>\n<li>Grounded Answers Only: an optional mode that makes the bot reply \"I couldn't find that\" instead of inventing an answer your content doesn't support.<\/li>\n<li>Web search: lets the bot pull current information when configured.<\/li>\n<li>MCP tools: exposes 5 Model Context Protocol tools, so agents such as Claude or ChatGPT can read and act on your site through conversation.<\/li>\n<li>Usage dashboard: tracks conversations, messages, and API cost.<\/li>\n<li>Usage Control: optional per-visitor daily caps so public traffic can't run up your API bill.<\/li>\n<li>Unanswered Questions: records what the bot could not answer, with one-click \"Add to knowledge\" and an AI-drafted FAQ page.<\/li>\n<li>AI-smell score: an optional read-only score that flags machine-sounding wording in Japanese replies (detection only \u2014 replies are never altered).<\/li>\n<li>Industry starter templates: one click applies a ready-made system prompt and preset questions for hotels, shops, clinics, professional services, or company sites.<\/li>\n<li>Gutenberg block: drop the chatbot into any page or post.<\/li>\n<\/ul>\n\n<h4>Turns visitor questions into content<\/h4>\n\n<p>The bot doesn't just answer \u2014 it tells you what your site is missing. Questions it could not answer from your content are recorded on the dashboard, one click turns them into a knowledge entry, and another click drafts an FAQ page from the last 30 days of real visitor questions. Answer gaps become content, content improves the bot, and the same pages work for SEO and AI search (LLMO).<\/p>\n\n<h4>Self-hosted and private<\/h4>\n\n<p>Conversations and keys stay on your own WordPress install. You are billed by your AI provider directly, so cost is transparent and there is no markup. Visitors can delete their own chat history from the widget (optional), and retention is configurable \u2014 GDPR-friendly by design.<\/p>\n\n<h4>Free and Pro<\/h4>\n\n<p><strong>Free \u2014 not a trial.<\/strong> The free version is the full product: chatbot, site learning, knowledge base, RAG hybrid search, Grounded Answers Only, MCP server (5 tools), a usage dashboard (conversations, messages, and cost), and per-visitor daily caps. Run it forever at no cost on a free-tier key.<\/p>\n\n<p><strong>Pro \u2014 for sites that run the bot as a business tool:<\/strong><\/p>\n\n<ul>\n<li><strong>Lead capture automation<\/strong> \u2014 collect contacts from conversations, with Google Sheets and Slack sync.<\/li>\n<li><strong>Analytics<\/strong> \u2014 conversation, cost, and quality metrics at a glance.<\/li>\n<li><strong>Usage Control suite<\/strong> \u2014 role-based limits, per-user monthly credits with auto-reset, and a usage-control dashboard to grant and track credits, so members and guests each get a fair share of your API budget.<\/li>\n<li><strong>Extra MCP tools<\/strong> \u2014 product-search and analytics tools for AI agents, on top of the five in Free.<\/li>\n<li><strong>Context &amp; embedding controls<\/strong> \u2014 reprocess embeddings and shape the context retrieved for each reply.<\/li>\n<li><strong>LINE integration (add-on)<\/strong> \u2014 connect the chatbot to LINE messaging, the dominant messenger in Japan.<\/li>\n<\/ul>\n\n<h4>Up and running in about 5 minutes (free, no credit card)<\/h4>\n\n<p>You do not need an API key or any AI experience to start. On first setup the plugin shows a \"Start for free\" panel with two no-credit-card paths: an OpenRouter free key or a Google Gemini free-tier key.<\/p>\n\n<ol>\n<li>Pick OpenRouter or Gemini.<\/li>\n<li>Click through to get a free key (about a minute) and paste it in.<\/li>\n<li>Press Test Connection \u2014 the key is validated and saved, a working free model is auto-selected, and the chatbot is switched on.<\/li>\n<\/ol>\n\n<p>That's it. Each option states its data-handling trade-off up front (the Gemini free tier may use submitted content to improve Google's models), so you choose with eyes open. You can switch to your own OpenAI, Claude, or Gemini key at any time.<\/p>\n\n<p>Learn more: <a href=\"https:\/\/raplsworks.com\/plugins\/rapls-ai-chatbot\/\">Plugin details<\/a> | <a href=\"https:\/\/github.com\/rapls\/rapls-ai-chatbot\">Source code (GitHub)<\/a><\/p>\n\n<h4>See it in action<\/h4>\n\n<p>Watch the full setup \u2014 from install to first reply \u2014 in about 5 minutes, no credit card required:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=KWEeYuZ0uEg<\/p>\n\n<p>See it answer from your own content, and how that differs from plain ChatGPT:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=HgbYr6c_QlI<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external third-party services. <strong>No data is sent to any service until you configure an API key and enable the feature in the plugin settings.<\/strong> Each service requires the site administrator to create an account and obtain API credentials. By using these services, you agree to their respective terms and privacy policies listed below.<\/p>\n\n<h4>1. OpenAI (GPT models): AI Provider<\/h4>\n\n<p>Used when you select OpenAI as your AI provider. User messages and optionally site content are sent to generate AI responses.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.openai.com\/\">https:\/\/api.openai.com\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/openai.com\/terms\/\">https:\/\/openai.com\/terms\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/openai.com\/privacy\/\">https:\/\/openai.com\/privacy\/<\/a><\/li>\n<\/ul>\n\n<h4>2. Anthropic (Claude models): AI Provider<\/h4>\n\n<p>Used when you select Anthropic Claude as your AI provider. User messages and optionally site content are sent to generate AI responses.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.anthropic.com\/\">https:\/\/api.anthropic.com\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/www.anthropic.com\/terms\">https:\/\/www.anthropic.com\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/www.anthropic.com\/privacy\">https:\/\/www.anthropic.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>3. Google (Gemini models): AI Provider<\/h4>\n\n<p>Used when you select Google Gemini as your AI provider. User messages and optionally site content are sent to generate AI responses.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/generativelanguage.googleapis.com\/\">https:\/\/generativelanguage.googleapis.com\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/policies.google.com\/terms\">https:\/\/policies.google.com\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>4. OpenRouter: AI Provider<\/h4>\n\n<p>Used when you select OpenRouter as your AI provider. OpenRouter is a unified API gateway that routes requests to various AI models.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/openrouter.ai\/api\/\">https:\/\/openrouter.ai\/api\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/openrouter.ai\/terms\">https:\/\/openrouter.ai\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/openrouter.ai\/privacy\">https:\/\/openrouter.ai\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>5. Google reCAPTCHA v3 (Optional)<\/h4>\n\n<p>Used only if you enable reCAPTCHA in the plugin settings for spam protection. The visitor's IP address and interaction data are sent to Google for verification.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/www.google.com\/recaptcha\/\">https:\/\/www.google.com\/recaptcha\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/policies.google.com\/terms\">https:\/\/policies.google.com\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>6. LINE Messaging API (Pro Add-on, Optional)<\/h4>\n\n<p>Used only if you enable the LINE integration via the Pro add-on. Connects to the LINE Messaging API for chatbot-to-LINE messaging.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.line.me\/\">https:\/\/api.line.me\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/terms.line.me\/\">https:\/\/terms.line.me\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/line.me\/en\/terms\/policy\/\">https:\/\/line.me\/en\/terms\/policy\/<\/a><\/li>\n<\/ul>\n\n<h4>Cross-Site Embed<\/h4>\n\n<p>The plugin includes an optional embed loader script (<code>embed-loader.js<\/code>) for embedding the chatbot on external websites via an iframe. This script does not load any external CDN resources or third-party scripts. It creates an iframe pointing back to your own WordPress site, and all data processing occurs on your server.<\/p>\n\n<h4>Data Transmitted to External Services<\/h4>\n\n<ul>\n<li><strong>User messages<\/strong>: Chat messages entered by visitors (sent to the configured AI provider only)<\/li>\n<li><strong>Site content<\/strong> (if Site Learning is enabled): Excerpts from your published posts\/pages (sent to the configured AI provider)<\/li>\n<li><strong>Knowledge base<\/strong> (if configured): Custom Q&amp;A entries you create (sent to the configured AI provider)<\/li>\n<li><strong>IP address<\/strong> (reCAPTCHA only): Sent to Google for spam verification<\/li>\n<\/ul>\n\n<h4>Data Storage<\/h4>\n\n<ul>\n<li><strong>Conversation history<\/strong>: Stored locally in your WordPress database (can be disabled)<\/li>\n<li><strong>Visitor IP<\/strong>: Stored as SHA-256 hash (not plain text) for rate limiting<\/li>\n<li><strong>Retention<\/strong>: Configurable auto-deletion period (default 90 days)<\/li>\n<\/ul>\n\n<h4>User Controls<\/h4>\n\n<p>You can disable these features in the plugin settings:\n* Conversation history saving\n* Site content crawling\/learning\n* Google reCAPTCHA verification\n* Web search<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>rapls-ai-chatbot<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via Plugins menu<\/li>\n<li>Go to AI Chatbot &gt; Settings<\/li>\n<li>Follow the onboarding panel to start free with an OpenRouter or Google Gemini key, or paste your own OpenAI \/ Claude \/ Gemini key.<\/li>\n<li>Enable site learning or create knowledge base entries<\/li>\n<li>Insert Gutenberg block or enable sitewide display<\/li>\n<\/ol>\n\n<h4>Getting Started<\/h4>\n\n<ol>\n<li><strong>API Key<\/strong>: get a free OpenRouter or Google Gemini key from the onboarding panel, or your own key from <a href=\"https:\/\/console.anthropic.com\">console.anthropic.com<\/a>, OpenAI, or Google AI Studio.<\/li>\n<li><strong>Enable RAG<\/strong>: add site learning (auto-crawl) or create knowledge base entries.<\/li>\n<li><strong>Customize<\/strong>: set bot name, avatar, welcome message, system prompt.<\/li>\n<li><strong>Deploy<\/strong>: insert the Gutenberg block, paste the shortcode, or enable sitewide display.<\/li>\n<\/ol>\n\n<p>\ud83d\udc49 <strong>Plugin details:<\/strong> <a href=\"https:\/\/raplsworks.com\/plugins\/rapls-ai-chatbot\/\">Rapls AI Chatbot<\/a><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20it%20for%20free%3F\"><h3>Can I use it for free?<\/h3><\/dt>\n<dd><p>Yes \u2014 the plugin is free, and the onboarding panel connects a no-credit-card OpenRouter or Google Gemini free-tier key in about a minute. Free tiers have rate limits, so for production traffic you may want your own provider key.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Yes. Rapls runs on your own API key so your data and cost stay under your control. If you do not have one, the plugin guides you to a free OpenRouter key or a free Google Gemini key on first setup \u2014 both need no credit card.<\/p><\/dd>\n<dt id=\"will%20the%20bot%20make%20things%20up%3F\"><h3>Will the bot make things up?<\/h3><\/dt>\n<dd><p>Not if you don't want it to. Turn on Grounded Answers Only and the bot replies \"I couldn't find that on this site\" whenever your content has no relevant answer, instead of answering from the model's general knowledge.<\/p><\/dd>\n<dt id=\"can%20visitors%20run%20up%20my%20api%20bill%3F\"><h3>Can visitors run up my API bill?<\/h3><\/dt>\n<dd><p>No. Usage Control caps daily usage per guest and per logged-in user on the server side, separate from rate limiting. Pro adds role-based limits and per-user credits.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20ai%20agents%20%28mcp%29%3F\"><h3>Does it work with AI agents (MCP)?<\/h3><\/dt>\n<dd><p>Yes. The free version ships an MCP (Model Context Protocol) server with 5 tools, so AI agents such as Claude or ChatGPT can search your posts, read knowledge entries, and act on your site through conversation. Pro adds product-search and analytics tools on top.<\/p><\/dd>\n<dt id=\"is%20my%20data%20private%20on%20the%20free%20options%3F\"><h3>Is my data private on the free options?<\/h3><\/dt>\n<dd><p>It depends on the provider you choose, and the plugin tells you before you pick. OpenRouter free models are served by various upstream providers, each with its own data-handling policy. The Google Gemini free tier may use your submitted content to improve Google's models \u2014 if you do not want that, use a paid Gemini tier or another provider. Either way, your conversations and keys are stored on your own WordPress install, not on Rapls servers.<\/p><\/dd>\n<dt id=\"my%20gemini%20key%20starts%20with%20%22aq.%22%20instead%20of%20%22aiza%22%20%E2%80%94%20is%20that%20ok%3F\"><h3>My Gemini key starts with \"AQ.\" instead of \"AIza\" \u2014 is that OK?<\/h3><\/dt>\n<dd><p>Yes. Google is moving Gemini API keys from the legacy \"AIza\" standard format to the new \"AQ.\" auth format, and Google AI Studio now issues \"AQ.\" keys by default. Rapls works with both. Google is retiring the standard format (unrestricted \"AIza\" keys are rejected from 2026-06-19, and all \"AIza\" keys from 2026-09), so if you still have an \"AIza\" key the plugin shows a notice with how to migrate. New keys created today are already \"AQ.\" keys and need no action.<\/p><\/dd>\n<dt id=\"can%20i%20use%20multiple%20ai%20providers%3F\"><h3>Can I use multiple AI providers?<\/h3><\/dt>\n<dd><p>Yes. Configure multiple providers in Settings and switch between them. WordPress 7.0 Connectors API also supports unified key management.<\/p><\/dd>\n<dt id=\"does%20it%20crawl%20my%20entire%20site%20automatically%3F\"><h3>Does it crawl my entire site automatically?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Site Learning\" in Settings to crawl published content (posts, pages, custom post types, WooCommerce products). Configure crawl scope and frequency.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20on%20external%20sites%3F\"><h3>Can I embed on external sites?<\/h3><\/dt>\n<dd><p>Yes. Configure cross-site embed in Display Settings. Use iframe or script loader.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20wordpress%207.0%20connectors%20api%3F\"><h3>How do I set up WordPress 7.0 Connectors API?<\/h3><\/dt>\n<dd><p>In Settings &gt; AI Settings, Connectors UI appears if WP 7.0 is active. Register your Claude API key once; all Connectors-compatible plugins access it.<\/p><\/dd>\n<dt id=\"is%20there%20conversation%20history%3F\"><h3>Is there conversation history?<\/h3><\/dt>\n<dd><p>Yes. Data Management tab lets you save\/review all conversations. Configure retention period (30\/90\/365 days or indefinite).<\/p><\/dd>\n<dt id=\"troubleshooting%3A%20chat%20not%20appearing%3F\"><h3>Troubleshooting: chat not appearing?<\/h3><\/dt>\n<dd><ul>\n<li>Verify API key is valid (test in Settings)<\/li>\n<li>Check Gutenberg block or Display Settings (enable sitewide)<\/li>\n<li>Review Security Diagnostics for rate limit, IP detection, or consent issues<\/li>\n<\/ul><\/dd>\n<dt id=\"more%20questions%3F\"><h3>More questions?<\/h3><\/dt>\n<dd><p>See <a href=\"https:\/\/raplsworks.com\/plugins\/rapls-ai-chatbot\/\">Plugin details<\/a> or <a href=\"https:\/\/wordpress.org\/support\/plugin\/rapls-ai-chatbot\/\">WordPress.org Support<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.15.0<\/h4>\n\n<ul>\n<li>Added: Provider error visibility for admins \u2014 failed AI calls are classified (rate limit, timeout, authentication, quota\/billing, server, unknown) and recorded with type, time, provider, model, and HTTP status only. The response body and API keys are never stored.<\/li>\n<li>Added: In the admin conversation view, the message that triggered a failed AI call now carries an error badge; hovering shows the time, provider, model, and HTTP status.<\/li>\n<li>Added: System Health now includes an \"AI provider errors (24h)\" row \u2014 counts by type plus the last occurrence and the model in use, so recurring provider problems surface without waiting for visitor reports.<\/li>\n<li>Added: When rate-limit errors occur while a Gemini 3 preview model is selected, System Health shows a dismissible suggestion to switch to a stable model (such as Gemini 2.5 Flash) or enable Model Fallback.<\/li>\n<\/ul>\n\n<h4>1.14.1<\/h4>\n\n<ul>\n<li>Fixed: Server-side chat errors (invalid API key, unavailable model, provider outage, quota exceeded) were all shown to visitors as the same generic \"A temporary error occurred\" message. Each cause now shows its own specific message, so site owners can tell immediately whether the API key, the model, or the provider is the problem.<\/li>\n<li>Fixed: The custom quota error message (Settings \u2192 Messages) was never displayed in the chat widget \u2014 the generic server error masked it. It now reaches visitors as intended.<\/li>\n<li>Improved: The default quota error message no longer says \"Currently recharging\" (which read like a service outage) \u2014 it now explains that the AI has reached its usage limit and suggests trying again later or contacting the site.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>Added: \"Add to knowledge\" button on every Unanswered Questions row \u2014 opens the knowledge form with the question prefilled, closing the record \u2192 improve loop in one click.<\/li>\n<li>Added: \"Create draft page\" button for the generated FAQ \u2014 saves the draft as a WordPress page (draft status) and links straight to the editor.<\/li>\n<li>Added: System Health panel on the dashboard \u2014 API key, cron schedules, crawl freshness, WP-Cron availability, content index, PHP mbstring, and a live REST API reachability probe.<\/li>\n<li>Fixed: The dashboard FAQ generator now uses its own AJAX action (raplsaich_generate_faq_draft) so it no longer collides with the Pro knowledge-gap FAQ generator.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Added: Visitor history deletion (Settings \u2192 Data Management, off by default) \u2014 shows a \"Delete my chat history\" button in the widget so each visitor can permanently remove their own stored conversation (privacy \/ GDPR friendly).<\/li>\n<li>Added: Unanswered Questions report on the dashboard \u2014 questions the bot could not answer from site content are recorded (latest 50) with counts, so you know exactly which pages or knowledge entries to add next.<\/li>\n<li>Added: FAQ draft generator on the dashboard \u2014 one click clusters the last 30 days of real visitor questions into an editable Markdown FAQ draft using your configured AI provider.<\/li>\n<li>Added: The weekly summary email now includes the questions the bot could not answer this week (content-gap report).<\/li>\n<li>Added: Google Analytics 4 events (Settings \u2192 Data Management, off by default) \u2014 fires chat open \/ message sent \/ response received events through your site's existing gtag.js. The plugin never loads gtag.js itself.<\/li>\n<li>Added: WP-CLI commands \u2014 <code>wp raplsaich status<\/code>, <code>wp raplsaich cleanup<\/code>, <code>wp raplsaich crawl<\/code>, and <code>wp raplsaich unanswered [--clear]<\/code>.<\/li>\n<li>Fixed: The weekly summary cron event is now cleared on uninstall.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Added: Setup checklist on the dashboard \u2014 shows which of the three first-run steps (connect a provider, run site learning, first conversation) are done and links to the next one. Disappears once setup is complete.<\/li>\n<li>Added: Demo preview in the \"Start for free\" panel \u2014 a scripted sample conversation shows how the widget looks and behaves before any API key is set.<\/li>\n<li>Added: Industry starter templates (Settings \u2192 Chat Settings) \u2014 one click applies a ready-made system prompt and preset questions for hotels\/tourism, shops, clinics\/salons, professional services, or company sites.<\/li>\n<li>Added: Page Context (Settings \u2192 AI Settings, on by default) \u2014 the page the visitor is currently viewing is included as context, so questions like \"does this product ship overseas?\" resolve against the right page.<\/li>\n<li>Added: Monthly Cost Guard (Settings \u2192 Security) \u2014 set a monthly budget (USD); when the estimated month-to-date API cost reaches it, the bot replies with a fixed message instead of calling the AI and resumes next month. Admin notice from 80% of budget.<\/li>\n<li>Added: Model Fallback (Settings \u2192 AI Settings, off by default) \u2014 when the selected model hits its quota, the reply is retried once with the same provider's lightweight model instead of showing an error to the visitor.<\/li>\n<li>Added: Weekly Summary Email (Settings \u2192 Data Management, off by default) \u2014 conversation count, AI replies, estimated cost, and recent visitor questions, mailed to the site admin once a week.<\/li>\n<li>Improved: The review request is now shown only after the chatbot has actually handled conversations (usage-based, dismissible once, plugin screens only) instead of purely time-based.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Improved: When a message is blocked by a limit, the reply now explains which limit was hit \u2014 monthly message quota, credits (Pro), token limit (Pro), the daily per-visitor cap, or the short-term rate limit \u2014 instead of a single generic message. Each message is translatable and filterable (<code>rapls_usage_reason_message<\/code>). Optional setting to show the remaining allowance (off by default).<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Added: \"Grounded Answers Only\" mode (Settings \u2192 AI Settings). When on, if the knowledge base and site learning have no content relevant to a question, the bot replies that it could not find the information instead of answering from the model's general knowledge \u2014 reducing hallucination. The relevance threshold and the \"not found\" message are configurable; works across keyword and vector (RAG) search. Off by default; ignored when Web Search is on.<\/li>\n<li>Added: \"Usage Control\" (Settings \u2192 Security) \u2014 an optional safety valve for your own API spend (BYOK) when the chatbot is open to guests or members. Caps total daily usage per guest and per logged-in user (separate from the per-IP rate limit). Counts are kept server-side and cannot be bypassed by the client; guests are identified by a salted hash (never a raw IP) with a configurable retention period and automatic cleanup. Role-based limits, per-user credits, and a usage dashboard are available in Pro.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Added: \"AI-smell score\" for Japanese bot replies in the Conversations log. When enabled (Settings \u2192 Chat Settings), each Japanese reply gets a read-only score and a category breakdown (stiff connectives, over-emphatic vocabulary, monotone endings, and more) with in-text highlighting, so you can spot wording that sounds machine-written. It only detects and scores \u2014 replies are never altered, non-Japanese replies are skipped, and it makes no external calls. Banned vocabulary and weights are customizable via the <code>rapls_humanizer_*<\/code> filters.<\/li>\n<\/ul>\n\n<h4>1.9.4<\/h4>\n\n<ul>\n<li>Changed: The feedback buttons (\ud83d\udc4d\ud83d\udc4e) on bot messages now default to OFF on new installs. You can turn them on anytime in Settings \u2192 Chat Settings \u2192 \"Show feedback buttons\". Existing sites keep their current setting.<\/li>\n<\/ul>\n\n<h4>1.9.3<\/h4>\n\n<ul>\n<li>Added: Support for Google's new \"AQ.\" Gemini API keys. Google AI Studio now issues keys in the new auth-key format (<code>AQ.Ab\u2026<\/code>) instead of the legacy \"AIza\" standard keys, which Google is retiring (unrestricted standard keys rejected from 2026-06-19, all standard keys from 2026-09). Onboarding, key validation, and every Gemini API call (chat, model list, and site-learning embeddings) now accept and work with both formats.<\/li>\n<li>Changed: Gemini requests now send the key in the <code>x-goog-api-key<\/code> header instead of the <code>?key=<\/code> query string \u2014 Google's recommended method, required for the new \"AQ.\" keys, and it keeps the key out of server\/proxy\/CDN logs.<\/li>\n<li>Added: An admin notice warns when your saved Gemini key is a legacy \"AIza\" standard key, with the retirement dates and how to migrate to an \"AQ.\" key (or restrict the existing one). It clears automatically once an \"AQ.\" key is saved.<\/li>\n<\/ul>\n\n<h4>1.9.2<\/h4>\n\n<ul>\n<li>Added: The \"Start for free\" onboarding now offers two no-credit-card paths \u2014 OpenRouter free models and the Google Gemini free tier \u2014 so new users can pick the provider that fits. Either choice validates the key, runs a connection test, and auto-selects a working free model (Gemini defaults to <code>gemini-2.5-flash<\/code>).<\/li>\n<li>Added: Clear in-panel disclosure for each free option, shown before you choose. The Gemini free tier may use submitted content to improve Google's models; the panel says so and points to paid tiers or other providers if you want your data excluded. OpenRouter free models carry an equivalent note that upstream data-handling varies.<\/li>\n<li>Docs: Refreshed the description, Getting Started, and FAQ for the two free paths, and added a \"Is my data private on the free options?\" FAQ entry.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Fixed: Chat window froze with no reply shown when the AI answered with a markdown table. The table separator-row regex rejected the standard GFM trailing pipe (<code>|---|---|<\/code>), and the paragraph fallback then looped forever on the unconsumed line, exhausting browser memory. Tables now render, and the renderer always makes forward progress on any input.<\/li>\n<li>Fixed: Literal <code>&lt;br&gt;<\/code> tags that AI models emit inside markdown table cells now render as line breaks instead of showing as raw text.<\/li>\n<li>Fixed: The Remove button for the OpenAI \/ Gemini API key had no effect on WordPress 7.0 sites. The \"WordPress AI Client\" RAG section renders duplicate hidden fields with the same names later in the DOM, so its delete-flag \"0\" and empty key field overrode the visible section's values on submit. Hidden provider sections are now excluded from form submission.<\/li>\n<li>Improved: After the onboarding connection test succeeds, a prominent \"Reload this page now\" button appears (with auto-scroll and focus) so the saved provider and model are applied before any further edits to the settings form.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Added: \"Start for free\" onboarding panel that appears on the Settings page when no provider API key has been saved. Walks new users from zero to a working chatbot in about a minute using an OpenRouter free API key (no credit card required). Key is encrypted (AES-256-GCM), provider auto-set to OpenRouter, and a concrete free model id (e.g. <code>openai\/gpt-oss-120b:free<\/code>) is picked from the live <code>\/v1\/models<\/code> catalog and saved as the active model.<\/li>\n<li>Added: Automatic 429 fallback for free models. When the active <code>:free<\/code> model is throttled upstream (Venice \/ NVIDIA \/ etc), the active model is marked as throttled for 10 minutes, an alternative <code>:free<\/code> model is picked from the catalog, persisted to settings, and the chat request is retried once. Paid models pass quota errors through unchanged.<\/li>\n<li>Changed: Plugin description and search tags repositioned from \"Claude-native RAG chatbot\" to \"self-hosted, BYOK, multi-provider\" so the listing reflects the actual feature set (OpenAI, Anthropic Claude, Google Gemini, OpenRouter). Two new FAQ entries: \"Do I need an API key?\" and \"Can I use it for free?\".<\/li>\n<li>Hardened: OpenRouter key validation now requires the <code>sk-or-<\/code> prefix and hits <code>\/v1\/auth\/key<\/code> (real auth check) instead of <code>\/v1\/models<\/code> (which returns 200 for any string). The existing per-provider Test Connection button shares the fix.<\/li>\n<li>Fixed: Rate-limit countdown badge no longer wipes the paper-plane SVG icon (the icon is restored when the cooldown ends), and the remaining-seconds text is now high-contrast white on the brand-color disc instead of blending with the disabled-gray background.<\/li>\n<li>Added: Free-version manual (Japanese and English) gains a \"Quick Start (run it for free)\" section explaining the onboarding flow and rate-limit notes.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Documentation: refreshed the plugin description, feature list, FAQ, and search tags. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fixed: \"Undefined array key link_target\" PHP warning emitted by the chatbot widget on sites where the link-target option had never been saved.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added: WordPress 7.0 \"AI Client (Connectors)\" provider \u2014 chat routes through wp_ai_client_prompt(); API keys and models are managed in Settings \u2192 Connectors instead of the plugin.<\/li>\n<li>Added: Curated cross-provider model dropdown, plus an automatic one-shot retry without temperature for models (GPT-5 \/ o-series) that reject a custom value.<\/li>\n<li>Fixed: API-key-decryption \"please re-enter\" notice now fires only when the active provider's own key is broken; the wpai path skips the plugin-side key pre-check.<\/li>\n<li>Tested up to: WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Response Language setting fix<\/li>\n<li>Recommended for all users<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Major update: Gutenberg block, Abilities API, language auto-detect, OpenRouter<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Web search, cross-site embed, PDF\/DOCX knowledge, vector embedding hybrid search<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Response caching, audit logs, conversion tracking, offline messages<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Self-hosted AI chatbot that answers from your own content (RAG), admits when it doesn&#039;t know, and can&#039;t run up your API bill. Free, no credit card.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/292250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=292250"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rapls"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=292250"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=292250"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=292250"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=292250"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=292250"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=292250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}