From 6b50b23467f2a05b190f00270d449eca74fae2cd Mon Sep 17 00:00:00 2001 From: jasonwitty Date: Mon, 10 Aug 2026 16:17:53 -0700 Subject: [PATCH] [fix] doc: drop the contents:: directive, name the plugin consistently Furo renders its own page-local table of contents and reports an error when a page adds one with contents::. No other page in the tree uses that directive; these two now follow suit. The plugin is named "AI Summary" where the name of the plugin is meant, and "AI summary" where the generated text itself is meant. That also fixes the entry in the plugin navigation, which takes its label from the page title. Two references to the configuration page rendered as its title, the bare YAML key "ai_summary:", which reads as a typo in a sentence. They now carry explicit link text. Co-Authored-By: Claude Opus 5 --- docs/admin/settings/settings_ai_summary.rst | 9 ++------- docs/dev/plugins/ai_summary.rst | 15 +++++---------- searx/ai_summary.py | 4 ++-- searx/plugins/ai_summary.py | 4 ++-- searx/settings.yml | 2 +- 5 files changed, 12 insertions(+), 22 deletions(-) diff --git a/docs/admin/settings/settings_ai_summary.rst b/docs/admin/settings/settings_ai_summary.rst index d5609c64e..0d9fe2d07 100644 --- a/docs/admin/settings/settings_ai_summary.rst +++ b/docs/admin/settings/settings_ai_summary.rst @@ -10,7 +10,7 @@ - :ref:`settings plugins` - :ref:`settings preferences` -Configuration of the :ref:`AI summary plugin `, which shows a +Configuration of the :ref:`AI Summary plugin `, which shows a short AI generated answer above the search results. The text is produced by an **LLM server that you run** -- SearXNG does not ship @@ -18,11 +18,6 @@ a model and does not talk to any AI provider on its own. Anything that speaks the `OpenAI chat completions API`_ works: `Ollama`_, vLLM, llama.cpp, LM Studio, Hugging Face TGI and others. The plugin is not activated by default. -.. contents:: - :depth: 2 - :local: - :backlinks: entry - .. _ai_summary quickstart: @@ -76,7 +71,7 @@ Add this to your ``settings.yml``: .. warning:: A ``plugins:`` block **replaces** the default list, it is not merged into it - (:ref:`settings plugins`). If you list only the AI summary plugin, every + (:ref:`settings plugins`). If you list only the AI Summary plugin, every other plugin is switched off. That is why the block above repeats the defaults -- drop the lines for plugins you do not want. diff --git a/docs/dev/plugins/ai_summary.rst b/docs/dev/plugins/ai_summary.rst index 0305121fd..f965f1ff4 100644 --- a/docs/dev/plugins/ai_summary.rst +++ b/docs/dev/plugins/ai_summary.rst @@ -1,23 +1,18 @@ .. _ai_summary plugin: ========== -AI summary +AI Summary ========== .. sidebar:: Further reading .. - - :ref:`settings ai_summary` + - :ref:`Configuration ` - :ref:`dev plugin` - :ref:`result types` -.. contents:: - :depth: 2 - :local: - :backlinks: entry - -The AI summary plugin shows a generated answer above the search results. The -text comes from an LLM server the administrator runs; see :ref:`settings -ai_summary` for how to set one up. +The AI Summary plugin shows a generated answer above the search results. The +text comes from an LLM server the administrator runs; see :ref:`its +configuration ` for how to set one up. The interesting part of this plugin is *when* things happen. Generating an answer takes seconds, and a search engine that waits seconds before painting diff --git a/searx/ai_summary.py b/searx/ai_summary.py index c3131b3c5..4405b827a 100644 --- a/searx/ai_summary.py +++ b/searx/ai_summary.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Implementations needed for the AI summary plugin +"""Implementations needed for the AI Summary plugin (:py:obj:`searx.plugins.ai_summary`).""" # pylint: disable=too-few-public-methods @@ -30,7 +30,7 @@ application setup by :py:obj:`searx.plugins.ai_summary.SXNGPlugin.init`.""" class SettingsAISummary(msgspec.Struct, kw_only=True, forbid_unknown_fields=True): - """Options for configuring the AI summary plugin. + """Options for configuring the AI Summary plugin. .. code:: yaml diff --git a/searx/plugins/ai_summary.py b/searx/plugins/ai_summary.py index b46c846bf..69f4d6643 100644 --- a/searx/plugins/ai_summary.py +++ b/searx/plugins/ai_summary.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Implementation of the AI summary plugin, which shows a generated answer above +"""Implementation of the AI Summary plugin, which shows a generated answer above the search results. The answer comes from an LLM server that implements the `OpenAI chat completions API`_ (Ollama, vLLM, llama.cpp, LM Studio, Hugging Face TGI, ...) and that the administrator runs. @@ -135,7 +135,7 @@ class SXNGPlugin(Plugin): self.info = PluginInfo( id=self.id, - name=gettext("AI summary"), + name=gettext("AI Summary"), description=gettext( "Show an AI generated summary of the search query on top of the" " result page (uses a local LLM server, see the settings below)." diff --git a/searx/settings.yml b/searx/settings.yml index e08c66c77..2eac45dd6 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -287,7 +287,7 @@ plugins: # '(.*\.)?youtu\.be$': 'yt.example.com' # -# Configuration of the "AI summary plugin", for more details see +# Configuration of the "AI Summary plugin", for more details see # https://docs.searxng.org/admin/settings/settings_ai_summary.html # # ai_summary: