综合介绍
MindSearch是由上海人工智能实验室推出的一款开源AI搜索引擎框架,旨在模拟人类的思维过程进行复杂信息搜集与整合。该工具结合了大规模语言模型(LLM)与搜索引擎的先进技术,通过多智能体框架,实现对上百个网页的自主信息搜集整理,并在短时间内给出综合回答。用户可以使用闭源LLM(如GPT、Claude)或开源LLM(如InternLM2.5系列模型)来部署自己的搜索引擎。
其核心逻辑是:采用多智能体框架来模拟人类思维过程,包括两个关键组件:WebPlanner(计划者)和 WebSearcher(执行者)。
- WebPlanner 将用户的问题分解,并构建有向无环图(DAG)来引导搜索;
- WebSearcher 则从互联网上检索并筛选有价值的信息给到 WebPlanner;
- WebPlanner 最终给出结论。
功能列表
- 多智能体框架:通过多个智能体协同工作,实现复杂信息的搜集与整合。
- 支持多种LLM:兼容闭源和开源的大语言模型,用户可根据需求选择合适的模型。
- 多种前端接口:提供React、Gradio、Streamlit等多种前端接口,方便用户使用。
- 深度知识探索:通过浏览数百个网页,提供广泛且深层次的答案。
- 透明的解决方案路径:提供思考路径和搜索关键词等完整内容,提高回复的可信度和可用性。
技术原理
1、WebPlanner:智能规划中枢
WebPlanner 是 MindSearch 的智慧大脑,它把搜索任务构建成有向无环图(DAG)。接收用户问题后,凭借语言模型代码生成能力,用预定义原子代码函数拆解问题为子问题节点,勾勒出问题解决框架。在搜索进程中,依据 WebSearcher 反馈,灵活延展与细化此图,动态调整策略,引领系统精准挖掘信息。比如面对“人工智能在医疗影像诊断中的应用现状与挑战”的问题,它会拆解出医疗影像类型、人工智能算法应用实例、面临的数据隐私与解读准确性等子问题,为全面解答铺设道路。
2、WebSearcher:信息挖掘尖兵
WebSearcher 则勇当信息挖掘先锋。采用粗到细策略,先优化查询关键词提升精度,聚合海量搜索内容剔除冗余,精准筛选关键页面,再深度总结提炼。借助语言模型理解与整合碎片化信息,将其转化为逻辑连贯的知识模块。以搜索“新能源汽车电池技术突破”为例,它能迅速从科研机构报告、行业新闻、企业官网等资源里,筛选出电池能量密度提升、充电速度加快等关键信息并整理呈现。
功能特点
1、深度知识萃取
MindSearch 可深入挖掘众多网页,为用户呈现深度知识。无论是探索古老文明奥秘,还是追踪前沿科技动态,它都能从海量网络资源中梳理脉络。如查询“宇宙暗物质研究进展”,它不仅提供基础概念,还能汇总最新观测数据、理论模型以及全球科研团队的阶段性成果,助用户构建系统知识体系。
2、搜索路径透明化
区别于传统搜索引擎,MindSearch 向用户展示思考路径、搜索关键词与信息整合流程。用户查询“法律条文释义”时,除答案外,还能知晓其从法律数据库、专业论坛及案例分析中筛选整合信息的过程,增强信任度的同时,便于用户深入学习研究,提升相关知识水平。
3、多界面适配
考虑到不同用户需求,MindSearch 提供 React、Gradio、Streamlit 和本地调试等多种界面。开发者可借 React 界面将其融入 Web 应用;普通用户则可通过 Gradio 或 Streamlit 界面便捷查询,无需复杂编程与环境配置,降低使用门槛,提升用户体验。
4、动态图构建机制
其动态图构建功能可依用户查询生成子问题节点,依据搜索结果实时拓展。面对热点话题如“社交媒体对青少年心理健康的影响”,能及时结合新研究、新事件更新搜索图,灵活调整方向,确保提供最新最相关信息。
应用场景
1、学术研究好帮手
在学术领域,MindSearch 为研究者大幅缩短信息收集时间。如历史学者研究特定历史时期文化交流,它可整合古籍文献、考古报告、学术论文等资源,梳理交流脉络与重要事件,助力学者快速定位关键信息,明确研究方向,提高研究效率。
2、创作灵感启发器
对于创作者,MindSearch 是灵感源泉。文案撰写者创作旅游文案时,可搜索目的地特色美食、小众景点、民俗风情等素材,经整合加工成引人入胜的文案。影视编剧创作科幻剧本时,能从中获取新颖科幻概念、未来场景设定等灵感素材,丰富创作内容。
3、商业决策指南针
商业领域中,企业可利用 MindSearch 监测市场趋势、分析竞品动态、洞察消费者需求。例如餐饮企业制定新品策略时,可搜索市场流行食材、竞品热门菜品、消费者口味偏好等信息,综合研判后推出契合市场需求的新品,增强市场竞争力。
使用帮助
1、依赖安装
首先,确保你的系统已经安装了Python环境(推荐Python 3.8及以上版本)。然后,在命令行中进入MindSearch项目的根目录,执行以下命令安装所需的依赖项:
pip install -r requirements.txt
这一步骤将自动下载并安装MindSearch运行所需的各种Python库和模块,为后续的启动和使用做好准备。
2、启动MindSearch API
在依赖安装完成后,就可以启动MindSearch API了。使用以下命令启动FastAPI服务器:
python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch
在这里,你可以根据实际需求对参数进行调整:
- `--lang`:用于指定模型的语言,例如`en`表示英语,`cn`表示中文。请根据你期望的输入语言和搜索结果语言进行选择。
- `--model_format`:指定模型的格式,如`internlm_server`表示使用InternLM2.5 - 7b - chat本地服务器模型;若你想使用其他模型,例如GPT4,则需要将其修改为`gpt4`,同时确保你已经正确配置了相应模型的访问和使用权限。
- `--search_engine`:用于选择搜索引擎,MindSearch支持多种搜索引擎,如
`DuckDuckGoSearch`(DuckDuckGo搜索引擎)、`BingSearch`(Bing搜索引擎)、`BraveSearch`(Brave搜索引擎)、`GoogleSearch`(Google Serper搜索引擎)、`TencentSearch`(Tencent搜索引擎)等。如果选择除DuckDuckGo和Tencent以外的网页搜索引擎,你需要将对应的API密钥设置为`WEB_SEARCH_API_KEY`环境变量;若使用Tencent搜索引擎,还需要额外设置`TENCENT_SEARCH_SECRET_ID`和`TENCENT_SEARCH_SECRET_KEY`。
3、启动MindSearch前端
MindSearch提供了多种前端界面供用户选择,以下是不同前端界面的启动方式:
3.1 React
1. 首先,需要配置Vite的API代理,指定实际后端URL。假设后端服务器运行在本地`127.0.0.1`的`8002`端口(请根据实际情况修改),执行以下命令:
HOST="127.0.0.1"
PORT=8002
sed -i -r "s/target:\s*\"\"/target: \"${HOST}:${PORT}\"/" frontend/React/vite.config.ts
2. 确保你的系统已经安装了Node.js和npm。对于Ubuntu系统,可以使用以下命令安装:
sudo apt install nodejs npm
对于Windows系统,你需要从[Node.js官方网站](https://nodejs.org/zh-cn/download/prebuilt-installer)下载并安装适合你系统的Node.js版本。
3. 进入`frontend/React`目录,执行以下命令安装项目依赖并启动React前端:
cd frontend/React
npm install
npm start
3.2 Gradio
在命令行中执行以下命令启动Gradio前端:
python frontend/mindsearch_gradio.py
3.3 Streamlit
使用以下命令启动Streamlit前端:
streamlit run frontend/mindsearch_streamlit.py
3、本地调试
如果你希望在本地进行调试,可以使用以下命令:
python mindsearch/terminal.py
通过本地调试,你可以更方便地检查和优化MindSearch在你本地环境中的运行情况,查看详细的日志信息,以便及时发现和解决可能出现的问题。
结语
MindSearch 以其独特技术、丰富功能与多元应用场景,在信息检索领域掀起创新浪潮。它提升用户信息获取效率与质量,为开发者搭建创新平台,推动 AI 搜索引擎技术发展。于学术、创作、商业等多领域皆具巨大潜力与价值。相信在未来,MindSearch 将持续进化,助力我们更高效探索知识宇宙,畅享智能信息检索新体验。