=== Swayam AI Chatbot ===
Contributors: sagardeshmukh
Tags: chatbot, ai, rag, llm, elasticsearch
Requires at least: 6.0
Tested up to: 6.9
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.
