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 ที่ยอดเยี่ยม การค้นหาข้อความเป็นรูปภาพขับเคลื่อนโดยโมเดล CLIP ของ OpenAI ขณะนี้รองรับเฉพาะข้อความค้นหาภาษาอังกฤษเท่านั้น
HyperTag Daemon (ทดลอง) : ตรวจสอบ HyperTagFS
และไดเร็กทอรีที่เพิ่มในรายการนำเข้าอัตโนมัติสำหรับการเปลี่ยนแปลงผู้ใช้ (ดูหัวข้อ "เริ่ม HyperTag Daemon" ด้านล่าง) ยังวางไข่ DaemonService ซึ่งเพิ่มความเร็วในการค้นหาความหมายอย่างมีนัยสำคัญ (คำเตือน: กระบวนการ daemon นั้นเป็นหมู RAM ที่มีการใช้งาน ~ 2GB)
ข้อความค้นหาการจับคู่แบบคลุมเครือ : HyperTag ใช้การจับคู่แบบคลุมเครือเพื่อลดความขัดแย้งในกรณีที่ไม่น่าจะเกิดการพิมพ์ผิด
กลุ่มประเภทไฟล์ : HyperTag จะสร้างโฟลเดอร์ที่มีไฟล์ทั่วไปโดยอัตโนมัติ (เช่น รูปภาพ: jpg, PNG ฯลฯ เอกสาร: txt, pdf ฯลฯ ซอร์สโค้ด: py, js ฯลฯ) ซึ่งสามารถพบได้ใน HyperTagFS
HyperTag Graph : รับภาพรวมของ HyperTag Graph ของคุณอย่างรวดเร็ว! HyperTag จะแสดงกราฟเมตาแท็กในทุกการเปลี่ยนแปลงและบันทึกไว้ที่ HyperTagFS/hypertag-graph.pdf
วางเซิร์ฟเวอร์ HTTP สำหรับเว็บไคลเอ็นต์ HyperTag ที่ทำงานบน localhost: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"
ลบ tag/s ออกจากไฟล์ด้วยตนเอง
$ 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 daemon
ทางลัด: $ hypertag s
$ hypertag search "your important text query" --path --score --top_k=10
พิมพ์ชื่อไฟล์ภาพเรียงตามคะแนนที่ตรงกัน ประโยชน์ด้านประสิทธิภาพอย่างมากจากการรัน HyperTag daemon
ทางลัด: $ 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
เริ่มกระบวนการ daemon ด้วยฟังก์ชันการทำงานสามอย่าง:
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
ไดเร็กทอรีที่เพิ่มในรายการนำเข้าอัตโนมัติจะถูกตรวจสอบโดย daemon เพื่อหาไฟล์ใหม่หรือการเปลี่ยนแปลง
$ 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 นั้นค่อนข้างเล็กที่ <2,000 LOC เมื่อเทียบกับโปรเจ็กต์ที่คล้ายกันเช่น TMSU (>10,000 LOC in Go) และ SuperTag (>25,000 LOC ใน Rust) ทำให้ง่ายต่อการแฮ็ก
ทางเลือกการค้นหาความหมาย