Repolode
run-llama

run-llama/semtools

Утилиты командной строки для преобразования документов в Markdown, локального семантического поиска и вопросов по файлам с помощью AI-агента.

Звёзды
1,878
Форки
153
Открытые issues
6
Последний коммит
7 месяцев назад

Что это?

SemTools — набор утилит командной строки на Rust с четырьмя подкомандами: parse, search, ask и workspace. Команда parse преобразует документы, например PDF и DOCX, в Markdown, по умолчанию используя API LlamaParse. Команда search выполняет полностью локальный семантический поиск по ключевым словам с помощью мультиязычных эмбеддингов model2vec и возвращает совпавшие строки с окружающим контекстом; порог расстояния можно настроить.

Команда ask запускает AI-агента, который использует инструменты поиска и чтения, чтобы отвечать на вопросы по набору файлов. По умолчанию используются модели OpenAI, но через конфигурационный файл можно указать любой совместимый с OpenAI endpoint. Команда workspace сохраняет вычисленные эмбеддинги в ~/.semtools/workspaces/, поэтому при повторном поиске по большим коллекциям использует кешированные результаты, а изменившиеся файлы автоматически обрабатываются заново.

Все инструменты следуют соглашениям Unix: принимают данные через stdin и выводят результат в stdout, поэтому их можно объединять в цепочки с grep, xargs и find. Для parse и ask нужны API-ключи, а search и workspace работают офлайн.

Ключевые возможности

  • 01Преобразует PDF, DOCX, PPTX и другие документы в Markdown с помощью LlamaParse.
  • 02Выполняет локальный семантический поиск с мультиязычными эмбеддингами model2vec и контекстом для каждой строки.
  • 03Позволяет AI-агенту отвечать на вопросы по файлам; поддерживается любой API, совместимый с OpenAI.
  • 04Кеширует эмбеддинги в рабочих пространствах и пересчитывает их для изменившихся файлов.
  • 05Принимает данные через stdin и выводит результат в stdout, что позволяет использовать инструменты в shell-конвейерах.

Сценарии использования

  • Поиск по папке с текстами или преобразованными отчётами по смыслу, а не только по точным ключевым словам.
  • Преобразование PDF в Markdown для предварительной обработки перед поиском или использованием LLM.
  • Вопросы по набору научных статей или заметок прямо из терминала.
  • Передача содержимого разобранных документов coding-агентам через конвейеры.

Быстрый старт

  1. 1

    Установите semtools через npm

    npm i -g @llamaindex/semtools
  2. 2

    Выполните локальный поиск по ключевым словам в текстовых файлах

    semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5
  3. 3

    Преобразуйте документы в Markdown (требуется ключ API LlamaIndex Cloud)

    semtools parse my_dir/*.pdf

Что важно знать

  • Для команд parse и ask нужны внешние ключи API: LlamaParse для разбора и OpenAI для ask.
  • При установке через npm бинарные файлы Rust собираются локально, если нет готового бинарного файла, поэтому могут потребоваться Rust и Cargo.

Темы

Частые вопросы

Что такое semtools?
Утилиты командной строки для преобразования документов в Markdown, локального семантического поиска и вопросов по файлам с помощью AI-агента. SemTools — набор утилит командной строки на Rust с четырьмя подкомандами: parse, search, ask и workspace. Команда parse преобразует документы, например PDF и DOCX, в Markdown, по умолчанию используя API LlamaParse. Команда search выполняет полностью локальный семантический поиск по ключевым словам с помощью мультиязычных эмбеддингов model2vec и возвращает совпавшие строки с окружающим контекстом; порог расстояния можно настроить.
semtools можно использовать бесплатно? Какая у него лицензия?
semtools распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
semtools всё ещё поддерживается?
Нет коммитов больше 6 месяцев. Последний коммит в semtools — 11 мар. 2026 г..
Для чего можно использовать semtools?
Поиск по папке с текстами или преобразованными отчётами по смыслу, а не только по точным ключевым словам. Преобразование PDF в Markdown для предварительной обработки перед поиском или использованием LLM. Вопросы по набору научных статей или заметок прямо из терминала. Передача содержимого разобранных документов coding-агентам через конвейеры.
Как установить semtools?
Установите semtools через npm: npm i -g @llamaindex/semtools Выполните локальный поиск по ключевым словам в текстовых файлах: semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 Преобразуйте документы в Markdown (требуется ключ API LlamaIndex Cloud): semtools parse my_dir/*.pdf
Где скачать semtools?
Исходный код и инструкции по установке — на GitHub: https://github.com/run-llama/semtools

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты