NoughtDigital RAG Assistant

Descriere

NoughtDigital RAG Assistant builds a Retrieval-Augmented Generation (RAG) system from selected WordPress posts, pages, and public custom post types. It connects directly to the Qdrant and AI services configured by the site administrator.

How It Works:

The plugin prepares selected published content, generates embeddings through OpenAI, and stores the vectors and content payloads in Qdrant. It can synchronise updates automatically and remove deleted content from Qdrant.

When a visitor submits a chat question, the plugin creates an OpenAI query embedding, searches Qdrant, and sends relevant content to the selected chat provider: OpenAI, Anthropic Claude, Mistral AI, xAI Grok, Google Gemini, or Amazon Bedrock. The chatbot can appear globally or through the [noragass_chat] shortcode.

Free features:

  • Complete Qdrant Cloud and self-hosted Qdrant configuration
  • OpenAI embeddings, including embedding model and dimensions settings
  • Credentials and chat-provider support for OpenAI, Anthropic Claude, Mistral AI, xAI Grok, Google Gemini, and Amazon Bedrock
  • Manual and automatic content synchronisation for selected post types
  • A configurable global or shortcode-based chat UI
  • Optional semantic replacement for standard WordPress search
  • Optional local analytics, diagnostics, personalisation, and analytics-based result reordering
  • Content support for ACF, WooCommerce, and Easy Digital Downloads when available
  • Chat model, RAG retrieval count and threshold, system prompt, no-results message, and conversation-style controls

Requirements:

  • OpenAI API key (for embeddings and optional chat)
  • Qdrant vector database (cloud or self-hosted)
  • Credentials for the selected chat provider when it is not OpenAI

Privacy Policy

Local analytics (disabled by default):

When a site administrator enables analytics, the plugin records a random session identifier, query text and hash, result post ID and position, relevance score, interaction source, click state, engagement time, bounce state, and timestamp. It also maintains aggregate impressions, clicks, engagement, bounces, average positions, and quality scores. This data is stored in WordPress database tables whose names end in noragass_search_interactions and noragass_result_performance; it is not sent to an analytics vendor.

A daily cleanup removes both raw interaction rows and aggregate performance rows after 90 days.

When analytics is enabled, the plugin sets an HTTP-only, SameSite=Lax noragass_session cookie containing a random 32-character identifier. It expires after 24 hours and is marked Secure on HTTPS sites. The last query and interaction source are also stored temporarily in browser local storage for click and engagement attribution.

Analytics records do not contain raw IP addresses or WordPress user IDs. Query text can nevertheless contain personal information entered by a visitor.

Personalisation (disabled by default):

When an administrator enables personalisation, the plugin records up to 50 unique IDs of published posts viewed by each logged-in user in the noragass_recent_views user-meta field. The history is associated with that WordPress user account and is used to infer preferred post types and categories when reordering that user’s search results. Older IDs are displaced as new unique posts are viewed; there is no time-based expiry. Disabling personalisation stops new records and stops the history being used, but existing history remains until the plugin is uninstalled or the metadata is removed manually. Uninstalling the plugin deletes this user metadata.

Vector-sync metadata:

The plugin stores sync state in the _noragass_vector_sync_status, _noragass_vector_sync_date, _noragass_vector_sync_error, _noragass_vector_sync_action, and _noragass_vector_sync_queued_at post metadata. These five metadata fields are removed from all posts when the plugin is uninstalled.

Chat browser storage:

The chat stores up to 20 user/assistant messages, related source context, and timestamps in noragass_conversation_history. It also uses noragass-chat-minimized for interface state and noragass-chat-sync for cross-tab synchronisation. These values remain in that browser until the visitor clears them or the plugin removes them. Chat questions are also sent through the site’s WordPress AJAX endpoint and to the configured APIs as described below.

Plugin settings and credentials:

Qdrant configuration, provider credentials, and interface settings are stored as standard WordPress options. WordPress does not encrypt option values by default. Site owners must protect their WordPress database, backups, server, transport, and administrator accounts.

External processing:

After configuration, OpenAI processes prepared site content and visitor queries for embeddings; the configured Qdrant endpoint stores vectors and content payloads; and the selected chat provider processes the system instructions, visitor query, and retrieved context. Full field-level and service details appear in the External services section.

Site owners must disclose this processing to visitors and establish any required lawful basis or consent. Disabling analytics stops new local analytics collection. Uninstalling removes plugin options, analytics tables, personalisation user metadata, and vector-sync post metadata, but it does not clear browser storage or delete data held by Qdrant or an AI provider.

External services

This plugin connects to external services to provide embeddings, vector search, and generated chat answers. Embedding, vector, and chat calls begin after an administrator supplies the relevant endpoint and credentials and then syncs content or exposes chat/search functionality. Service operators may process request metadata such as IP addresses in addition to the application data listed below.

Qdrant Vector Database

This plugin connects to your Qdrant vector database instance to store and retrieve vector embeddings of your WordPress content. Qdrant is used as the core vector storage engine that powers semantic search and RAG queries.

  • Data sent during content sync: The numerical embedding and prepared content text; post ID, title, permalink, type, date, status, author ID, and author display name; and, when available, excerpt, category/tag names, public custom-taxonomy term names, featured-image URL, scalar ACF fields, and product price, SKU, type, and stock status. Prepared content can also include selected custom metadata, product descriptions and attributes, and other values added through plugin filters.
  • Data sent during search/chat: A numerical query embedding. Deletion requests send the relevant point ID.
  • When sent: During content sync, update, or deletion, and when a visitor performs semantic search or asks the chatbot a question.
  • Your control: You provide the Qdrant host URL. A self-hosted endpoint is governed by the site owner’s hosting arrangements.
  • Service homepage: https://qdrant.tech
  • Terms for Qdrant Cloud: https://cloud.qdrant.io/service-agreement
  • Privacy policy for Qdrant Cloud: https://cloud.qdrant.io/privacy-policy

OpenAI API

This plugin connects to the OpenAI API to generate text embeddings for your WordPress content and optionally to generate AI chat responses.

  • Data sent for content embeddings: Prepared text containing the post title, body, excerpt, author display name, public taxonomy terms, selected custom metadata, scalar ACF values, and available product details.
  • Data sent for query embeddings: Each visitor’s search or chat question, even when another provider is selected for answer generation.
  • Additional data sent when OpenAI generates the answer: System instructions, the visitor’s question, and retrieved content passages.
  • When sent: During content sync and whenever semantic search or chat needs a query embedding; answer-generation data is sent when OpenAI is the selected chat provider.
  • Service homepage: https://openai.com
  • Terms: https://openai.com/policies/services-agreement/
  • Privacy policy: https://openai.com/policies/privacy-policy/

Anthropic (Claude) API

When Claude is selected as the AI chat provider, this plugin connects to the Anthropic API to generate chat responses.

Mistral AI API

When Mistral is selected as the AI chat provider, this plugin connects to the Mistral AI API to generate chat responses.

xAI (Grok) API

When Grok is selected as the AI chat provider, this plugin connects to the xAI API to generate chat responses.

Google Gemini API

When Gemini is selected as the AI chat provider, this plugin connects to the Google Generative Language API to generate chat responses.

Amazon Bedrock

When Amazon Bedrock is selected as the AI chat provider, this plugin connects to the AWS Bedrock Runtime API to generate chat responses.

Bundled Dependencies

This plugin includes the following bundled dependencies:

  • Chart.js (version 4.5.1) – Licensed under the MIT License. Used for the optional analytics dashboard charts. The minified distribution and its human-readable chart.js source are bundled locally in core/includes/assets/js/. Upstream source: https://github.com/chartjs/Chart.js/tree/v4.5.1

All bundled dependencies are licensed under compatible open source licenses. The plugin itself is licensed under GPLv3.

Credits

NoughtDigital RAG Assistant is developed by NoughtDigital.

Support

For support, feature requests, and bug reports, visit:
https://wordpress.org/support/plugin/noughtdigital-rag-assistant/

Instalare

  1. Upload the plugin files to the /wp-content/plugins/noughtdigital-rag-assistant directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Open NoughtDigital RAG Assistant -> General Settings and configure Qdrant.
  4. Open AI Configuration, add the required provider credentials, and select the chat provider.
  5. Open Post Types and select the content to synchronise.
  6. Open Content Management and import the selected content and generate embeddings.
  7. Open Chat UI to configure and enable the global chatbot, or add [noragass_chat] to a page.

Întrebări frecvente

Is the plugin free?

Yes. The WordPress.org package is free and open source, and includes complete Qdrant and embeddings configuration, all supported providers and credentials, content synchronisation, chat UI, semantic search, analytics, diagnostics, model and retrieval controls, custom response instructions, and embedding settings. You need your own OpenAI API key and Qdrant instance, and provider usage costs may apply.

Can I self-host Qdrant?

Yes. You can use Qdrant Cloud or self-host Qdrant on your own infrastructure. The plugin validates Qdrant host URLs.

Which AI providers are supported?

The plugin supports OpenAI (for embeddings and chat), Claude (Anthropic), Mistral AI, Grok (xAI), Gemini (Google), and Amazon Bedrock for chat generation. OpenAI is required for embeddings.

Does the plugin replace WordPress search?

Only when the optional semantic search override is enabled in General Settings. It is disabled by default.

Does the plugin create custom post types or taxonomies?

No, the plugin does not create any custom post types, taxonomies, or user roles. It stores settings and recent task status in WordPress options, vector-sync state in post metadata, and, when personalisation is enabled for logged-in users, recent-view history in user metadata. It also creates two database tables for optional analytics (search interactions and result performance).

What data is removed when I uninstall the plugin?

The uninstall process removes the plugin’s WordPress options, all noragass_recent_views user metadata, its two analytics tables, and the _noragass_vector_sync_status, _noragass_vector_sync_date, _noragass_vector_sync_error, _noragass_vector_sync_action, and _noragass_vector_sync_queued_at post metadata. It does not delete data from Qdrant or an AI provider or clear browser local storage. External data remains subject to each provider’s retention and account controls and must be removed separately when required.

What external API calls does the plugin make?

The plugin makes external API calls to the following services when configured:

  • Qdrant – For storing and retrieving vector embeddings (your configured Qdrant instance)
  • OpenAI – For generating embeddings and optional chat responses (api.openai.com)
  • Anthropic (Claude) – For chat generation when Claude is selected as the AI provider (api.anthropic.com)
  • Mistral AI – For chat generation when Mistral is selected as the AI provider (api.mistral.ai)
  • xAI (Grok) – For chat generation when Grok is selected as the AI provider (api.x.ai)
  • Google (Gemini) – For chat generation when Gemini is selected as the AI provider (generativelanguage.googleapis.com)
  • Amazon Bedrock – For chat generation when Bedrock is selected as the AI provider (bedrock-runtime.{region}.amazonaws.com)

How are API keys stored and secured?

API credentials use standard WordPress database storage and are not encrypted by WordPress itself. Protect the WordPress database, backups, server, and administrator accounts accordingly. Password fields are rendered without saved values in the page HTML, and leaving a field blank preserves the existing value server-side.

What data does this plugin send externally?

External API traffic starts after an administrator configures OpenAI and a Qdrant endpoint and then syncs content or makes the chat/search features available. OpenAI is always used for content and query embeddings. The selected chat provider is used to generate answers.

  1. OpenAI API: Receives prepared WordPress content for content embeddings and each semantic-search or chat query processed by the plugin for a query embedding. Prepared content can contain the title, body, excerpt, author display name, public taxonomy terms, selected custom fields and metadata, ACF scalar values, and product information. If OpenAI is also selected for chat, it receives the system instructions, visitor query, and retrieved context passages.
  2. Qdrant endpoint: Receives content vectors and the content payload described in the Qdrant external-service disclosure below. Searches send a numerical query vector. The endpoint may be self-hosted or operated by Qdrant Cloud or another hosting provider.
  3. Selected chat provider: Anthropic, Mistral AI, xAI, Google Gemini, or Amazon Bedrock receives the system instructions, visitor query, and retrieved content passages when selected.
  4. Local analytics: Disabled by default. When enabled, search/chat interaction and engagement data is stored in the site’s WordPress database and is not sent to an analytics vendor.
  5. Browser storage: The chat stores up to 20 conversation messages, source context, timestamps, cross-tab synchronisation data, and the minimised state in local storage. When analytics is enabled, the last query and interaction source are also stored temporarily in local storage, and a random 32-character noragass_session cookie is set for 24 hours to associate interactions.

Visitor questions may contain personal information. Site owners are responsible for an appropriate privacy notice, lawful basis or consent, and configuring the external services in accordance with their terms.

What licence applies?

The plugin is free and open source under GPLv3.

Recenzii

Nu există nicio verificare pentru acest modul.

Contributori și dezvoltatori

„NoughtDigital RAG Assistant” este un software open-source. La acest modul au contribuit următoarele persoane.

Contributori

Istoric modificări

1.0.0

  • Initial stable release
  • Direct Qdrant integration
  • OpenAI embeddings support
  • Multi-provider AI chat support (OpenAI, Claude, Mistral, Grok, Gemini, Amazon Bedrock)
  • Automatic content synchronisation
  • Intelligent search result reordering (opt-in)
  • Analytics and performance tracking (opt-in, disabled by default)
  • Privacy controls with local analytics disabled by default
  • Configurable chat model, retrieval behavior, system prompt, no-results response, and conversation style