Repolode
run-llama

run-llama/semtools

Herramientas de línea de comandos para convertir documentos a Markdown, buscar palabras clave semánticamente en local y hacer preguntas sobre archivos con un agente de IA.

Estrellas
1,878
Forks
153
Issues abiertos
6
Último commit
hace 7 meses

¿Qué es?

SemTools es un conjunto de herramientas de línea de comandos escrito en Rust con cuatro subcomandos: parse, search, ask y workspace. El comando parse convierte documentos como PDF y DOCX a Markdown; de forma predeterminada, usa la API de LlamaParse. El comando search realiza búsquedas semánticas de palabras clave completamente en local con embeddings multilingües de model2vec y devuelve las líneas coincidentes junto con el contexto circundante, aplicando un umbral de distancia configurable.

El comando ask ejecuta un agente de IA que usa herramientas de búsqueda y lectura para responder preguntas sobre un conjunto de archivos. De forma predeterminada, usa modelos de OpenAI, pero puede configurarse para utilizar cualquier endpoint compatible con OpenAI mediante el archivo de configuración. El comando workspace almacena los embeddings calculados en ~/.semtools/workspaces/, de modo que las búsquedas repetidas en colecciones grandes reutilizan los resultados en caché y los archivos modificados se procesan de nuevo automáticamente.

Todas las herramientas siguen las convenciones de Unix: aceptan datos desde stdin y escriben en stdout, por lo que pueden encadenarse con grep, xargs y find. Las funciones parse y ask requieren claves de API, mientras que search y workspace funcionan sin conexión.

Funciones clave

  • 01Convierte PDF, DOCX, PPTX y otros documentos a Markdown mediante LlamaParse.
  • 02Realiza búsquedas semánticas en local con embeddings multilingües de model2vec y contexto por línea.
  • 03Permite que un agente de IA responda preguntas sobre archivos y admite cualquier API compatible con OpenAI.
  • 04Almacena en caché los embeddings en workspaces y vuelve a procesar los archivos cuando cambian.
  • 05Admite stdin y stdout para integrarse en pipelines de shell.

Casos de uso

  • Buscar conceptos, en lugar de palabras clave exactas, en una carpeta de textos o informes convertidos.
  • Convertir PDF a Markdown como paso de preprocesamiento antes de una búsqueda o de usar un LLM.
  • Hacer preguntas desde la terminal sobre un conjunto de artículos de investigación o notas.
  • Pasar el contenido de documentos procesados a agentes de programación mediante pipelines.

Inicio rápido

  1. 1

    Instala semtools con npm

    npm i -g @llamaindex/semtools
  2. 2

    Realiza una búsqueda local por palabras clave en archivos de texto

    semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5
  3. 3

    Analiza documentos y conviértelos a Markdown (requiere una clave de API de LlamaIndex Cloud)

    semtools parse my_dir/*.pdf

Antes de usarlo

  • Los comandos parse y ask necesitan claves de API externas: LlamaParse para el análisis y OpenAI para ask.
  • Al instalar con npm, se compilan los binarios de Rust localmente si no hay un binario precompilado disponible, por lo que puede que necesites Rust y Cargo.

Temas

Preguntas frecuentes

¿Qué es semtools?
Herramientas de línea de comandos para convertir documentos a Markdown, buscar palabras clave semánticamente en local y hacer preguntas sobre archivos con un agente de IA. SemTools es un conjunto de herramientas de línea de comandos escrito en Rust con cuatro subcomandos: parse, search, ask y workspace. El comando parse convierte documentos como PDF y DOCX a Markdown; de forma predeterminada, usa la API de LlamaParse. El comando search realiza búsquedas semánticas de palabras clave completamente en local con embeddings multilingües de model2vec y devuelve las líneas coincidentes junto con el contexto circundante, aplicando un umbral de distancia configurable.
¿semtools es gratuito? ¿Qué licencia tiene?
semtools es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿semtools sigue mantenido?
Sin commits en más de 6 meses. El último commit de semtools fue el 11 mar 2026.
¿Para qué puedo usar semtools?
Buscar conceptos, en lugar de palabras clave exactas, en una carpeta de textos o informes convertidos. Convertir PDF a Markdown como paso de preprocesamiento antes de una búsqueda o de usar un LLM. Hacer preguntas desde la terminal sobre un conjunto de artículos de investigación o notas. Pasar el contenido de documentos procesados a agentes de programación mediante pipelines.
¿Cómo se instala semtools?
Instala semtools con npm: npm i -g @llamaindex/semtools Realiza una búsqueda local por palabras clave en archivos de texto: semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 Analiza documentos y conviértelos a Markdown (requiere una clave de API de LlamaIndex Cloud): semtools parse my_dir/*.pdf
¿Dónde consigo semtools?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/run-llama/semtools

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados