Agentic APP 技术栈总结- SearXNG

简介

Welcome to SearXNG --- SearXNG Documentation (2025.3.29+50f92779b) SearXNG 是一个免费的互联网元搜索引擎,可聚合多达 231 个搜索服务的结果。用户不会被追踪或分析。此外,SearXNG 可以通过 Tor 使用,以保证在线匿名性。通过使用 searx.space 上列出的实例开始使用 SearXNG。如果您不信任任何人,您可以搭建自己的实例。

安装

自建部署 SearXNG (推荐)

最佳使用方式:强烈建议您自托管自己的 SearXNG 实例:

使用 Docker

arduino 复制代码
# Pull the SearXNG Docker image
docker pull searxng/searxng

# Run SearXNG (will be available at http://localhost:8080)
docker run -d -p 8080:8080 --name searxng searxng/searxng

使用 Docker Compose (推荐)

可以 clone GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. 使用其中的 docker-compose.yml,或者手动编辑。

  1. 创建 docker-compose.yml ,输入下面内容
yaml 复制代码
version: '3'
services:
  searxng:
    container_name: searxng
    image: searxng/searxng
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng
    environment:
      - SEARXNG_BASE_URL=http://localhost:8080/
    restart: unless-stopped
  1. 后台运行 Docker Compose:

    docker-compose up -d

使用公开服务实例

如果你必须使用公开服务实例

  • Get Permission: 始终联系任何公共实例的管理员
  • Respect Resources: 在请求之间使用更长的延迟(至少 4-5 秒)
  • Limited Usage: 尽量在有必要时才 search

公有实例的示例配置:

ini 复制代码
SEARXNG_INSTANCE=https://instance.example.com
SEARXNG_DELAY=5.0

配置

配置文件在 searxng/settings.yml

输出格式配置

yaml 复制代码
  # remove format to deny access, use lower case.
  # formats: [html, csv, json, rss]
  formats:
    - html
    - json

查询参数中增加 format=json ,则会使用 json 格式返回查询结果

bash 复制代码
[localhost:8081/search?format=json&q=Hello](http://localhost:8081/search?format=json&q=Hello)

local-deep-research 中配置 searXNG

local-deep-research/docs/SearXNG-Setup.md at main · LearningCircuit/local-deep-research · GitHub

Setting Up Access

You have two ways to enable the SearXNG search engine:

  1. Environment Variable (Recommended) :

    ini 复制代码
    # Add to your .env file or set in your environment
    SEARXNG_INSTANCE=http://localhost:8080
    
    # Optional: Set custom delay between requests (in seconds)
    SEARXNG_DELAY=2.0
  2. Configuration Parameter : Add to your config.py:

    makefile 复制代码
    # In config.py
    SEARXNG_CONFIG = {
        "instance_url": "http://localhost:8080",
        "delay_between_requests": 2.0
    }

Checking Configuration

To verify if SearXNG is properly configured:

python 复制代码
from local_deep_research.web_search_engines.search_engine_factory import create_search_engine
from local_deep_research.web_search_engines.search_engines_config import SEARCH_ENGINES

# Create the engine
engine = create_search_engine("searxng")

# Check if available
if engine and hasattr(engine, 'is_available') and engine.is_available:
    print(f"SearXNG configured with instance: {engine.instance_url}")
    print(f"Delay between requests: {engine.delay_between_requests} seconds")
else:
    print("SearXNG is not properly configured or is disabled")

结果是找不到 searXNG

sql 复制代码
local_deep_research.web_search_engines.search_engine_factory:Search engine 'searxng' not found, using default: wikipedia
INFO:local_deep_research.web_search_engines.search_engine_factory:Creating wikipedia with filtered parameters: dict_keys(['max_results', 'include_content'])

search_engines.toml

搜索引擎配置文件中,未添加 searxng 配置

ini 复制代码
[searxng]
module_path = "local_deep_research.web_search_engines.engines.search_engine_searxng"
class_name = "SearXNGSearchEngine"
requires_api_key = false
reliability = 0.95
strengths = [
    "web search", "product information", "reviews", "recent information", 
    "news", "general queries", "broad coverage"
]
weaknesses = ["inconsistent due to rate limits", "not specialized for academic content"]

[searxng.default_params]
format = json

python module load

ini 复制代码
module = importlib.import_module(module_path)
engine_class = getattr(module, class_name)

local_deep_research.web_search_engines.engines.search_engine_searxng module 路径错误, 查看 local_deep_research.web_search_engines.engines.search_engine_searxng 文件,文件存在,但其中有 import 报错, 将 import 报错的引用增加 local_deep_research.

diff 复制代码
(deep-researcher) λ git diff                                                                                      
diff --git a/src/local_deep_research/web_search_engines/engines/full_search.py b/src/local_deep_research/web_searc
_engines/engines/full_search.py                                                                                   
index 8b5a0cb..02d0744 100644                                                                                     
--- a/src/local_deep_research/web_search_engines/engines/full_search.py                                           
+++ b/src/local_deep_research/web_search_engines/engines/full_search.py                                           
@@ -4,7 +4,7 @@ from langchain_community.document_transformers import BeautifulSoupTransformer                    
 from langchain_core.language_models import BaseLLM                                                               
 from typing import List, Dict                                                                                    
 import json, os                                                                                                  
-from .utilties.search_utilities import remove_think_tags                                                         
+from local_deep_research.utilties.search_utilities import remove_think_tags                                      
 from datetime import datetime                                                                                    
 from local_deep_research import config                                                                           
 import logging                                                                                                   
diff --git a/src/local_deep_research/web_search_engines/engines/search_engine_searxng.py b/src/local_deep_research
web_search_engines/engines/search_engine_searxng.py                                                               
index 2ce1621..4561ebd 100644                                                                                     
--- a/src/local_deep_research/web_search_engines/engines/search_engine_searxng.py                                 
+++ b/src/local_deep_research/web_search_engines/engines/search_engine_searxng.py                                 
@@ -6,9 +6,9 @@ from langchain_core.language_models import BaseLLM                                                
 import time                                                                                                      
 import json                                                                                                      
                                                                                                                  
-from web_search_engines.search_engine_base import BaseSearchEngine                                               
-from web_search_engines.engines.full_search import FullSearchResults                                             
-import config                                                                                                    
+from local_deep_research.web_search_engines.search_engine_base import BaseSearchEngine                           
+from local_deep_research.web_search_engines.engines.full_search import FullSearchResults                         
+from local_deep_research import config                                                                           
                                                                                                                  
 # Setup logging                                                                                                  
 logging.basicConfig(level=logging.INFO)                                                                          
diff --git a/tests/searxng_test.py b/tests/searxng_test.py                                                        

SEARXNG_INSTANCE

python 复制代码
No SearXNG instance URL provided. The engine is disabled. Set SEARXNG_INSTANCE environment variable or provide instance_url parameter.

测试代码未加载环境变量配置 searXNG 的访问地址,修改测试代码加载 .env 环境变量配置文件。load_dotenv(dotenv_path=settings.env_file)

python 复制代码
from local_deep_research.web_search_engines.search_engine_factory import create_search_engine
from local_deep_research.web_search_engines.search_engines_config import SEARCH_ENGINES
from local_deep_research.config import settings

from dotenv import load_dotenv

load_dotenv(dotenv_path=settings.env_file)

# Create the engine
engine = create_search_engine("searxng")

# Check if available
if engine and hasattr(engine, 'is_available') and engine.is_available:
    print(f"SearXNG configured with instance: {engine.instance_url}")
    print(f"Delay between requests: {engine.delay_between_requests} seconds")
else:
    print("SearXNG is not properly configured or is disabled")

Done

less 复制代码
INFO:local_deep_research.web_search_engines.search_engine_factory:Creating searxng with filtered parameters: dict_keys(['max_results'])
INFO:local_deep_research.web_search_engines.engines.search_engine_searxng:SearXNG init - Instance URL sources: api_key=None, env=http://localhost:8081, param=None      
INFO:local_deep_research.web_search_engines.engines.search_engine_searxng:SearXNG initialized with instance URL: http://localhost:8081
INFO:local_deep_research.web_search_engines.engines.search_engine_searxng:SearXNG init params: max_results=50, language=en, max_filtered_results=None, is_available=True
INFO:local_deep_research.web_search_engines.engines.search_engine_searxng:SearXNG engine initialized with instance: http://localhost:8081
INFO:local_deep_research.web_search_engines.engines.search_engine_searxng:Rate limiting set to 2.0 seconds between requests
SearXNG configured with instance: http://localhost:8081
Delay between requests: 2.0 seconds
相关推荐
开利网络25 分钟前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
非著名架构师38 分钟前
量化“天气风险”:金融与保险机构如何利用气候大数据实现精准定价与投资决策
大数据·人工智能·新能源风光提高精度·疾风气象大模型4.0
熙梦数字化2 小时前
2025汽车零部件行业数字化转型落地方案
大数据·人工智能·汽车
刘海东刘海东2 小时前
逻辑方程结构图语言的机器实现(草稿)
人工智能
亮剑20182 小时前
第2节:程序逻辑与控制流——让程序“思考”
开发语言·c++·人工智能
hixiong1232 小时前
C# OpenCVSharp使用 读光-票证检测矫正模型
人工智能·opencv·c#
大千AI助手2 小时前
HotpotQA:推动多跳推理问答发展的标杆数据集
人工智能·神经网络·llm·qa·大千ai助手·hotpotqa·多跳推理能力
红尘炼丹客2 小时前
《DeepSeek-OCR: Contexts Optical Compression》速览
人工智能·python·自然语言处理·ocr
TiAmo zhang2 小时前
现代C++的AI革命:C++20/C++23核心特性解析与实战应用
c++·人工智能·c++20
mwq301232 小时前
从傅里叶变换到 RoPE:解构位置编码的数学灵魂
人工智能