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 데몬(실험용) : 사용자 변경 사항에 대해 자동 가져오기 목록에 추가된 HyperTagFS
및 디렉터리를 모니터링합니다(아래 "HyperTag 데몬 시작" 섹션 참조). 또한 의미론적 검색 속도를 크게 높이는 DaemonService를 생성합니다(경고: 데몬 프로세스는 ~2GB 사용량의 RAM을 많이 사용합니다).
퍼지 매칭 쿼리 : HyperTag는 퍼지 매칭을 사용하여 혹시라도 오타가 발생할 경우 마찰을 최소화합니다.
파일 형식 그룹 : HyperTag는 HyperTagFS
에서 찾을 수 있는 일반 파일(예: 이미지: jpg, png 등, 문서: txt, pdf 등, 소스 코드: py, js 등)이 포함된 폴더를 자동으로 생성합니다.
하이퍼태그 그래프 : 하이퍼태그 그래프의 개요를 빠르게 확인하세요! HyperTag는 모든 변경 사항에 대한 메타태그 그래프를 시각화하고 이를 HyperTagFS/hypertag-graph.pdf
에 저장합니다.
localhost:23236에서 실행되는 HyperTag 웹 클라이언트용 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는 가져오기, 의미 검색, 그래프 작성, 퍼지 매칭 기능 등 사용이 매우 편리한 다양한 고유 기능을 제공합니다. HyperTag의 코드 베이스는 TMSU(Go에서 >10,000 LOC) 및 SuperTag(Rust에서 >25,000 LOC)와 같은 유사한 프로젝트에 비해 <2000 LOC로 상대적으로 작으므로 해킹하기 쉽습니다.
의미론적 검색 대안