Banco de dados open source de embeddings para apps de IA, que armazena documentos e vetores para buscas semânticas, híbridas e de texto completo.
run-llama/semtools
Ferramentas de linha de comando para converter documentos em Markdown, fazer buscas semânticas locais por palavras-chave e consultar arquivos com um agente de IA.
- Estrelas
- 1,878
- Forks
- 153
- Issues abertas
- 6
- Último commit
- há 7 meses
O que é?
SemTools é um toolkit de linha de comando em Rust com quatro subcomandos: parse, search, ask e workspace. O comando parse converte documentos como PDF e DOCX em Markdown, usando a API do LlamaParse por padrão. O comando search faz buscas semânticas locais por palavras-chave com embeddings multilíngues do model2vec, retornando as linhas correspondentes com o contexto ao redor e um limite de distância configurável.
O comando ask executa um agente de IA que usa ferramentas de busca e leitura para responder a perguntas sobre um conjunto de arquivos. Por padrão, ele usa modelos da OpenAI e pode ser configurado para qualquer endpoint compatível com OpenAI por meio do arquivo de configuração. O comando workspace armazena os embeddings calculados em ~/.semtools/workspaces/, para que buscas repetidas em grandes coleções reutilizem os resultados em cache e arquivos alterados tenham seus embeddings recalculados automaticamente.
Todas as ferramentas seguem as convenções Unix: aceitam entrada via stdin e escrevem em stdout, podendo ser encadeadas com grep, xargs e find. Os recursos parse e ask exigem chaves de API; search e workspace funcionam offline.
Recursos principais
- 01Converte PDF, DOCX, PPTX e outros documentos em Markdown usando o LlamaParse.
- 02Faz buscas semânticas locais com embeddings multilíngues do model2vec e contexto por linha.
- 03Permite que um agente de IA responda a perguntas sobre arquivos, com suporte a qualquer API compatível com OpenAI.
- 04Armazena embeddings em workspaces e recalcula os embeddings dos arquivos quando eles são alterados.
- 05Funciona com stdin e stdout para uso em pipelines de shell.
Casos de uso
- Buscar conceitos, em vez de palavras-chave exatas, em uma pasta de textos ou relatórios convertidos.
- Converter PDFs em Markdown como etapa de pré-processamento antes de fazer buscas ou usar um LLM.
- Fazer perguntas pelo terminal sobre um conjunto de artigos de pesquisa ou anotações.
- Encaminhar conteúdo de documentos convertidos a agentes de programação por meio de pipelines.
Início rápido
- 1
Instale semtools via npm
npm i -g @llamaindex/semtools - 2
Execute uma busca local por palavras-chave em arquivos de texto
semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 - 3
Interprete documentos e converta-os para Markdown (requer uma chave de API do LlamaIndex Cloud)
semtools parse my_dir/*.pdf
Antes de usar
- Os comandos parse e ask precisam de chaves de API externas: LlamaParse para a interpretação e OpenAI para ask.
- Ao instalar via npm, os binários Rust são compilados localmente se não houver um binário pré-compilado disponível; portanto, pode ser necessário ter Rust e Cargo.
Tópicos
Perguntas frequentes
- O que é semtools?
- Ferramentas de linha de comando para converter documentos em Markdown, fazer buscas semânticas locais por palavras-chave e consultar arquivos com um agente de IA. SemTools é um toolkit de linha de comando em Rust com quatro subcomandos: parse, search, ask e workspace. O comando parse converte documentos como PDF e DOCX em Markdown, usando a API do LlamaParse por padrão. O comando search faz buscas semânticas locais por palavras-chave com embeddings multilíngues do model2vec, retornando as linhas correspondentes com o contexto ao redor e um limite de distância configurável.
- semtools é gratuito? Qual é a licença?
- semtools é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- semtools ainda é mantido?
- Sem commits há mais de 6 meses. O último commit de semtools foi em 11 de mar. de 2026.
- Para que posso usar semtools?
- Buscar conceitos, em vez de palavras-chave exatas, em uma pasta de textos ou relatórios convertidos. Converter PDFs em Markdown como etapa de pré-processamento antes de fazer buscas ou usar um LLM. Fazer perguntas pelo terminal sobre um conjunto de artigos de pesquisa ou anotações. Encaminhar conteúdo de documentos convertidos a agentes de programação por meio de pipelines.
- Como instalar semtools?
- Instale semtools via npm: npm i -g @llamaindex/semtools Execute uma busca local por palavras-chave em arquivos de texto: semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 Interprete documentos e converta-os para Markdown (requer uma chave de API do LlamaIndex Cloud): semtools parse my_dir/*.pdf
- Onde consigo semtools?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/run-llama/semtools
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Mecanismo de busca local com IA que indexa automaticamente qualquer pasta (código, documentos, logs, PDFs) e oferece a API do Elasticsearch, feito em Rust.
Servidor de inferência autogerenciado que oferece modelos de embeddings, reranking, OCR, extração, segurança e LLM em um único cluster por uma API compatível com OpenAI.
Biblioteca Python e interface web que convertem PDFs, DOCX, PPTX, XLSX, imagens e URLs em Markdown, JSON, CSV ou HTML, com OCR e extração de campos estruturados.
Proxy de CLI que filtra e compacta a saída de comandos do shell antes que ela chegue ao contexto de um agente de programação com IA, reduzindo o uso de tokens.
Um gerador de parsers incremental e uma biblioteca de parsing que cria árvores de sintaxe concreta e as atualiza conforme os arquivos-fonte são editados.