SECSOSO(安全搜搜)是一个面向网络安全场景的 AI 搜索引擎,核心思路是:
- 使用 SearXNG 聚合多源检索结果
- 结合安全垂直数据源(漏洞、工具、论文、导航等)
- 使用 LLM + RAG 对检索结果进行总结、归纳与追问建议
项目技术栈:
- 前端:Vue 3 + TailwindCSS
- 后端:FastAPI + SSE
- 搜索中台:SearXNG + App Search + 自定义引擎
- 容器化部署:Docker Compose
为避免歧义,本文档统一使用以下术语:
- 搜索中台:
App Search + SearXNG的组合服务 - Engine:App Search 中的索引单元(如
sec-vuls、sec-tools) - 知识库:写入各 Engine 的 documents 数据
- 初始化知识库快照:仓库内
kb/app_search/的导出数据
项目的核心设计可参考:
代码中对应了文章提到的几个关键模块:
- 检索聚合层:
backend/src/routers/search.py调用 SearXNG - 意图路由层:根据 query 关键词自动选择
categories/engines - RAG 提示词层:
backend/src/utils/prompts.py - LLM 调用层:
backend/src/utils/llm.py(OpenAI 兼容接口) - 流式输出层:SSE 持续输出
answer与more_question
- 自建 App Search Engine 知识库检索链路(
sec-vuls/sec-links/sec-mind/sec-wiki/sec-social/sec-tools/secsoso) - SearXNG 深度定制(
deploy/searxng/settings.yml),融合 App Search 与外部安全数据源 - 针对漏洞、工具、论文、标准、导航、社群等场景做了意图路由与引擎优先级控制
完整引擎清单与扩展方法见:docs/SEARCH_ENGINES.md
仓库已包含可直接导入的 App Search 初始化快照(Engines/Schema/Relevance/Result/Documents):
kb/app_search/
导出与导入脚本:
scripts/export_app_search_kb.pyscripts/import_app_search_kb.py
使用方式见:docs/APP_SEARCH_BOOTSTRAP.md
新增 Engine 与知识库内容可参考:
frontend/:前端页面与交互backend/:API、流式问答、检索编排deploy/:部署脚本与容器编排imgs/:项目截图
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .envs/test.env .envs/local.env
echo "APP_ENV=test" > .envs/.env
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadcd frontend
npm install
npm run dev默认前端会请求 http://127.0.0.1:8000。
backend/.envs/prod.env / backend/.envs/test.env 中可配置:
- 基础:
DEBUGALLOWED_HOSTSSITE_URL - 搜索:
SEAR_XNG_URLSEAR_XNG_SAFECONTEXTS_LIMIT - 代理鉴权:
PROXY_AUTH(格式user:pass,可留空) - LLM:
LLM_PROVIDER(如moonshot/openai/ollama)LLM_MODELLLM_BASE_URLLLM_API_KEY
所有密钥默认留空,按你的实际环境填写。
SSE 流式接口,返回事件:
search_results:完整检索结果contexts:送入 LLM 的上下文(截断后)answer:LLM 流式回答片段end_answer:回答完成标记more_question:延伸问题流error:错误事件
普通查询接口(非流式),Body 参考:
{
"q": "最新高危漏洞",
"pageno": 1,
"categories": ["general", "science"],
"language": "zh-CN",
"engines": ""
}当 categories/engines 为空时,后端会按 query 自动匹配安全搜索意图。
请按 DEPLOY.md 的顺序执行:先部署搜索中台并导入知识库,再部署 UI + Backend。
以下为对比截图(时间:2024-09-12):














