AIパーソナル・ラーニング
と実践的なガイダンス
TRAE

OneFileLLM: 複数のデータソースを単一のテキストファイルに統合

はじめに

OneFileLLMは、複数のデータソースを単一のテキストファイルに統合し、大規模言語モデル(LLM)に簡単に入力できるように設計されたオープンソースのコマンドラインツールです。GitHubリポジトリ、ArXiv論文、YouTube動画トランスクリプト、ウェブコンテンツ、Sci-Hub論文、ローカルファイルの処理をサポートし、構造化テキストを自動的に生成してクリップボードにコピーする。開発者のジム・マクミランは、LLMプロンプトの作成を簡素化し、データを手作業で整理する退屈な作業を減らすためにこのツールを設計した。Pythonで開発されたこのツールは、複数のファイル形式、テキストの前処理、XMLのラッピングをサポートしており、開発者、研究者、コンテンツ作成者に適している。インストールが簡単で、柔軟な設定ができ、コマンドラインからもウェブインターフェースからも操作できる。

OneFileLLM:整合多种数据源为单一文本文件-1


 

機能一覧

  • 入力タイプの自動検出(GitHubリポジトリ、YouTubeリンク、ArXiv論文、ローカルファイルなど)。
  • GitHubリポジトリ、Pull Requests、Issuesを1つのテキストにまとめる処理をサポート。
  • ArXivとSci-Hubの論文のPDFコンテンツを抽出し、テキストに変換します。
  • YouTubeの動画トランスクリプトを入手
  • ウェブコンテンツをクロールし、指定された深さのクロールリンクをサポートする。
  • 以下のような幅広いファイル形式に対応。 .pyそして.ipynbそして.txtそして.mdそして.pdfそして.csv その他
  • ストップワードの除去、句読点の除去、小文字への変換など、テキストの前処理を行います。
  • ファイルとディレクトリの除外、自動生成ファイルのフィルタリング(例 *.pb.go)またはテスト・カタログ。
  • LLMのコンテキスト管理を最適化するために、圧縮テキストと非圧縮テキストのトークン数を報告する。
  • LLMの処理効率を高めるため、出力テキストはXML形式でカプセル化される。
  • 非圧縮テキストを自動的にクリップボードにコピーし、LLMプラットフォームに簡単にペーストできる。
  • URLやパスの入力を簡略化するためのFlaskウェブインターフェースを提供します。

 

ヘルプの使用

設置プロセス

OneFileLLMはPython環境と関連する依存関係を必要とします。詳しいインストール手順は以下の通りです:

  1. クローン倉庫
    ターミナルで以下のコマンドを実行し、OneFileLLM リポジトリをクローンします:

    git clone https://github.com/jimmc414/onefilellm.git
    cd onefilellm
    
  2. 仮想環境の構築(おすすめ)
    依存関係の衝突を避けるために、仮想環境を作成することをお勧めします:

    python -m venv .venv
    source .venv/bin/activate  # Windows 使用 .venv\Scripts\activate
    
  3. 依存関係のインストール
    取り付け requirements.txt にリストされている依存関係は

    pip install -U -r requirements.txt
    

    依存関係には以下が含まれる。 PyPDF2(PDF処理)、BeautifulSoup(ウェブクローラー)、tiktoken(トークン数)、pyperclip(クリップボード操作)、youtube-transcript-api(YouTube書き起こし)など。

  4. GitHub アクセストークンの設定(オプション)
    プライベートなGitHubリポジトリにアクセスするには、個人用のアクセストークンを設定する必要があります:

    • GitHub にログインし、[設定] > [開発者設定] > [Personal Access Token] を開きます。
    • 新しいトークンを生成するには repo(個人倉庫)または public_repo(オープン倉庫)能力。
    • トークンを環境変数に設定する:
      export GITHUB_TOKEN=<your-token>  # Windows 使用 set GITHUB_TOKEN=<your-token>
      
  5. インストールの確認
    以下のコマンドを実行して、インストールが成功したかどうかを確認する:

    python onefilellm.py --help
    

    ヘルプメッセージが表示された場合、インストールは正しく行われています。

走行モード

OneFileLLMは、コマンドラインとウェブインターフェースの両方をサポートしています:

  • コマンドラインモード
    メインスクリプトを実行し、URLまたはパスを手動で入力する:

    python onefilellm.py
    

    またはコマンドラインでURL/パスを直接指定する:

    python onefilellm.py https://github.com/jimmc414/onefilellm
    
  • ウェブ・インターフェース・モード
    FlaskのWebインターフェイスを実行します:

    python onefilellm.py --web
    

    ブラウザを開き、次のサイトにアクセスする。 http://localhost:5000URLまたはパスを入力し、"Process "をクリックすると出力される。

主な機能

OneFileLLMの核心は、複数のデータソースを1つのテキストに統合し、次のように出力することです。 uncompressed_output.txt(非圧縮)、compressed_output.txt(圧縮)と processed_urls.txt(URLのリストをクロールする)。主な機能の使い方は以下の通り:

  • GitHubリポジトリの処理
    リポジトリのURLを入力する(例 https://github.com/jimmc414/onefilellm)、ツールはサポートされているファイルタイプを再帰的に取得する(例えば .pyそして.md)に統合された。

    python onefilellm.py
    Enter URL or path: https://github.com/jimmc414/onefilellm
    

    出力ファイルには、以下のXMLラッパー形式でリポジトリファイルの内容が含まれます:

    <source type="github_repository">
    <content>
    [文件内容]
    </content>
    </source>
    

    テキストは自動的にクリップボードにコピーされます。

  • GitHub プルリクエストや課題の処理
    プルリクエストを入力する(例 https://github.com/dear-github/dear-github/pull/102)、またはissue URL (例えば https://github.com/isaacs/github/issues/1191)、差分の詳細、コメント、リポジトリのコンテンツ全体を抽出します。
    サンプル出力には、コードの変更点、コメント、関連ドキュメントが含まれています:

    <source type="github_pull_request">
    <content>
    [差异详情和评论]
    </content>
    </source>
    
  • ArXivまたはSci-Hubの論文を抽出する
    ArXivのURLを入力する(例 https://arxiv.org/abs/2401.14295またはSci-Hub DOI/PMID(例. 10.1053/j.ajkd.2017.08.002 もしかしたら 29203127)、PDFをテキストに変換するツールです。

    Enter URL or path: https://arxiv.org/abs/2401.14295
    

    出力はXMLでラップされた論文のテキストである:

    <source type="arxiv_paper">
    <content>
    [论文内容]
    </content>
    </source>
    
  • YouTubeの記録を入手する
    YouTube動画のURLを入力する(例 https://www.youtube.com/watch?v=KZ_NlnmPQYk)、転写されたテキストを抽出するツール。

    Enter URL or path: https://www.youtube.com/watch?v=KZ_NlnmPQYk
    

    出力はこうだ:

    <source type="youtube_transcript">
    <content>
    [转录内容]
    </content>
    </source>
    
  • ウェブクローラー
    ウェブページのURLを入力する(例 https://llm.datasette.io/en/stable/)、ツールはページをクロールし、ディープリンクを指定する(デフォルト) max_depth=2).

    Enter URL or path: https://llm.datasette.io/en/stable/
    

    出力は分割されたウェブテキストで、次のようにカプセル化される:

    <source type="web_documentation">
    <content>
    [网页内容]
    </content>
    </source>
    
  • ローカルのファイルやディレクトリを扱う
    ローカルファイルのパスを入力する(例 C:\documents\report.pdf)またはカタログ(例えば C:\projects\research)、ツールはディレクトリからコンテンツを抽出したり、サポートされているファイルタイプを統合します。

    Enter URL or path: C:\projects\research
    

    出力はXMLでラップされたカタログの内容である。

注目の機能操作

  • XML出力カプセル化
    すべての出力はXML形式であり、明確な構造を提供し、LLMの処理効率を向上させる。フォーマットは以下の通り:

    <source type="[source_type]">
    <content>
    [内容]
    </content>
    </source>
    

    この中には source_type を通して github_repositoryそしてarxiv_paper その他

  • ファイルとディレクトリの除外
    特定のファイルの除外をサポート(例 *.pb.go)やカタログ(例えば tests)修正 onefilellm.py 正鵠を得る excluded_patterns 歌で応える EXCLUDED_DIRS リスト

    excluded_patterns = ['*.pb.go', '*_test.go']
    EXCLUDED_DIRS = ['tests', 'mocks']
    

    これにより、余計なコンテンツが減り、トークンの使用量が最適化される。

  • トークン数
    利用する tiktoken 圧縮テキストと非圧縮テキストのトークン数を計算し、コンソールに表示する:

    Uncompressed token count: 1234
    Compressed token count: 567
    

    LLMのコンテキストウィンドウにテキストが収まるようにします。

  • テキスト前処理
    このツールは、ストップワード、句読点を自動的に削除し、小文字に変換し、圧縮された出力を生成します。ユーザーは preprocess_text 関数は処理ロジックをカスタマイズする。
  • クリップボードの統合
    非圧縮出力は自動的にクリップボードにコピーされ、LLMプラットフォーム(ChatGPT、Claudeなど)に直接ペーストされます。
  • ウェブインタフェース
    Flaskのインターフェイスは、ユーザーがURLやパスを入力し、出力ファイルをダウンロードしたり、テキストをコピーしたりする操作を簡素化します。技術者でないユーザーにも適しています。

カスタム設定

  • 文書タイプ
    修正 allowed_extensions リストで、サポートされているファイルタイプを追加または削除します:

    allowed_extensions = ['.py', '.txt', '.md', '.ipynb', '.csv']
    
  • ウェブ・クロールの深さ
    修正 max_depth パラメータのデフォルト値は2である:

    max_depth = 2
    
  • Sci-Hubドメイン名
    Sci-Hubドメイン名が利用できない場合は、次のように変更してください。 onefilellm.py のSci-Hub URLは

ほら

  • 安定したインターネット接続を確保すること。YouTubeの書き起こしやSci-Hubへのアクセスは外部APIに依存しています。
  • 大規模なリポジトリやウェブページは、より大きな出力を生成する可能性があります。トークン数を確認し、除外ルールを調整することをお勧めします。
  • Sci-Hubへのアクセスは、地域の制限によりドメインの変更が必要になる場合があります。
  • ファイル形式によっては(暗号化されたPDFなど)正しく処理されない場合があります。

 

アプリケーションシナリオ

  1. コード・レビュー
    開発者は、GitHubリポジトリやプルリクエストのURLを入力し、コードとコメントを含むテキストを生成し、コードの品質や最適化の提案を分析するためにLLMを入力する。
  2. 論文の概要
    研究者はArXivやSci-Hubの論文のURLを入力し、テキストを抽出し、LLMを入力してアブストラクトを作成したり、研究質問に答えたりする。
  3. ビデオ・コンテンツの照合
    コンテンツ制作者は、YouTube動画のURLを入力して書き起こしテキストを取得したり、LLMを入力してキーポイントを抽出したり、スクリプトを生成したりする。
  4. ドキュメントの統合
    テクニカルライターは、ウェブページやローカルディレクトリへのパスを入力し、文書コンテンツを統合し、LLMを入力してリライトしたりレポートを作成したりする。

 

品質保証

  1. OneFileLLMはどのようなファイル形式に対応していますか?
    アジュバント .pyそして.ipynbそして.txtそして.mdそして.pdfそして.csv などを変更することができる。 allowed_extensions カスタマイズ。
  2. プライベート GitHub リポジトリにアクセスするにはどうすればよいですか?
    GitHubパーソナルアクセストークンを環境変数に設定する GITHUB_TOKEN必要 repo 許可。
  3. 出力テキストサイズを小さくするには?
    修正 excluded_patterns 歌で応える EXCLUDED_DIRS 余計なファイルを除外し、調整する max_depth ウェブクローリングの深さを制限する。
  4. XML出力の利点は何ですか?
    XMLは明確に構造化されており、コンテンツのソースとタイプを表示し、複雑な入力を理解し処理するLLMの能力を向上させる。
  5. Sci-Hubで論文をダウンロードできない場合はどうすればよいですか?
    ネットワーク接続をチェックし、DOI/PMIDが正しいことを確認する。 onefilellm.py のSci-Hubドメイン名は
無断転載を禁じます:チーフAIシェアリングサークル " OneFileLLM: 複数のデータソースを単一のテキストファイルに統合
ja日本語