本地 AI 搜索引擎,一条命令自动索引代码、文档、日志和 PDF,兼容 Elasticsearch API,使用 Rust 编写。
run-llama/semtools
命令行工具,用于将文档解析为 Markdown、本地语义关键词搜索,以及借助 AI 代理对文件提问。
- Star
- 1,878
- Fork
- 153
- 未关闭 Issue
- 6
- 最近提交
- 7个月前
这是什么?
SemTools 是一个用 Rust 编写的命令行工具集,包含 parse、search、ask 和 workspace 四个子命令。parse 默认调用 LlamaParse API,将 PDF、DOCX 等文档转换为 Markdown。search 基于 model2vec 多语言嵌入做本地语义关键词搜索,返回匹配行及上下文,并可设置距离阈值。
ask 子命令运行 AI 代理,借助搜索和读取工具对一组文件进行问答,默认使用 OpenAI 模型,也可通过配置文件连接任何兼容 OpenAI 接口的服务。workspace 会将计算好的向量缓存到 ~/.semtools/workspaces/,重复搜索大型文档集时可复用缓存,文件变动后会自动重新嵌入。
各工具遵循 Unix 习惯,支持标准输入输出,可与 grep、xargs、find 等组合使用。parse 和 ask 需要 API 密钥,search 和 workspace 可离线运行。
核心功能
- 01通过 LlamaParse 将 PDF、DOCX、PPTX 等文档解析为 Markdown。
- 02使用多语言 model2vec 嵌入进行本地语义搜索,并返回逐行上下文。
- 03AI 代理可基于文件回答问题,支持任何兼容 OpenAI 的接口。
- 04在 workspace 中缓存向量,文件变化后自动重新嵌入。
- 05支持标准输入输出,便于融入 shell 管道。
适用场景
- 在文本或已转换的报告文件夹中按语义而非精确关键词查找内容。
- 将 PDF 转为 Markdown,作为搜索或大模型处理前的预处理步骤。
- 在终端中对一批论文或笔记进行提问。
- 通过管道把解析后的文档内容交给编程代理使用。
标签
常见问题
- semtools 是什么?
- 命令行工具,用于将文档解析为 Markdown、本地语义关键词搜索,以及借助 AI 代理对文件提问。 SemTools 是一个用 Rust 编写的命令行工具集,包含 parse、search、ask 和 workspace 四个子命令。parse 默认调用 LlamaParse API,将 PDF、DOCX 等文档转换为 Markdown。search 基于 model2vec 多语言嵌入做本地语义关键词搜索,返回匹配行及上下文,并可设置距离阈值。
- semtools 可以免费使用吗?用的什么许可证?
- semtools 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- semtools 还在维护吗?
- 超过半年未提交。semtools 最近一次提交是在 2026年3月11日。
- semtools 适合用来做什么?
- 在文本或已转换的报告文件夹中按语义而非精确关键词查找内容。 将 PDF 转为 Markdown,作为搜索或大模型处理前的预处理步骤。 在终端中对一批论文或笔记进行提问。 通过管道把解析后的文档内容交给编程代理使用。
- 在哪里获取 semtools?
- 源代码和安装说明在 GitHub 上:https://github.com/run-llama/semtools
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
8758470RustApache-2.0更新于 5小时前
自托管推理服务器,通过兼容 OpenAI 的 API 在一个集群中提供嵌入、重排序、OCR、抽取和大模型等多种模型。
3414323PythonApache-2.0更新于 3小时前
Python 库与本地 Web 界面,可将 PDF、Word、PPT、表格、图片和网页转换为 Markdown、JSON、CSV 或 HTML。
1579138PythonMIT更新于 12个月前
命令行代理工具,在 AI 编程助手读取 shell 命令输出前进行过滤和压缩,减少 token 消耗。
8.4万5334RustApache-2.0更新于 14小时前
一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
4万929RustMIT更新于 前天