AI Personal Learning
und praktische Anleitung
TRAE

OneFileLLM: Integration mehrerer Datenquellen in eine einzige Textdatei

Allgemeine Einführung

OneFileLLM ist ein Open-Source-Befehlszeilen-Tool zur Konsolidierung mehrerer Datenquellen in einer einzigen Textdatei zur einfachen Eingabe in Large Language Models (LLMs). Es unterstützt die Verarbeitung von GitHub-Repositories, ArXiv-Papieren, YouTube-Videotranskriptionen, Webinhalten, Sci-Hub-Papieren und lokalen Dateien, wobei automatisch strukturierter Text erzeugt und in die Zwischenablage kopiert wird. Der Entwickler Jim McMillan hat das Tool entwickelt, um die Erstellung von LLM-Prompts zu vereinfachen und die mühsame Aufgabe der manuellen Organisation von Daten zu reduzieren. Das in Python entwickelte Tool unterstützt mehrere Dateiformate, Textvorverarbeitung und XML-Wrapping, so dass es sich für Entwickler, Forscher und Inhaltsersteller eignet. Es ist einfach zu installieren, flexibel zu konfigurieren und kann von der Kommandozeile oder über eine Webschnittstelle bedient werden.

OneFileLLM: Integration mehrerer Datenquellen in eine einzige Textdatei-1


 

Funktionsliste

  • Automatische Erkennung von Eingabearten (z. B. GitHub-Repositories, YouTube-Links, ArXiv-Papers, lokale Dateien usw.).
  • Unterstützung für die Verarbeitung von GitHub-Repositories, Pull Requests und Issues in einem einzigen Text.
  • Extrahieren und Konvertieren von PDF-Inhalten aus ArXiv- und Sci-Hub-Papers in Text.
  • Erhalten Sie YouTube-Videotranskripte.
  • Crawlen von Webinhalten, Unterstützung für eine bestimmte Tiefe der Crawling-Links.
  • Verarbeitet eine breite Palette von Dateiformaten, darunter .pyund.ipynbund.txtund.mdund.pdfund.csv usw.
  • Ermöglicht die Vorverarbeitung von Text, z. B. das Entfernen von Stoppwörtern, Interpunktion und die Umwandlung in Kleinbuchstaben.
  • Unterstützung für den Ausschluss von Dateien und Verzeichnissen, Filterung von automatisch erzeugten Dateien (z. B. *.pb.go) oder Testkatalog.
  • Geben Sie die Anzahl der Token für komprimierten und unkomprimierten Text an, um die LLM-Kontextverwaltung zu optimieren.
  • Der Ausgabetext ist im XML-Format gekapselt, um die Effizienz der LLM-Verarbeitung zu verbessern.
  • Kopiert unkomprimierten Text automatisch in die Zwischenablage, um ihn einfach in die LLM-Plattform einzufügen.
  • Stellt eine Flask-Webschnittstelle zur Verfügung, um die Eingabe von URLs oder Pfaden zu vereinfachen.

 

Hilfe verwenden

Einbauverfahren

OneFileLLM erfordert eine Python-Umgebung und entsprechende Abhängigkeiten. Hier sind die detaillierten Installationsschritte:

  1. Klon-Lager
    Führen Sie den folgenden Befehl in einem Terminal aus, um das OneFileLLM-Repository zu klonen:

    git clone https://github.com/jimmc414/onefilellm.git
    cd onefilellm
    
  2. Erstellen einer virtuellen Umgebung(Empfohlen)
    Um Abhängigkeitskonflikte zu vermeiden, empfiehlt es sich, eine virtuelle Umgebung zu erstellen:

    python -m venv .venv
    source .venv/bin/activate  # Windows 使用 .venv\Scripts\activate
    
  3. Installation von Abhängigkeiten
    Montage requirements.txt Die Abhängigkeiten, die in der Datei

    pip install -U -r requirements.txt
    

    Zu den Abhängigkeiten gehören PyPDF2(PDF-Verarbeitung),BeautifulSoup(Web-Crawler),tiktoken(Anzahl der Token),pyperclip(Operation Zwischenablage),youtube-transcript-api(YouTube-Transkription), usw.

  4. Konfigurieren von GitHub-Zugangs-Tokens(fakultativ)
    Um auf private GitHub-Repositories zuzugreifen, müssen Sie ein persönliches Zugriffstoken einrichten:

    • Melden Sie sich bei GitHub an und gehen Sie zu Einstellungen > Entwicklereinstellungen > Persönliches Zugriffstoken.
    • Um ein neues Token zu erzeugen, wählen Sie repo(privates Lager) oder public_repo(Open Warehouse) Kompetenz.
    • Setzen Sie das Token als Umgebungsvariable:
      export GITHUB_TOKEN=<your-token>  # Windows 使用 set GITHUB_TOKEN=<your-token>
      
  5. Überprüfen der Installation
    Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Installation erfolgreich war:

    python onefilellm.py --help
    

    Wenn eine Hilfemeldung angezeigt wird, ist die Installation korrekt.

Betriebsmodus

OneFileLLM unterstützt sowohl die Befehlszeile als auch die Webschnittstelle:

  • Kommandozeilenmodus
    Führen Sie das Hauptskript aus und geben Sie die URL oder den Pfad manuell ein:

    python onefilellm.py
    

    oder geben Sie die URL/den Pfad direkt in der Befehlszeile an:

    python onefilellm.py https://github.com/jimmc414/onefilellm
    
  • Webinterface-Modus
    Starten Sie die Flask-Weboberfläche:

    python onefilellm.py --web
    

    Öffnen Sie Ihren Browser und besuchen Sie http://localhost:5000Geben Sie die URL oder den Pfad ein und klicken Sie auf "Verarbeiten", um die Ausgabe zu erhalten.

Hauptfunktionen

Das Herzstück von OneFileLLM ist die Integration mehrerer Datenquellen in einen einzigen Text, der als uncompressed_output.txt(unkomprimiert),compressed_output.txt(komprimiert) und processed_urls.txt(Crawling einer Liste von URLs). Im Folgenden wird beschrieben, wie die wichtigsten Funktionen verwendet werden:

  • Verarbeitung von GitHub-Repositories
    Geben Sie die Repository-URL ein (z. B. https://github.com/jimmc414/onefilellm), ermittelt das Tool rekursiv die unterstützten Dateitypen (z. B. .pyund.md), zusammengefasst in einem einzigen Text.
    Beispiel:

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

    Die Ausgabedatei enthält den Inhalt der Repository-Datei im folgenden XML-Wrapper-Format:

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

    Der Text wird automatisch in die Zwischenablage kopiert.

  • Umgang mit GitHub Pull Requests oder Issues
    Geben Sie einen Pull-Request ein (z.B. https://github.com/dear-github/dear-github/pull/102) oder die URL der Ausgabe (z. B. https://github.com/isaacs/github/issues/1191), extrahiert das Tool Diff-Details, Kommentare und den gesamten Repository-Inhalt.
    Die Beispielausgabe enthält Code-Änderungen, Kommentare und die zugehörige Dokumentation in Form von Kapseln:

    <source type="github_pull_request">
    <content>
    [差异详情和评论]
    </content>
    </source>
    
  • ArXiv- oder Sci-Hub-Veröffentlichungen extrahieren
    Geben Sie die ArXiv-URL ein (z. B. https://arxiv.org/abs/2401.14295) oder Sci-Hub DOI/PMID (z.B. 10.1053/j.ajkd.2017.08.002 vielleicht 29203127), konvertiert das Tool PDF in Text.
    Beispiel:

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

    Die Ausgabe ist der in XML verpackte Text des Papiers:

    <source type="arxiv_paper">
    <content>
    [论文内容]
    </content>
    </source>
    
  • Die YouTube-Mitschrift abrufen
    Geben Sie die URL des YouTube-Videos ein (z. B. https://www.youtube.com/watch?v=KZ_NlnmPQYk), Werkzeug zum Extrahieren von transkribiertem Text.
    Beispiel:

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

    Die Ausgabe ist:

    <source type="youtube_transcript">
    <content>
    [转录内容]
    </content>
    </source>
    
  • Web-Crawler
    Geben Sie die URL der Webseite ein (z. B. https://llm.datasette.io/en/stable/), crawlt das Tool die Seite und gibt Deep Links an (Standard) max_depth=2).
    Beispiel:

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

    Die Ausgabe ist segmentierter Webtext, gekapselt als:

    <source type="web_documentation">
    <content>
    [网页内容]
    </content>
    </source>
    
  • Umgang mit lokalen Dateien oder Verzeichnissen
    Geben Sie den lokalen Dateipfad ein (z. B. C:\documents\report.pdf) oder Katalog (z.B. C:\projects\research), extrahiert das Tool Inhalte oder integriert unterstützte Dateitypen aus dem Verzeichnis.
    Beispiel:

    Enter URL or path: C:\projects\research
    

    Die Ausgabe ist der in XML verpackte Inhalt des Katalogs.

Featured Function Bedienung

  • XML-Ausgabekapselung
    Alle Ausgaben liegen im XML-Format vor, das eine klare Struktur bietet und die Effizienz der LLM-Verarbeitung verbessert. Das Format ist wie folgt:

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

    darunter auch source_type auch durch github_repositoryundarxiv_paper usw.

  • Ausschluss von Dateien und Verzeichnissen
    Unterstützung für den Ausschluss bestimmter Dateien (z.B. *.pb.go) und Kataloge (z. B. tests) Änderung onefilellm.py den Nagel auf den Kopf treffen excluded_patterns im Gesang antworten EXCLUDED_DIRS Liste:

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

    Dies reduziert überflüssige Inhalte und optimiert die Verwendung von Token.

  • Token-Anzahl
    ausnutzen tiktoken Berechnet die Anzahl der Token für komprimierten und unkomprimierten Text und zeigt sie auf der Konsole an:

    Uncompressed token count: 1234
    Compressed token count: 567
    

    Hilft dem Benutzer sicherzustellen, dass der Text in das LLM-Kontextfenster passt.

  • Vorverarbeitung von Text
    Das Tool entfernt automatisch Stoppwörter und Interpunktion, konvertiert in Kleinbuchstaben und erzeugt eine komprimierte Ausgabe. Benutzer können ändern preprocess_text Funktion passt die Verarbeitungslogik an.
  • Integration der Zwischenablage
    Die unkomprimierte Ausgabe wird automatisch in die Zwischenablage kopiert und direkt in LLM-Plattformen (z. B. ChatGPT, Claude) eingefügt.
  • Webschnittstelle
    Die Flask-Schnittstelle vereinfacht die Arbeit, da der Benutzer eine URL oder einen Pfad eingibt und die Ausgabedatei herunterlädt oder den Text kopiert. Geeignet für nicht-technische Benutzer.

Benutzerdefinierte Konfiguration

  • Art des Dokuments
    Änderungen allowed_extensions Liste, indem Sie unterstützte Dateitypen hinzufügen oder entfernen:

    allowed_extensions = ['.py', '.txt', '.md', '.ipynb', '.csv']
    
  • Web Crawl-Tiefe
    Änderungen max_depth ist der Standardwert 2:

    max_depth = 2
    
  • Sci-Hub Domänenname
    Wenn der Sci-Hub-Domänenname nicht verfügbar ist, ändern Sie die onefilellm.py Die Sci-Hub-URL in der

caveat

  • Sorgen Sie für eine stabile Internetverbindung, denn die YouTube-Transkription und der Sci-Hub-Zugang basieren auf externen APIs.
  • Große Repositories oder Webseiten können eine größere Ausgabe erzeugen. Es wird empfohlen, die Anzahl der Token zu überprüfen und die Ausschlussregeln anzupassen.
  • Der Zugang zu Sci-Hub kann aufgrund regionaler Beschränkungen einen Domänenwechsel erfordern.
  • Einige Dateiformate (z. B. verschlüsselte PDF-Dateien) werden möglicherweise nicht korrekt verarbeitet.

 

Anwendungsszenario

  1. Code-Überprüfung
    Entwickler geben GitHub-Repositories oder Pull-Request-URLs ein, generieren Text mit Code und Kommentaren und geben LLMs ein, um die Codequalität oder Optimierungsvorschläge zu analysieren.
  2. Zusammenfassung der Dissertation
    Forscher geben die URL einer ArXiv- oder Sci-Hub-Veröffentlichung ein, extrahieren den Text und geben den LLM ein, um eine Zusammenfassung zu erstellen oder eine Forschungsfrage zu beantworten.
  3. Zusammenstellung von Videoinhalten
    Inhaltsersteller geben YouTube-Video-URLs ein, um transkribierten Text zu erhalten, geben LLMs ein, um Schlüsselpunkte zu extrahieren oder Skripte zu erstellen.
  4. Integration von Dokumenten
    Technische Redakteure geben Pfade zu Webseiten oder lokalen Verzeichnissen ein, integrieren Dokumentinhalte und geben LLMs ein, um Berichte umzuschreiben oder zu erstellen.

 

QA

  1. Welche Dateiformate werden von OneFileLLM unterstützt?
    etw. unterstützen .pyund.ipynbund.txtund.mdund.pdfund.csv usw., können durch Änderung der allowed_extensions Personalisierung.
  2. Wie kann ich auf private GitHub-Repositories zugreifen?
    Festlegen des persönlichen GitHub-Zugangs-Tokens als Umgebungsvariable GITHUB_TOKENerfordern repo Erlaubt.
  3. Wie lässt sich die Größe des Ausgabetextes verringern?
    Änderungen excluded_patterns im Gesang antworten EXCLUDED_DIRS Ausschluss fremder Dateien, Anpassung max_depth Begrenzen Sie die Crawling-Tiefe des Webs.
  4. Was sind die Vorteile der XML-Ausgabe?
    XML ist klar strukturiert, kennzeichnet die Quelle und den Typ des Inhalts und verbessert die Fähigkeit des LLM, komplexe Eingaben zu verstehen und zu verarbeiten.
  5. Was soll ich tun, wenn ich mein Sci-Hub-Paper nicht herunterladen kann?
    Überprüfen Sie die Netzwerkverbindung, um sicherzustellen, dass die DOI/PMID korrekt ist, oder aktualisieren Sie die onefilellm.py Der Sci-Hub-Domänenname in der
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " OneFileLLM: Integration mehrerer Datenquellen in eine einzige Textdatei
de_DEDeutsch