Repolode
run-llama

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. 1

    Instale semtools via npm

    npm i -g @llamaindex/semtools
  2. 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. 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