Открытая векторная база данных для AI-приложений: хранит документы и векторы для семантического, гибридного и полнотекстового поиска.
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
Установите semtools через npm
npm i -g @llamaindex/semtools - 2
Выполните локальный поиск по ключевым словам в текстовых файлах
semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 - 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 обновляется ежедневно.
Похожие проекты
Локальный AI-поисковик на Rust, который автоматически индексирует любые папки — с кодом, документацией, логами и PDF — и поддерживает Elasticsearch API.
Локальный inference-сервер, который через OpenAI-совместимый API обслуживает модели эмбеддингов, reranking, OCR, извлечения данных, безопасности и LLM из одного кластера.
Библиотека Python и веб-интерфейс для преобразования PDF, DOCX, PPTX, XLSX, изображений и URL в Markdown, JSON, CSV или HTML с OCR и извлечением структурированных полей.
CLI-прокси, который фильтрует и сжимает вывод команд оболочки до того, как он попадёт в контекст AI-агента для программирования, сокращая расход токенов.
Минималистичный настраиваемый кроссшелльный промпт на Rust, показывающий важную информацию о проекте и окружении.