Repolode
run-llama

run-llama/semtools

文書のMarkdown変換、ローカルの意味検索、AIエージェントによるファイルへの質問に使えるCLIツール。

スター
1,878
フォーク
153
未解決の Issue
6
最終コミット
7 か月前

これは何?

SemToolsは、parse、search、ask、workspaceの4つのサブコマンドを備えたRust製CLIツールキットです。parseコマンドはPDFやDOCXなどの文書をMarkdownに変換し、デフォルトではLlamaParse APIを使用します。searchコマンドは、多言語対応のmodel2vec埋め込みを使って完全にローカルで意味検索を行い、設定可能な距離しきい値に基づいて、一致した行とその前後の文脈を返します。

askコマンドは、searchツールとreadツールを使って、複数のファイルに関する質問に答えるAIエージェントを実行します。デフォルトではOpenAIのモデルを使用しますが、設定ファイルで指定すれば、任意のOpenAI互換エンドポイントを利用できます。workspaceコマンドは計算済みの埋め込みを~/.semtools/workspaces/に保存します。そのため、大量のファイルを繰り返し検索する際に結果を再利用でき、変更されたファイルは自動的に再埋め込みされます。

すべてのツールはUnixの慣習に沿っており、stdinから入力を受け取りstdoutに出力するため、grep、xargs、findと組み合わせて使えます。parseとaskにはAPIキーが必要ですが、searchとworkspaceはオフラインで動作します。

主な機能

  • 01LlamaParseを使って、PDF、DOCX、PPTXなどの文書をMarkdownに変換します。
  • 02多言語対応のmodel2vec埋め込みを使ってローカルで意味検索を行い、行ごとに前後の文脈を返します。
  • 03AIエージェントを使ってファイルに関する質問に回答できます。OpenAI互換APIに対応しています。
  • 04埋め込みをworkspaceにキャッシュし、ファイルの変更時には再埋め込みします。
  • 05stdinとstdoutに対応しており、シェルパイプラインで利用できます。

ユースケース

  • テキストや変換済みレポートのフォルダから、完全一致のキーワードではなく概念をもとに情報を検索する。
  • 検索やLLMでの利用に先立ち、PDFをMarkdownに変換する。
  • ターミナルから、複数の研究論文やメモについて質問する。
  • パイプラインを通じて、解析した文書の内容をコーディングエージェントに渡す。

クイックスタート

  1. 1

    npmでsemtoolsをインストールする

    npm i -g @llamaindex/semtools
  2. 2

    テキストファイルを対象にローカルでキーワード検索を実行する

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

    ドキュメントをMarkdownに解析する(LlamaIndex Cloud APIキーが必要)

    semtools parse my_dir/*.pdf

使う前に知っておきたいこと

  • parseコマンドとaskコマンドには外部APIキーが必要です。解析にはLlamaParse、askにはOpenAIのAPIキーが必要です。
  • npm経由でインストールする際、利用可能なビルド済みバイナリがない場合はRustバイナリがローカルでビルドされるため、RustとCargoが必要になることがあります。

トピック

よくある質問

semtools とは?
文書のMarkdown変換、ローカルの意味検索、AIエージェントによるファイルへの質問に使えるCLIツール。 SemToolsは、parse、search、ask、workspaceの4つのサブコマンドを備えたRust製CLIツールキットです。parseコマンドはPDFやDOCXなどの文書をMarkdownに変換し、デフォルトではLlamaParse APIを使用します。searchコマンドは、多言語対応のmodel2vec埋め込みを使って完全にローカルで意味検索を行い、設定可能な距離しきい値に基づいて、一致した行とその前後の文脈を返します。
semtools は無料で使えますか?ライセンスは?
semtools は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
semtools は今もメンテナンスされていますか?
半年以上コミットなし。semtools の最終コミットは 2026年3月11日 です。
semtools は何に使えますか?
テキストや変換済みレポートのフォルダから、完全一致のキーワードではなく概念をもとに情報を検索する。 検索やLLMでの利用に先立ち、PDFをMarkdownに変換する。 ターミナルから、複数の研究論文やメモについて質問する。 パイプラインを通じて、解析した文書の内容をコーディングエージェントに渡す。
semtools のインストール方法は?
npmでsemtoolsをインストールする: npm i -g @llamaindex/semtools テキストファイルを対象にローカルでキーワード検索を実行する: semtools search "some keywords" *.txt --max-distance 0.3 --n-lines 5 ドキュメントをMarkdownに解析する(LlamaIndex Cloud APIキーが必要): semtools parse my_dir/*.pdf
semtools はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/run-llama/semtools

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト