HyperTag menawarkan sistem tag ekspresif dan mesin pencari semantik yang kuat untuk semua file Anda. Nyatakan pendapat Anda menggunakan tag. Temukan apa yang Anda cari menggunakan pencarian semantik untuk dokumen teks Anda (ya, bahkan PDF) dan gambar. Alih-alih memperkenalkan format file berpemilik seperti alat pengorganisasian file lain yang sudah ada, HyperTag hanya melapisi file yang sudah ada dengan lancar tanpa kerumitan apa pun.
Sasaran : Meminimalkan waktu antara pemikiran dan akses ke semua file yang relevan.
Daftar isi
Tersedia di PyPI
$ pip install hypertag
(hanya mendukung CPU & eksekusi yang dipercepat CUDA!)
Hubungi saya melalui Twitter @SeanPedersen96
HyperTag menawarkan CLI yang apik tetapi yang lebih penting ia menciptakan direktori bernama HyperTagFS
yang merupakan representasi berbasis sistem file dari file dan tag Anda menggunakan tautan dan direktori simbolis.
HyperTag WebApp (Eksperimental) : Klien HTML+JS yang apik. Visualisasikan, susun, dan cari file pribadi Anda dalam hitungan detik yang didukung oleh mesin HyperTag.
Impor Direktori : Impor hierarki direktori yang ada menggunakan $ hypertag import path/to/directory
. HyperTag mengubahnya secara otomatis menjadi hierarki tag menggunakan metatagging.
Pencarian Teks & Gambar Semantik (Eksperimental) : Cari gambar (jpg, png) dan konten dokumen teks (ya, bahkan PDF) dengan kueri teks sederhana. Pencarian teks didukung oleh perpustakaan Sentence Transformers yang mengagumkan. Pencarian teks ke gambar didukung oleh model CLIP OpenAI. Saat ini hanya pertanyaan bahasa Inggris yang didukung.
HyperTag Daemon (Eksperimental) : Memantau HyperTagFS
dan direktori yang ditambahkan ke daftar impor otomatis untuk perubahan pengguna (lihat bagian "Memulai HyperTag Daemon" di bawah). Juga memunculkan DaemonService yang mempercepat pencarian semantik secara signifikan (peringatan: proses daemon memakan banyak RAM dengan penggunaan ~2GB).
Kueri Pencocokan Fuzzy : HyperTag menggunakan pencocokan fuzzy untuk meminimalkan gesekan jika terjadi kesalahan ketik.
Grup Jenis File : HyperTag secara otomatis membuat folder yang berisi file umum (misalnya Gambar: jpg, png, dll., Dokumen: txt, pdf, dll., Kode Sumber: py, js, dll.), yang dapat ditemukan di HyperTagFS
.
Grafik HyperTag : Dapatkan ikhtisar Grafik HyperTag Anda dengan cepat! HyperTag memvisualisasikan grafik metatag pada setiap perubahan dan menyimpannya di HyperTagFS/hypertag-graph.pdf
.
Memunculkan server HTTP untuk klien web HyperTag yang berjalan di localhost:23236
$ python3 -m hypertag.webapi
Impor file dengan tag yang disimpulkan dari hierarki direktori yang ada.
$ hypertag import path/to/directory
$ hypertag add path/to/file https://github.com/SeanPedersen/HyperTag
Beri tag pada file secara manual. Pintasan: $ hypertag t
$ hypertag tag humans/*.txt with human "Homo Sapiens"
Tambahkan nilai ke tag file:
$ hypertag tag sean.txt with name="Sean Pedersen"
Hapus tag dari file secara manual.
$ hypertag untag humans/*.txt with human "Homo Sapiens"
Metatag tag/s untuk membuat hierarki tag. Pintasan: $ hypertag tt
$ hypertag metatag human with animal
Gabungkan semua asosiasi (file & tag) dari tag A ke dalam tag B.
$ hypertag merge human into "Homo Sapiens"
Cetak nama file dari kumpulan hasil yang cocok dengan kueri. Kueri terdiri dari tag (dengan nilai) dan operan. Tag dicocokkan secara fuzzy untuk kenyamanan. Penyusunan saat ini tidak didukung, kueri dievaluasi dari kiri ke kanan.
Pintasan: $ hypertag q
Kueri dengan nilai menggunakan wildcard: $ hypertag query name="Sean*"
Jalur cetak: $ hypertag query human --path
Cetak tag fuzzy yang cocok: $ hypertag query man --verbose
Nonaktifkan pencocokan fuzzy: $ hypertag query human --fuzzy=0
Operan defaultnya adalah AND (persimpangan):
$ hypertag query human name="Sean*"
setara dengan $ hypertag query human and name="Sean*"
ATAU (persatuan):
$ hypertag query human or "Homo Sapiens"
MINUS (perbedaan):
$ hypertag query human minus "Homo Sapiens"
Hanya file yang diindeks yang dapat dicari.
$ hypertag index
Untuk mengurai PDF yang tidak dapat diurai, instal tesseract: # pacman -S tesseract tesseract-data-eng
Indeks file gambar saja: $ hypertag index --image
Indeks hanya file teks: $ hypertag index --text
Algoritme pencarian khusus yang menggabungkan semantik dengan pencarian pencocokan token. Cetak nama file teks yang diurutkan berdasarkan skor yang cocok. Performa mendapat manfaat besar dari menjalankan daemon HyperTag.
Pintasan: $ hypertag s
$ hypertag search "your important text query" --path --score --top_k=10
Cetak nama file gambar yang diurutkan berdasarkan skor yang cocok. Performa mendapat manfaat besar dari menjalankan daemon HyperTag.
Pintasan: $ hypertag si
Teks ke gambar: $ hypertag search_image "your image content description" --path --score --top_k=10
Gambar ke gambar: $ hypertag search_image "path/to/image.jpg" --path --score --top_k=10
Mulai proses daemon dengan tiga fungsi:
HyperTagFS
untuk perubahan penggunaSearch Images
atau Search Texts
: Menafsirkan nama sebagai permintaan pencarian semantik (tambahkan top_k=42 untuk membatasi ukuran hasil) dan secara otomatis mengisinya dengan hasil $ hypertag daemon
$ hypertag tags filename1 filename2
$ hypertag metatags tag1 tag2
$ hypertag show
Nama cetak: $ hypertag show files
Jalur cetak: $ hypertag show files --path
Visualisasikan hierarki grafik metatag (disimpan di root HyperTagFS).
$ hypertag graph
Tentukan algoritma tata letak (default: fruchterman_reingold):
$ hypertag graph --layout=kamada_kawai
Hasilkan representasi berbasis sistem file dari file dan tag Anda menggunakan tautan simbolis dan direktori.
$ hypertag mount
Direktori yang ditambahkan ke daftar impor otomatis akan dipantau oleh daemon untuk mengetahui adanya file baru atau perubahan.
$ hypertag add_auto_import_dir path/to/directory
Defaultnya adalah direktori home pengguna.
$ hypertag set_hypertagfs_dir path/to/directory
pyproject.toml
)~/.config/hypertag/hypertag.db
)~/.config/hypertag/web_pages
untuk situs web, yang lain di ~/.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
Apa gunanya keberadaan HyperTag?
HyperTag menawarkan banyak fitur unik seperti fungsi impor, pencarian semantik, grafik dan pencocokan fuzzy yang membuatnya sangat nyaman untuk digunakan. Meskipun basis kode HyperTag tetap relatif kecil di <2000 LOC dibandingkan dengan proyek serupa seperti TMSU (>10.000 LOC di Go) dan SuperTag (>25.000 LOC di Rust), sehingga mudah untuk diretas.
Alternatif Pencarian Semantik