=== Swayam AI Chatbot === Contributors: sagardeshmukh Tags: chatbot, ai, rag, llm, elasticsearch Requires at least: 6.0 Tested up to: 7.1 Requires PHP: 8.2 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html AI-powered chatbot using RAG (Retrieval-Augmented Generation) to answer questions based on your WordPress content. == Description == = Why "Swayam"? = Swayam (स्वयं)—an ancient Sanskrit word meaning "self." Your content. Your knowledge. Autonomously intelligent. Swayam AI Chatbot is a WordPress plugin that provides an intelligent chatbot powered by Retrieval-Augmented Generation (RAG) technology. It indexes your WordPress content and uses AI to answer visitor questions based on your actual posts, pages, and custom post types. = Features = * **RAG-Powered Q&A** - Answers questions using your actual WordPress content as context * **Automatic Content Indexing** - Syncs posts, pages, and custom post types to a vector database * **Auto-Sync on Publish** - Automatically updates the index when content is published, updated, or deleted * **Customizable Chat Interface** - Use the shortcode or floating widget * **Admin Dashboard** - Easy configuration with connection testing * **REST API** - Programmatic access to the chatbot * **Rate Limiting** - Built-in protection against spam = Shortcode Usage = Embed the chatbot on any page or post: `[swayam_ai_chatbot]` With custom attributes: `[swayam_ai_chatbot title="Ask about our products" placeholder="What would you like to know?"]` = External Services = This plugin connects to the following external services: **Ollama (Required)** This plugin requires a running Ollama instance to generate embeddings and chat responses using the Llama 3.2 model. * Ollama website: [https://ollama.com/](https://ollama.com/) * Ollama Privacy Policy: [https://ollama.com/privacy](https://ollama.com/privacy) * Ollama Terms of Service: [https://ollama.com/terms](https://ollama.com/terms) Ollama runs locally on your server or a server you control. No data is sent to third-party cloud services unless you configure it to connect to a remote Ollama instance. **Elasticsearch (Required)** This plugin requires an Elasticsearch instance to store vector embeddings and perform semantic search. * Elasticsearch website: [https://www.elastic.co/elasticsearch/](https://www.elastic.co/elasticsearch/) * Elastic Privacy Policy: [https://www.elastic.co/legal/privacy-statement](https://www.elastic.co/legal/privacy-statement) * Elastic Terms of Service: [https://www.elastic.co/legal/elastic-license](https://www.elastic.co/legal/elastic-license) Elasticsearch can run locally on your server. If using Elastic Cloud, your indexed content will be stored on Elastic's servers according to their privacy policy. **Data Transmitted** * To Ollama: Post content for embedding generation, user questions for response generation * To Elasticsearch: Post content, titles, excerpts, URLs, and vector embeddings == Installation == = Requirements = * PHP 8.2 or higher * WordPress 6.0 or higher * Ollama running locally with Llama 3.2 model * Elasticsearch 8.x with vector search support * Composer (for dependency installation) = Installation Steps = 1. Upload the `swayam-ai-chatbot` folder to the `/wp-content/plugins/` directory 2. Navigate to the plugin directory and run `composer install` to install dependencies 3. Install and start Ollama with the Llama 3.2 model (`ollama pull llama3.2:3b`) 4. Install and start Elasticsearch 5. Activate the plugin through the 'Plugins' menu in WordPress 6. Go to Settings > Swayam AI Chatbot to configure the plugin 7. Test connections and sync your content = Setting up Ollama = ` # Install Ollama (macOS) brew install ollama # Or download from https://ollama.com/download # Pull the Llama 3.2 model ollama pull llama3.2:3b # Start Ollama server ollama serve ` = Setting up Elasticsearch = ` # Quick start with Docker curl -fsSL https://elastic.co/start-local | sh cd elastic-start-local ./start.sh ` == Frequently Asked Questions == = Does this plugin work with any AI model? = Currently, the plugin is designed to work with Ollama running the Llama 3.2 model. Support for additional models may be added in future versions. = Is my content sent to external servers? = By default, both Ollama and Elasticsearch run locally on your server, so no data leaves your infrastructure. If you configure remote instances, data will be transmitted to those servers. = Can I customize the chat appearance? = Yes, the plugin includes CSS that you can override in your theme. Key CSS variables are available for customization including colors, border radius, and more. = How do I use the chatbot on a specific page? = Use the shortcode `[swayam_ai_chatbot]` on any page or post. You can also enable the floating widget in settings to show it on all pages. = The chatbot says it cannot find relevant content = Make sure you have synced your content in Settings > Swayam AI Chatbot. Click "Sync All Content" to index your posts and pages. = Connection to Ollama/Elasticsearch fails = If WordPress runs in Docker, use `http://host.docker.internal:11434` for Ollama and `http://host.docker.internal:9200` for Elasticsearch instead of localhost. == Screenshots == 1. Admin settings page with Ollama and Elasticsearch configuration 2. Content sync section showing indexed documents 3. Floating chat widget on the frontend 4. Shortcode-embedded chatbot in a page 5. Chat conversation showing RAG-powered responses with sources == Changelog == = 1.0.0 = * Initial release * RAG-powered Q&A with Llama 3.2 and Elasticsearch * Shortcode and floating widget support * Auto-sync on post publish/update/delete * Admin settings page with connection testing * REST API endpoint * Customizable chat title and placeholder * Rate limiting for spam protection == Upgrade Notice == = 1.0.0 = Initial release of Swayam AI Chatbot.