{/ Эта страница автоматически создается на основе файла SKILL.md навыка с помощью сайта site/scripts/generate-skill-docs.py. Редактируйте исходный код SKILL.md, а не эту страницу. /}
Поиск Поиск
Бесплатный метапоиск через SearXNG — объединяет результаты из более чем 70 поисковых систем. Самостоятельное размещение или использование общедоступного экземпляра. Ключ API не требуется. Автоматически возвращается к исходному состоянию, когда набор инструментов веб-поиска недоступен.
Метаданные навыков
Источник
Необязательно — установите с помощью hermesskills installofficial/research/searxng-search
Ниже приведено полное определение навыка, которое Гермес загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навык активен.
ИскатьXNG Поиск
Бесплатный мета-поиск с использованием SearXNG — уважающего конфиденциальность автономного поискового агрегатора, который одновременно запрашивает более 70 поисковых систем.
Ключ API не требуется при использовании общедоступного экземпляра. Также может быть размещен самостоятельно для полного контроля. Автоматически появляется в качестве запасного варианта, если основной набор инструментов веб-поиска (FIRECRAWL_API_KEY) не настроен.
Конфигурация
Для SearXNG требуется переменная среды SEARXNG_URL, указывающая на ваш экземпляр SearXNG:
# Public instances (no setup required)SEARXNG_URL=https://searxng.example.com
# Self-hosted SearXNGSEARXNG_URL=http://localhost:8888
Если ни один экземпляр не настроен, этот навык недоступен, и агент возвращается к другим параметрам поиска.
Порядок обнаружения
Прежде чем выбирать подход, проверьте, что действительно доступно:
# Check if SEARXNG_URL is set and the instance is reachable
curl-s--max-time5"${SEARXNG_URL}/search?q=test&format=json"|head-c200
Дерево решений:
1. Если установлен SEARXNG_URL и экземпляр отвечает, используйте SearXNG.
2. Если SEARXNG_URL не установлен или недоступен, вернитесь к другим доступным инструментам поиска.
3. Если пользователю нужен именно SearXNG, помогите ему настроить экземпляр или найти общедоступный.
Способ 1: CLI через Curl (предпочтительно)
Используйте «curl» через «терминал» для вызова API SearXNG JSON. Это позволяет избежать предположения, что установлен какой-либо конкретный пакет Python.
# Text search (JSON output)
curl-s--max-time10\"${SEARXNG_URL}/search?q=python+async+programming&format=json&engines=google,bing&limit=10"# With Safesearch off
curl-s--max-time10\"${SEARXNG_URL}/search?q=example&format=json&safesearch=0"# Specific categories (general, news, science, etc.)
curl-s--max-time10\"${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-time10"${SEARXNG_URL}/search?q=fastapi&format=json&limit=5"\|python3-c"import json, sysdata = 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 с библиотекой запросов:
importos,requests,urllib.parsebase_url=os.environ.get("SEARXNG_URL","")ifnotbase_url:raiseRuntimeError("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()forrindata.get("results",[]):print(r["title"])print(r["url"])print(r.get("content","")[:200])print()
Способ 3: пакет Python searchxng-data
Для более структурированного доступа установите пакет searxng-data:
pipinstallsearxng-data
fromsearxng_dataimportengines# List available enginesprint(engines.list_engines())
Примечание. Этот пакет предоставляет только метаданные механизма, а не сам API поиска.
Самостоятельный хостинг SearXNG
Чтобы запустить собственный экземпляр SearXNG:
# Using Docker
dockerrun-d-p8888:8080\-v$(pwd)/searxng:/etc/searxng\searxng/searxng:latest
# Then setSEARXNG_URL=http://localhost:8888
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 не работает или недоступен, поиск завершается неудачей. Всегда проверяйте, что SEARXNG_URL установлен и экземпляр доступен.
Без извлечения контента: SearXNG возвращает фрагменты, а не полное содержимое страницы. Используйте web_extract, инструменты браузера или curl для полных статей.
Ограничение скорости: некоторые общедоступные экземпляры ограничивают количество запросов. Самостоятельный хостинг позволяет избежать этого.
Охват механизма: доступные механизмы зависят от конфигурации экземпляра SearXNG. Некоторые двигатели могут быть отключены.
Свежесть результатов: метапоиск агрегирует внешние системы — свежесть результатов зависит от этих систем.
Устранение неполадок
Проблема
Вероятная причина
Что делать
SEARXNG_URL не установлен
Экземпляр не настроен
Используйте общедоступный экземпляр SearXNG или создайте свой собственный
В соединении отказано
Экземпляр не запущен или неправильный URL
Убедитесь, что URL-адрес правильный и экземпляр запущен
Пустые результаты
Экземпляр блокирует запрос
Попробуйте другой экземпляр или самостоятельный хостинг
Медленные ответы
Публичный экземпляр под нагрузкой
Самостоятельное размещение или использование менее загруженного общедоступного экземпляра
формат json не поддерживается
Старая версия SearXNG
Попробуйте «format=rss» или обновите SearXNG
Подводные камни
Всегда устанавливайте SEARXNG_URL: без него навык не сможет работать.
Запросы с URL-кодированием: пробелы и специальные символы должны быть закодированы в URL-адресе в Curl или использовать urllib.parse.quote() в Python.
Используйте format=json: формат по умолчанию может быть нечитаемым машиной. Всегда запрашивайте JSON явно.
Установите тайм-аут: всегда используйте --max-time или timeout=, чтобы избежать зависания на недоступных экземплярах.
Лучше всего использовать самостоятельный хостинг: общедоступные экземпляры могут отключаться, ограничиваться скоростью или блокироваться. Самостоятельный экземпляр надежен.
Обнаружение экземпляра
Если SEARXNG_URL не установлен и пользователь спрашивает о SearXNG, помогите ему:
1. Найдите общедоступный экземпляр SearXNG (найдите «публичный экземпляр searchxng»).
2. Настройте самостоятельно с помощью Docker или pip.
Публичные экземпляры перечислены по адресу: https://searxng.org/.