HyperTag 為您的所有文件提供了富有表現力的標籤系統和強大的語意搜尋引擎。使用標籤表達您的想法。使用文字文件(是的,甚至是 PDF)和圖像的語意搜尋來尋找您要尋找的內容。 HyperTag 不像其他現有文件組織工具那樣引入專有文件格式,而是平滑地分層在現有文件之上,沒有任何麻煩。
目標:最大限度地縮短思考和存取所有相關文件之間的時間。
目錄
在 PyPI 上可用
$ pip install hypertag
(僅支援 CPU 和 CUDA 加速執行!)
透過 Twitter @SeanPedersen96 與我
HyperTag 提供了一個靈活的 CLI,但更重要的是它創建了一個名為HyperTagFS
的目錄,這是一個基於檔案系統的檔案系統,使用符號連結和目錄表示檔案和標籤。
HyperTag WebApp(實驗) :一個靈活的 HTML+JS 用戶端。由 HyperTag 引擎提供支持,可在幾秒鐘內視覺化、建立和搜尋您的個人文件。
目錄導入:使用$ hypertag import path/to/directory
匯入現有的目錄層次結構。 HyperTag 使用元標記將其自動轉換為標籤層次結構。
語意文字和圖像搜尋(實驗性) :透過簡單的文字查詢搜尋圖像(jpg、png)和文字文件(是的,甚至是 PDF)內容。文字搜尋由出色的 Sentence Transformers 庫提供支援。文字到圖像搜尋由 OpenAI 的 CLIP 模型提供支援。目前僅支援英文查詢。
HyperTag Daemon(實驗性) :監視新增至自動匯入清單中的HyperTagFS
和目錄以了解使用者變更(請參閱下方的「啟動 HyperTag Daemon」部分)。也產生 DaemonService,它可以顯著加快語義搜尋速度(警告:守護程序佔用 RAM 約 2GB)。
模糊配對查詢:HyperTag 使用模糊匹配來最大限度地減少拼字錯誤的情況下的摩擦。
檔案類型群組:HyperTag 會自動建立包含常見檔案的資料夾(例如圖片:jpg、png 等,文件:txt、pdf 等,原始碼:py、js 等),這些檔案可以在HyperTagFS
中找到。
HyperTag Graph :快速了解您的 HyperTag Graph! HyperTag 視覺化每次變更的元標籤圖並將其保存在HyperTagFS/hypertag-graph.pdf
中。
為在 localhost:23236 上執行的 HyperTag Web 用戶端產生 HTTP 伺服器
$ 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
預設運算元為 AND(交集):
$ 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
中,其他 URL 則保存在~/.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 提供了許多獨特的功能,例如導入、語義搜尋、圖形和模糊匹配功能,使其使用起來非常方便。與 TMSU(Go 中>10,000 LOC)和 SuperTag(Rust 中>25,000 LOC)等類似專案相比,HyperTag 的程式碼庫相對較小,小於 2000 LOC,因此很容易被攻擊。
語義搜尋替代方案