fix: ensure plugin stays active by returning True in init and update README

This commit is contained in:
cra88y
2026-01-10 19:17:45 -06:00
parent 0e962ab720
commit d736cb304d
2 changed files with 15 additions and 8 deletions
+13 -4
View File
@@ -1,13 +1,22 @@
# SearXNG Gemini Stream Plugin # SearXNG Gemini Stream
This is a SearXNG plugin that provides live AI search answers using Google Gemini Flash. A SearXNG plugin that streams an AI response using results as grounding context to an Answer box at the top of results.
## Configuration ## Configuration
Set the following environment variables: Set the following environment variables:
- `GEMINI_API_KEY`: Your Google Gemini API key. - `GEMINI_API_KEY`: Your Google Gemini API key.
- `GEMINI_MODEL`: (Optional) The model to use, defaults to `gemini-3-flash-preview`. - `GEMINI_MODEL`: (Optional) Defaults to `gemini-3-flash-preview`.
### settings.yml
Add this to your SearXNG configuration file to enable the plugin:
```yaml
plugins:
- name: gemini_flash
active: true
```
## Installation ## Installation
This file should be placed in the `searx/plugins` directory of your SearXNG instance or configured as a plugin. Place `gemini_flash.py` into the `searx/plugins` directory of your instance.
+2 -4
View File
@@ -18,7 +18,6 @@ class SXNGPlugin(Plugin):
description=gettext("Live AI search answers using Google Gemini Flash"), description=gettext("Live AI search answers using Google Gemini Flash"),
preference_section="general", preference_section="general",
) )
self.active = plg_cfg.active
self.api_key = os.getenv('GEMINI_API_KEY') self.api_key = os.getenv('GEMINI_API_KEY')
self.model = os.getenv('GEMINI_MODEL', 'gemini-3-flash-preview') self.model = os.getenv('GEMINI_MODEL', 'gemini-3-flash-preview')
self.tokens = {} self.tokens = {}
@@ -123,12 +122,9 @@ USER QUERY: {q}
@app.route('/gemini.js') @app.route('/gemini.js')
def g_script(): def g_script():
# Get parameters from the SCRIPT SRC url
token = request.args.get('token', '') token = request.args.get('token', '')
query = request.args.get('q', '') query = request.args.get('q', '')
# Safe injection of query into the JS string
# We use json.dumps to ensure it is a valid JS string literal (handles quotes/escapes)
js_query = json.dumps(query) js_query = json.dumps(query)
js_token = json.dumps(token) js_token = json.dumps(token)
@@ -160,6 +156,8 @@ USER QUERY: {q}
}})(); }})();
""" """
return Response(js_code, mimetype='application/javascript') return Response(js_code, mimetype='application/javascript')
return True
def post_search(self, request, search) -> EngineResults: def post_search(self, request, search) -> EngineResults:
results = EngineResults() results = EngineResults()