HyperTag предлагает выразительную систему тегов и мощную систему семантического поиска для всех ваших файлов. Покажите, как вы думаете, используя теги. Найдите то, что ищете, используя семантический поиск текстовых документов (да, даже PDF-файлов) и изображений. Вместо того, чтобы использовать собственные форматы файлов, как это делают другие существующие инструменты организации файлов, HyperTag просто плавно накладывает поверх существующих файлов без каких-либо проблем.
Цель : Минимизировать время между обдумыванием и доступом ко всем соответствующим файлам.
Оглавление
Доступно на PyPI
$ pip install hypertag
(поддерживается как только процессор, так и ускоренное выполнение CUDA!)
Свяжитесь со мной через Твиттер @SeanPedersen96.
HyperTag предлагает удобный интерфейс командной строки, но, что более важно, он создает каталог под названием HyperTagFS
, который представляет собой представление ваших файлов и тегов на основе файловой системы с использованием символических ссылок и каталогов.
HyperTag WebApp (экспериментальная версия) : удобный клиент HTML+JS. Визуализируйте, структурируйте и ищите свои личные файлы за считанные секунды с помощью механизма HyperTag.
Импорт каталогов : импортируйте существующие иерархии каталогов, используя $ hypertag import path/to/directory
. HyperTag автоматически преобразует его в иерархию тегов с помощью метатегов.
Семантический поиск текста и изображений (экспериментальный) : поиск изображений (jpg, png) и текстовых документов (да, даже PDF-файлов) с помощью простого текстового запроса. Текстовый поиск поддерживается потрясающей библиотекой Sentence Transformers. Поиск текста в изображении основан на модели CLIP OpenAI. В настоящее время поддерживаются только английские запросы.
HyperTag Daemon (экспериментальный) : отслеживает HyperTagFS
и каталоги, добавленные в список автоматического импорта, на предмет пользовательских изменений (см. раздел «Запуск HyperTag Daemon» ниже). Также порождает DaemonService, который значительно ускоряет семантический поиск (предупреждение: процесс-демон занимает много оперативной памяти и использует ~2 ГБ).
Запросы с нечетким сопоставлением . HyperTag использует нечеткое сопоставление, чтобы свести к минимуму трудности в маловероятном случае опечатки.
Группы типов файлов : HyperTag автоматически создает папки, содержащие общие файлы (например, изображения: jpg, png и т. д., документы: txt, pdf и т. д., исходный код: py, js и т. д.), которые можно найти в HyperTagFS
.
График HyperTag : быстро получите обзор вашего графика HyperTag! HyperTag визуализирует график метатегов при каждом изменении и сохраняет его в HyperTagFS/hypertag-graph.pdf
.
Создать HTTP-сервер для веб-клиента HyperTag, работающего на локальном хосте: 23236.
$ python3 -m hypertag.webapi
Импортируйте файлы с тегами, полученными из существующей иерархии каталогов.
$ hypertag import path/to/directory
$ hypertag add path/to/file https://github.com/SeanPedersen/HyperTag
Вручную помечайте файлы. Ярлык: $ hypertag t
$ hypertag tag humans/*.txt with human "Homo Sapiens"
Добавьте значение в тег файла:
$ hypertag tag sean.txt with name="Sean Pedersen"
Вручную удалить теги из файла/ов.
$ hypertag untag humans/*.txt with human "Homo Sapiens"
Теги метатегов для создания иерархий тегов. Ярлык: $ hypertag tt
$ hypertag metatag human with animal
Объединить все ассоциации (файлы и теги) тега A с тегом B.
$ hypertag merge human into "Homo Sapiens"
Выведите имена файлов результирующего набора, соответствующие запросу. Запросы состоят из тегов (со значениями) и операндов. Теги для удобства сопоставлены нечетко. Вложенность в настоящее время не поддерживается, запросы оцениваются слева направо.
Ярлык: $ hypertag q
Запрос со значением с использованием подстановочного знака: $ hypertag query name="Sean*"
Печатать пути: $ hypertag query human --path
Распечатать тег с нечетким совпадением: $ hypertag query man --verbose
Отключите нечеткое сопоставление: $ hypertag query human --fuzzy=0
Операнд по умолчанию — И (пересечение):
$ hypertag query human name="Sean*"
эквивалентен $ hypertag query human and name="Sean*"
ИЛИ (союз):
$ hypertag query human or "Homo Sapiens"
МИНУС (разница):
$ hypertag query human minus "Homo Sapiens"
Поиск возможен только в индексированных файлах.
$ hypertag index
Чтобы проанализировать даже неразбираемые PDF-файлы, установите tesseract: # pacman -S tesseract tesseract-data-eng
Индексировать только файлы изображений: $ hypertag index --image
Индексировать только текстовые файлы: $ hypertag index --text
Пользовательский алгоритм поиска, сочетающий семантический поиск с поиском соответствия токенов. Печать имен текстовых файлов, отсортированных по совпадению. Производительность значительно возрастает за счет запуска демона HyperTag.
Ярлык: $ hypertag s
$ hypertag search "your important text query" --path --score --top_k=10
Напечатайте имена файлов изображений, отсортированные по совпадению. Производительность значительно возрастает за счет запуска демона HyperTag.
Ярлык: $ hypertag si
Текст в изображение: $ hypertag search_image "your image content description" --path --score --top_k=10
Изображение в изображение: $ hypertag search_image "path/to/image.jpg" --path --score --top_k=10
Запустите процесс демона с тройной функциональностью:
HyperTagFS
на предмет изменений пользователя.Search Images
или Search Texts
: имя интерпретируется как семантический поисковый запрос (добавьте top_k=42, чтобы ограничить размер результата) и автоматически заполняет его результатами. $ hypertag daemon
$ hypertag tags filename1 filename2
$ hypertag metatags tag1 tag2
$ hypertag show
Напечатать имена: $ hypertag show files
Пути печати: $ hypertag show files --path
Визуализируйте иерархию графа метатегов (сохраненную в корне HyperTagFS).
$ hypertag graph
Укажите алгоритм компоновки (по умолчанию: fruchterman_reingold):
$ hypertag graph --layout=kamada_kawai
Создайте представление ваших файлов и тегов на основе файловой системы, используя символические ссылки и каталоги.
$ hypertag mount
Каталоги, добавленные в список автоматического импорта, будут отслеживаться демоном на наличие новых файлов или изменений.
$ hypertag add_auto_import_dir path/to/directory
По умолчанию — домашний каталог пользователя.
$ hypertag set_hypertagfs_dir path/to/directory
pyproject.toml
).~/.config/hypertag/hypertag.db
).~/.config/hypertag/web_pages
для веб-сайтов, остальные — в ~/.config/hypertag/downloads
$ git clone https://github.com/SeanPedersen/HyperTag.git
$ cd HyperTag/
$ poetry install
$ poetry shell
$ pytest -v
$ black hypertag/
$ flake8
$ mypy hypertag --no-namespace-packages
$ bandit --exclude tests/ -r .
$ python -m hypertag
В чем смысл существования HyperTag?
HyperTag предлагает множество уникальных функций, таких как импорт, семантический поиск, построение графиков и функции нечеткого сопоставления, которые делают его очень удобным в использовании. При этом кодовая база HyperTag остается относительно небольшой (<2000 LOC) по сравнению с аналогичными проектами, такими как TMSU (>10 000 LOC в Go) и SuperTag (>25 000 LOC в Rust), что упрощает взлом.
Альтернативы семантическому поиску