{/ Эта страница автоматически создается на основе файла SKILL.md навыка с помощью сайта site/scripts/generate-skill-docs.py. Редактируйте исходный код SKILL.md, а не эту страницу. /}

Поиск Поиск

Бесплатный метапоиск через SearXNG — объединяет результаты из более чем 70 поисковых систем. Самостоятельное размещение или использование общедоступного экземпляра. Ключ API не требуется. Автоматически возвращается к исходному состоянию, когда набор инструментов веб-поиска недоступен.

Метаданные навыков

Источник Необязательно — установите с помощью hermesskills installofficial/research/searxng-search
Путь optional-skills/research/searxng-search
Версия 1.0.0
Автор Гермес-агент
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS
Теги поиск, searxng, мета-поиск, самостоятельный, бесплатный, резервный
Сопутствующие навыки duckduckgo-search, domain-intel

Ссылка: полная версия SKILL.md:::информация

Ниже приведено полное определение навыка, которое Гермес загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навык активен.

ИскатьXNG Поиск

Бесплатный мета-поиск с использованием SearXNG — уважающего конфиденциальность автономного поискового агрегатора, который одновременно запрашивает более 70 поисковых систем.

Ключ API не требуется при использовании общедоступного экземпляра. Также может быть размещен самостоятельно для полного контроля. Автоматически появляется в качестве запасного варианта, если основной набор инструментов веб-поиска (FIRECRAWL_API_KEY) не настроен.

Конфигурация

Для SearXNG требуется переменная среды SEARXNG_URL, указывающая на ваш экземпляр SearXNG:

# Public instances (no setup required)
SEARXNG_URL=https://searxng.example.com

# Self-hosted SearXNG
SEARXNG_URL=http://localhost:8888

Если ни один экземпляр не настроен, этот навык недоступен, и агент возвращается к другим параметрам поиска.

Порядок обнаружения

Прежде чем выбирать подход, проверьте, что действительно доступно:

# Check if SEARXNG_URL is set and the instance is reachable
curl -s --max-time 5 "${SEARXNG_URL}/search?q=test&format=json" | head -c 200

Дерево решений: 1. Если установлен SEARXNG_URL и экземпляр отвечает, используйте SearXNG. 2. Если SEARXNG_URL не установлен или недоступен, вернитесь к другим доступным инструментам поиска. 3. Если пользователю нужен именно SearXNG, помогите ему настроить экземпляр или найти общедоступный.

Способ 1: CLI через Curl (предпочтительно)

Используйте «curl» через «терминал» для вызова API SearXNG JSON. Это позволяет избежать предположения, что установлен какой-либо конкретный пакет Python.

# Text search (JSON output)
curl -s --max-time 10 \
  "${SEARXNG_URL}/search?q=python+async+programming&format=json&engines=google,bing&limit=10"

# With Safesearch off
curl -s --max-time 10 \
  "${SEARXNG_URL}/search?q=example&format=json&safesearch=0"

# Specific categories (general, news, science, etc.)
curl -s --max-time 10 \
  "${SEARXNG_URL}/search?q=AI+news&format=json&categories=news"

Общие флаги CLI

Флаг Описание Пример
к Строка запроса (в URL-кодировке) q=python+async
формат Формат вывода: json, csv, rss format=json
двигатели Названия двигателей, разделенные запятыми engines=google,bing,ddg
лимит Максимальное количество результатов для каждого механизма (по умолчанию 10) лимит = 5
категории Фильтровать по категориям категории = новости, наука
безопасный поиск 0 = нет, 1 = умеренный, 2 = строгий safesearch=0
диапазон_времени Фильтр: день, неделя, месяц, год time_range=неделя

Анализ результатов JSON

# Extract titles and URLs from JSON
curl -s --max-time 10 "${SEARXNG_URL}/search?q=fastapi&format=json&limit=5" \
  | python3 -c "
import json, sys
data = json.load(sys.stdin)
for r in data.get('results', []):
    print(r.get('title',''))
    print(r.get('url',''))
    print(r.get('content','')[:200])
    print()
"

Возвращает для каждого результата: title, url, content (фрагмент), engine, parsed_url, img_src, thumbnail, author, published_date

Способ 2: API Python через запросы

Используйте REST API SearXNG непосредственно из Python с библиотекой запросов:

import os, requests, urllib.parse

base_url = os.environ.get("SEARXNG_URL", "")
if not base_url:
    raise RuntimeError("SEARXNG_URL is not set")

query = "fastapi deployment guide"
params = {
    "q": query,
    "format": "json",
    "limit": 5,
    "engines": "google,bing",
}

resp = requests.get(f"{base_url}/search", params=params, timeout=10)
resp.raise_for_status()
data = resp.json()

for r in data.get("results", []):
    print(r["title"])
    print(r["url"])
    print(r.get("content", "")[:200])
    print()

Способ 3: пакет Python searchxng-data

Для более структурированного доступа установите пакет searxng-data:

pip install searxng-data
from searxng_data import engines

# List available engines
print(engines.list_engines())

Примечание. Этот пакет предоставляет только метаданные механизма, а не сам API поиска.

Самостоятельный хостинг SearXNG

Чтобы запустить собственный экземпляр SearXNG:

# Using Docker
docker run -d -p 8888:8080 \
  -v $(pwd)/searxng:/etc/searxng \
  searxng/searxng:latest

# Then set
SEARXNG_URL=http://localhost:8888

Или установите через pip:

pip install searxng
# Edit /etc/searxng/settings.yml
searxng-run

Публичные экземпляры SearXNG доступны по адресу: - https://searxng.example.com (замените любым общедоступным экземпляром)

Рабочий процесс: поиск и извлечение

SearXNG возвращает заголовки, URL-адреса и фрагменты, а не полное содержимое страницы. Чтобы получить полное содержимое страницы, сначала выполните поиск, а затем извлеките наиболее релевантный URL-адрес с помощью web_extract, инструментов браузера или curl.

# Search for relevant pages
curl -s "${SEARXNG_URL}/search?q=fastapi+deployment&format=json&limit=3"
# Output: list of results with titles and URLs

# Then extract the best URL with web_extract

Ограничения

Устранение неполадок

Проблема Вероятная причина Что делать
SEARXNG_URL не установлен Экземпляр не настроен Используйте общедоступный экземпляр SearXNG или создайте свой собственный
В соединении отказано Экземпляр не запущен или неправильный URL Убедитесь, что URL-адрес правильный и экземпляр запущен
Пустые результаты Экземпляр блокирует запрос Попробуйте другой экземпляр или самостоятельный хостинг
Медленные ответы Публичный экземпляр под нагрузкой Самостоятельное размещение или использование менее загруженного общедоступного экземпляра
формат json не поддерживается Старая версия SearXNG Попробуйте «format=rss» или обновите SearXNG

Подводные камни

Обнаружение экземпляра

Если SEARXNG_URL не установлен и пользователь спрашивает о SearXNG, помогите ему: 1. Найдите общедоступный экземпляр SearXNG (найдите «публичный экземпляр searchxng»). 2. Настройте самостоятельно с помощью Docker или pip.

Публичные экземпляры перечислены по адресу: https://searxng.org/.