HyperTag oferece um sistema de tags expressivo e um poderoso mecanismo de busca semântica para todos os seus arquivos. Represente como você pensa usando tags. Encontre o que procura usando a pesquisa semântica para seus documentos de texto (sim, até mesmo PDFs) e imagens. Em vez de introduzir formatos de arquivo proprietários como outras ferramentas de organização de arquivos existentes, o HyperTag simplesmente se sobrepõe suavemente aos arquivos existentes, sem qualquer problema.
Objetivo : Minimizar o tempo entre um pensamento e o acesso a todos os arquivos relevantes.
Índice
Disponível no PyPI
$ pip install hypertag
(suporta apenas CPU e execução acelerada por CUDA!)
Entre em contato comigo pelo Twitter @SeanPedersen96
HyperTag oferece uma CLI inteligente, mas o mais importante é que ele cria um diretório chamado HyperTagFS
, que é uma representação baseada em sistema de arquivos de seus arquivos e tags usando links e diretórios simbólicos.
HyperTag WebApp (Experimental) : Um cliente HTML + JS sofisticado. Visualize, estruture e pesquise seus arquivos pessoais em segundos com a tecnologia do mecanismo HyperTag.
Importação de diretório : importe suas hierarquias de diretório existentes usando $ hypertag import path/to/directory
. HyperTag o converte automaticamente em uma hierarquia de tags usando metatagging.
Pesquisa semântica de texto e imagens (experimental) : pesquise conteúdo de imagens (jpg, png) e documentos de texto (sim, até mesmo PDFs) com uma consulta de texto simples. A pesquisa de texto é alimentada pela incrível biblioteca Sentence Transformers. A pesquisa de texto para imagem é desenvolvida pelo modelo CLIP da OpenAI. Atualmente, apenas consultas em inglês são suportadas.
Daemon HyperTag (Experimental) : Monitora HyperTagFS
e diretórios adicionados à lista de importação automática para alterações do usuário (consulte a seção "Iniciar Daemon HyperTag" abaixo). Também gera o DaemonService, que acelera significativamente a pesquisa semântica (aviso: o processo daemon consome muita RAM com uso de aproximadamente 2 GB).
Consultas de correspondência difusa : o HyperTag usa correspondência difusa para minimizar o atrito no caso improvável de um erro de digitação.
Grupos de tipos de arquivos : O HyperTag cria automaticamente pastas contendo arquivos comuns (ex. Imagens: jpg, png, etc., Documentos: txt, pdf, etc., Código fonte: py, js, etc.), que podem ser encontrados no HyperTagFS
.
Gráfico HyperTag : Obtenha rapidamente uma visão geral do seu Gráfico HyperTag! HyperTag visualiza o gráfico metatag em cada alteração e o salva em HyperTagFS/hypertag-graph.pdf
.
Gerar servidor HTTP para o cliente web HyperTag em execução em localhost:23236
$ python3 -m hypertag.webapi
Importe arquivos com tags inferidas da hierarquia de diretórios existente.
$ hypertag import path/to/directory
$ hypertag add path/to/file https://github.com/SeanPedersen/HyperTag
Marcar arquivos manualmente. Atalho: $ hypertag t
$ hypertag tag humans/*.txt with human "Homo Sapiens"
Adicione um valor à tag de um arquivo:
$ hypertag tag sean.txt with name="Sean Pedersen"
Remova manualmente as tags dos arquivos.
$ hypertag untag humans/*.txt with human "Homo Sapiens"
Tag/s Metatag para criar hierarquias de tags. Atalho: $ hypertag tt
$ hypertag metatag human with animal
Mesclar todas as associações (arquivos e tags) da tag A na tag B.
$ hypertag merge human into "Homo Sapiens"
Imprima os nomes dos arquivos do conjunto resultante que correspondem à consulta. As consultas são compostas por tags (com valores) e operandos. As tags têm correspondência difusa por conveniência. O aninhamento não é suportado atualmente, as consultas são avaliadas da esquerda para a direita.
Atalho: $ hypertag q
Consulta com um valor usando um curinga: $ hypertag query name="Sean*"
Imprimir caminhos: $ hypertag query human --path
Imprimir tag de correspondência difusa: $ hypertag query man --verbose
Desativar correspondência difusa: $ hypertag query human --fuzzy=0
O operando padrão é AND (interseção):
$ hypertag query human name="Sean*"
é equivalente a $ hypertag query human and name="Sean*"
OU (união):
$ hypertag query human or "Homo Sapiens"
MENOS (diferença):
$ hypertag query human minus "Homo Sapiens"
Somente arquivos indexados podem ser pesquisados.
$ hypertag index
Para analisar até mesmo PDFs não analisáveis, instale o tesseract: # pacman -S tesseract tesseract-data-eng
Indexar apenas arquivos de imagem: $ hypertag index --image
Indexar apenas arquivos de texto: $ hypertag index --text
Um algoritmo de pesquisa personalizado que combina pesquisa semântica com correspondência de token. Imprima nomes de arquivos de texto classificados por pontuação correspondente. O desempenho se beneficia muito com a execução do daemon HyperTag.
Atalho: $ hypertag s
$ hypertag search "your important text query" --path --score --top_k=10
Imprima nomes de arquivos de imagem classificados por pontuação correspondente. O desempenho se beneficia muito com a execução do daemon HyperTag.
Atalho: $ hypertag si
Texto para imagem: $ hypertag search_image "your image content description" --path --score --top_k=10
Imagem para imagem: $ hypertag search_image "path/to/image.jpg" --path --score --top_k=10
Inicie o processo daemon com funcionalidade tripla:
HyperTagFS
para alterações do usuárioSearch Images
ou Search Texts
: interpreta o nome como consulta de pesquisa semântica (adicione top_k = 42 para limitar o tamanho do resultado) e o preenche automaticamente com resultados $ hypertag daemon
$ hypertag tags filename1 filename2
$ hypertag metatags tag1 tag2
$ hypertag show
Nomes impressos: $ hypertag show files
Imprimir caminhos: $ hypertag show files --path
Visualize a hierarquia do gráfico metatag (salvo na raiz do HyperTagFS).
$ hypertag graph
Especifique o algoritmo de layout (padrão: fruchterman_reingold):
$ hypertag graph --layout=kamada_kawai
Gere representação baseada no sistema de arquivos de seus arquivos e tags usando links e diretórios simbólicos.
$ hypertag mount
Os diretórios adicionados à lista de importação automática serão monitorados pelo daemon em busca de novos arquivos ou alterações.
$ hypertag add_auto_import_dir path/to/directory
O padrão é o diretório inicial do usuário.
$ hypertag set_hypertagfs_dir path/to/directory
pyproject.toml
)~/.config/hypertag/hypertag.db
)~/.config/hypertag/web_pages
para sites, outros em ~/.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
Qual é o sentido da existência do HyperTag?
O HyperTag oferece muitos recursos exclusivos, como importação, pesquisa semântica, gráficos e funções de correspondência difusa que o tornam muito conveniente de usar. Ao mesmo tempo, a base de código do HyperTag permanece relativamente pequena em <2.000 LOC em comparação com projetos semelhantes como TMSU (> 10.000 LOC em Go) e SuperTag (> 25.000 LOC em Rust), tornando-o fácil de hackear.
Alternativas de pesquisa semântica