综合介绍
Shandu 是一个基于人工智能的开源研究系统,托管在GitHub上,由开发者jolovicdev创建。它利用 LangChain 和 LangGraph 技术,旨在为用户提供自动化、全面且高效的主题研究能力。不同于传统的单一搜索工具,Shandu通过递归探索和并行处理,能够深入挖掘信息,并支持命令行(CLI)和Python接口操作。无论是学术研究、技术探索还是市场分析,用户都可以借助它快速整理复杂数据。Shandu还内置了网页抓取功能,确保在伦理合规的前提下获取多样化信息来源。该项目作为 OpenAI DeepResearch 的替代品,强调轻量化、免费使用和本地运行,适合开发者和研究人员使用。
功能列表
- 自动化深入研究:根据用户输入的查询,系统自动执行多层次信息挖掘,生成全面的研究报告。
- 递归探索:通过迭代搜索和分析,逐步扩展研究范围,挖掘隐藏关联信息。
- 并行处理:支持多线程操作,同时从多个来源获取数据,提升效率。
- 网页抓取:内置抓取工具,能提取网页内容,支持动态渲染的JavaScript重度网站。
- 多引擎搜索:集成Google、DuckDuckGo等多种搜索引擎,获取多样化结果。
- AI驱动搜索:提供轻量级AI搜索功能(aisearch),快速解答简单问题。
- 报告生成:将研究结果整理为Markdown格式文件,方便阅读和分享。
- 灵活配置:支持调整搜索深度、广度和结果数量,满足不同需求。
使用帮助
安装流程
Shandu是一个基于Python的开源项目,需要在本地环境中安装并配置才能使用。以下是详细的安装步骤:
- 环境准备
- 确保你的设备已安装Python 3.8或以上版本。可以通过命令
python --version
检查版本。 - 安装Git工具,用于从GitHub克隆项目代码。Windows用户可从Git官网下载,Linux/Mac用户可通过包管理器安装(如
sudo apt install git
)。
- 确保你的设备已安装Python 3.8或以上版本。可以通过命令
- 克隆项目
- 打开终端(Windows使用CMD或PowerShell,Mac/Linux使用Terminal)。
- 输入以下命令克隆Shandu仓库:
git clone https://github.com/jolovicdev/shandu.git
- 进入项目目录:
cd shandu
- 安装依赖
- 使用pip安装项目所需的Python库:
pip install -e .
- 如果遇到依赖问题,可尝试升级pip(
pip install --upgrade pip
)或使用虚拟环境:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows pip install -e .
- 使用pip安装项目所需的Python库:
- 配置API
- Shandu需要配置API密钥以调用外部服务(如搜索引擎)。运行以下命令进入配置模式:
shandu configure
- 根据提示输入API密钥(如Google API、DuckDuckGo API)。开发者可参考Nebius Studio获取免费密钥用于测试。
- Shandu需要配置API密钥以调用外部服务(如搜索引擎)。运行以下命令进入配置模式:
- 验证安装
- 输入
shandu --help
,如果返回命令帮助信息,说明安装成功。
- 输入
功能操作流程
1. 运行深入研究(research命令)
这是Shandu的核心功能,用于自动化研究复杂主题。
- 操作步骤:
- 在终端输入研究命令,例如:
shandu research "云计算的发展趋势" --depth 2 --breadth 4 --output report.md
--depth 2
:设置研究深度为2层(递归探索2次)。--breadth 4
:每次探索扩展4个相关主题。--output report.md
:将结果保存为Markdown文件。
- 系统会自动启动搜索和分析,过程可能需要几分钟(取决于网络和主题复杂性)。
3.完成后,打开report.md
查看研究报告,内容包括主题概述、关键发现和参考链接。
- 在终端输入研究命令,例如:
- 使用场景:适合需要全面资料的学术研究或技术调研,例如“AI在医疗领域的应用”。
2. 快速AI搜索(aisearch命令)
用于解答简单问题或获取即时答案。
- 操作步骤:
- 输入快速搜索命令,例如:
shandu aisearch "当前美国的总统是谁?" --detailed
--detailed
:返回详细答案而非简短回复。
- 系统会调用AI模型返回结果,例如:“截至2025年3月3日,美国总统是唐纳德·特朗普,他于2025年1月20日开始第二任期。”
- 输入快速搜索命令,例如:
- 使用场景:适合快速查阅事实,如历史事件、人物信息等。
3. 网页抓取(scrape命令)
用于从特定网页提取内容。
- 操作步骤:
- 输入抓取命令,例如:
shandu scrape "https://example.com" --dynamic
--dynamic
:启用动态渲染,适合JavaScript驱动的网站。
- 系统返回提取的文本内容,可通过管道保存到文件:
shandu scrape "https://example.com" --dynamic > output.txt
- 输入抓取命令,例如:
- 使用场景:分析新闻页面、技术博客或产品官网内容。
4. 配置搜索引擎
用户可自定义搜索来源以优化结果。
- 操作步骤:
- 输入命令指定搜索引擎:
shandu search "人工智能伦理" --engines "google,duckduckgo" --max-results 15
--engines
:指定Google和DuckDuckGo搜索。--max-results 15
:限制返回15个结果。
- 查看返回的搜索结果列表,可用于后续深入研究。
- 输入命令指定搜索引擎:
- 使用场景:获取多样化信息来源,避免单一引擎偏差。
注意事项
- 网络要求:Shandu依赖网络连接,确保运行时网络稳定。
- 伦理合规:抓取网页时遵守目标站点的robots.txt规则,避免频繁请求导致IP被封禁。
- 性能优化:复杂研究可能占用较多内存,建议在配置较高的设备上运行(如8GB+ RAM)。
- 调试问题:如遇到错误,可查看日志(默认保存为
shandu.log
)或在GitHub提交Issue。