Repolode
run-llama

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 数据每日更新。

相关项目