OneFileLLM: Integración de múltiples fuentes de datos en un único archivo de texto

Introducción general

OneFileLLM es una herramienta de línea de comandos de código abierto diseñada para consolidar múltiples fuentes de datos en un único archivo de texto para facilitar su introducción en grandes modelos lingüísticos (LLM). Admite el procesamiento de repositorios de GitHub, artículos de ArXiv, transcripciones de vídeos de YouTube, contenido web, artículos de Sci-Hub y archivos locales, generando automáticamente texto estructurado y copiándolo en el portapapeles. El desarrollador Jim McMillan diseñó la herramienta para simplificar la creación de indicaciones LLM y reducir la tediosa tarea de organizar manualmente los datos. Desarrollada en Python, la herramienta admite múltiples formatos de archivo, preprocesamiento de texto y envoltura XML, lo que la hace adecuada para desarrolladores, investigadores y creadores de contenidos. Es fácil de instalar, flexible de configurar y puede manejarse desde la línea de comandos o a través de una interfaz web.

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

 

Lista de funciones

  • Detección automática de tipos de entrada (por ejemplo, repositorios de GitHub, enlaces de YouTube, artículos de ArXiv, archivos locales, etc.).
  • Soporte para procesar repositorios GitHub, Pull Requests y Issues en un único texto.
  • Extraiga y convierta en texto el contenido PDF de los artículos de ArXiv y Sci-Hub.
  • Consigue transcripciones de vídeos de YouTube.
  • Rastreo de contenidos web, soporte para la profundidad especificada de rastreo de enlaces.
  • Maneja una amplia gama de formatos de archivo, incluyendo .pyy.ipynby.txty.mdy.pdfy.csv etc.
  • Proporciona preprocesamiento de texto, como eliminación de palabras vacías, puntuación y conversión a minúsculas.
  • Soporte para la exclusión de archivos y directorios, filtrado de archivos autogenerados (p. ej. *.pb.go) o catálogo de pruebas.
  • Informa del número de tokens del texto comprimido y sin comprimir para optimizar la gestión del contexto LLM.
  • El texto de salida se encapsula en formato XML para mejorar la eficacia del procesamiento LLM.
  • Copia automáticamente el texto sin comprimir en el portapapeles para facilitar su pegado en la plataforma LLM.
  • Proporciona una interfaz web Flask para simplificar la introducción de URL o rutas.

 

Utilizar la ayuda

Proceso de instalación

OneFileLLM requiere un entorno Python y dependencias relacionadas. A continuación se detallan los pasos de instalación:

  1. almacén de clones
    Ejecute el siguiente comando en un terminal para clonar el repositorio OneFileLLM:

    git clone https://github.com/jimmc414/onefilellm.git
    cd onefilellm
    
  2. Creación de un entorno virtual(Recomendado)
    Para evitar conflictos de dependencias, se recomienda crear un entorno virtual:

    python -m venv .venv
    source .venv/bin/activate  # Windows 使用 .venv\Scripts\activate
    
  3. Instalación de dependencias
    montaje requirements.txt Las dependencias enumeradas en el

    pip install -U -r requirements.txt
    

    Las dependencias incluyen PyPDF2(tratamiento PDF),BeautifulSoup(rastreador web),tiktoken(recuento de fichas),pyperclip(operación del portapapeles),youtube-transcript-api(transcripción de YouTube), etc.

  4. Configuración de los tokens de acceso a GitHub(Opcional)
    Para acceder a los repositorios privados de GitHub, debes configurar un token de acceso personal:

    • Inicia sesión en GitHub y ve a Configuración > Configuración de desarrollador > Identificador de acceso personal.
    • Para generar un nuevo token, seleccione repo(almacén privado) o public_repo(Almacén abierto) Competencia.
    • Establece el token como variable de entorno:
      export GITHUB_TOKEN=<your-token>  # Windows 使用 set GITHUB_TOKEN=<your-token>
      
  5. Verificar la instalación
    Ejecute el siguiente comando para comprobar si la instalación se ha realizado correctamente:

    python onefilellm.py --help
    

    Si aparece un mensaje de ayuda, la instalación es correcta.

modo de funcionamiento

OneFileLLM es compatible tanto con la línea de comandos como con la interfaz web:

  • modo de línea de comandos
    Ejecute el script principal e introduzca manualmente la URL o la ruta:

    python onefilellm.py
    

    o especifique la URL/ruta directamente en la línea de comandos:

    python onefilellm.py https://github.com/jimmc414/onefilellm
    
  • Modo interfaz web
    Ejecute la interfaz web de Flask:

    python onefilellm.py --web
    

    Abra su navegador y visite http://localhost:5000Introduzca la URL o la ruta y haga clic en "Procesar" para obtener el resultado.

Funciones principales

El núcleo de OneFileLLM es la integración de múltiples fuentes de datos en un único texto, con salida como uncompressed_output.txt(sin comprimir),compressed_output.txt(comprimido) y processed_urls.txt(rastreo de una lista de URL). A continuación se explica cómo utilizar las funciones principales:

  • Procesamiento de repositorios de GitHub
    Introduzca la URL del repositorio (por ejemplo https://github.com/jimmc414/onefilellm), la herramienta obtiene recursivamente los tipos de archivo admitidos (por ejemplo .pyy.md), consolidados en un único texto.
    Ejemplo:

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

    El archivo de salida contiene el contenido del archivo de repositorio en el siguiente formato de envoltura XML:

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

    El texto se copia automáticamente en el portapapeles.

  • Gestión de Pull Requests o Issues de GitHub
    Introduzca una pull request (por ejemplo https://github.com/dear-github/dear-github/pull/102) o la URL de la emisión (por ejemplo https://github.com/isaacs/github/issues/1191), la herramienta extrae detalles diff, comentarios y todo el contenido del repositorio.
    La salida de ejemplo incluye cambios en el código, comentarios y documentación relacionada encapsulada como:

    <source type="github_pull_request">
    <content>
    [差异详情和评论]
    </content>
    </source>
    
  • Extraer artículos de ArXiv o Sci-Hub
    Introduzca la URL de ArXiv (por ejemplo https://arxiv.org/abs/2401.14295) o Sci-Hub DOI/PMID (p. ej. 10.1053/j.ajkd.2017.08.002 tal vez 29203127), la herramienta convierte PDF a texto.
    Ejemplo:

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

    La salida es el texto del artículo envuelto en XML:

    <source type="arxiv_paper">
    <content>
    [论文内容]
    </content>
    </source>
    
  • Obtenga la transcripción de YouTube
    Introduzca la URL del vídeo de YouTube (por ejemplo https://www.youtube.com/watch?v=KZ_NlnmPQYk), herramienta para extraer el texto transcrito.
    Ejemplo:

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

    La salida es:

    <source type="youtube_transcript">
    <content>
    [转录内容]
    </content>
    </source>
    
  • rastreador web
    Introduzca la URL de la página web (por ejemplo https://llm.datasette.io/en/stable/), la herramienta rastrea la página y especifica los enlaces profundos (por defecto) max_depth=2).
    Ejemplo:

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

    La salida es texto web segmentado, encapsulado:

    <source type="web_documentation">
    <content>
    [网页内容]
    </content>
    </source>
    
  • Manipulación de archivos o directorios locales
    Introduzca la ruta del archivo local (por ejemplo C:\documents\report.pdf) o catálogo (por ejemplo C:\projects\research), la herramienta extrae el contenido o integra los tipos de archivo compatibles del directorio.
    Ejemplo:

    Enter URL or path: C:\projects\research
    

    La salida es el contenido del catálogo en formato XML.

Función destacada Operación

  • Encapsulación de salida XML
    Todos los resultados están en formato XML, que proporciona una estructura clara y mejora la eficiencia del procesamiento LLM. El formato es el siguiente:

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

    incluidos entre estos source_type incluso mediante github_repositoryyarxiv_paper etc.

  • Exclusión de archivos y directorios
    Posibilidad de excluir archivos específicos (p. ej. *.pb.go) y catálogos (por ejemplo tests) Modificación onefilellm.py ha dado en el clavo excluded_patterns responder cantando EXCLUDED_DIRS Lista:

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

    Esto reduce el contenido superfluo y optimiza el uso de tokens.

  • recuento de fichas
    utilizar tiktoken Calcula el número de tokens del texto comprimido y sin comprimir, mostrándolo en la consola:

    Uncompressed token count: 1234
    Compressed token count: 567
    

    Ayuda al usuario a asegurarse de que el texto cabe en la ventana contextual de LLM.

  • Preprocesamiento de textos
    La herramienta elimina automáticamente las palabras vacías y los signos de puntuación, convierte a minúsculas y genera archivos comprimidos. Los usuarios pueden modificar preprocess_text personaliza la lógica de procesamiento.
  • Integración del portapapeles
    La salida sin comprimir se copia automáticamente en el portapapeles y se pega directamente en plataformas LLM (por ejemplo, ChatGPT, Claude).
  • interfaz web
    La interfaz de Flask simplifica las operaciones, ya que el usuario introduce una URL o una ruta y descarga el archivo de salida o copia el texto. Adecuado para usuarios sin conocimientos técnicos.

Configuración personalizada

  • Tipo de documento
    modificaciones allowed_extensions lista, añadiendo o eliminando los tipos de archivo admitidos:

    allowed_extensions = ['.py', '.txt', '.md', '.ipynb', '.csv']
    
  • Profundidad de rastreo web
    modificaciones max_depth el valor por defecto es 2:

    max_depth = 2
    
  • Nombre de dominio Sci-Hub
    Si el nombre de dominio de Sci-Hub no está disponible, cambie el campo onefilellm.py La URL de Sci-Hub en el

advertencia

  • Asegúrese de que dispone de una conexión a Internet estable. La transcripción de YouTube y el acceso a Sci-Hub dependen de API externas.
  • Los repositorios o páginas web grandes pueden generar una salida mayor, se recomienda comprobar el recuento de tokens y ajustar las reglas de exclusión.
  • El acceso a Sci-Hub puede requerir un cambio de dominio debido a restricciones regionales.
  • Es posible que algunos formatos de archivo (como PDF encriptados) no se procesen correctamente.

 

escenario de aplicación

  1. Revisión del código
    Los desarrolladores introducen repositorios de GitHub o URL de pull request, generan texto con código y comentarios, e introducen LLM para analizar la calidad del código o sugerencias de optimización.
  2. Resumen de la tesis
    Los investigadores introducen la URL de un artículo de ArXiv o Sci-Hub, extraen el texto e introducen el LLM para generar un resumen o responder a una pregunta de investigación.
  3. Recopilación de contenidos de vídeo
    Los creadores de contenidos introducen URL de vídeos de YouTube para obtener el texto transcrito, introducen LLM para extraer puntos clave o generan guiones.
  4. Integración de documentos
    Los redactores técnicos introducen rutas a páginas web o directorios locales, integran el contenido de los documentos e introducen LLM para reescribir o generar informes.

 

CONTROL DE CALIDAD

  1. ¿Qué formatos de archivo admite OneFileLLM?
    adyuvante .pyy.ipynby.txty.mdy.pdfy.csv etc., pueden modificarse modificando el allowed_extensions Personalización.
  2. ¿Cómo accedo a los repositorios privados de GitHub?
    Establecer el token de acceso personal de GitHub como variable de entorno GITHUB_TOKENrequiere repo Permisos.
  3. ¿Cómo reducir el tamaño del texto de salida?
    modificaciones excluded_patterns responder cantando EXCLUDED_DIRS Excluir archivos extraños, ajustar max_depth Limitar la profundidad de rastreo de la web.
  4. ¿Cuáles son las ventajas de la salida XML?
    XML está claramente estructurado, etiquetando las fuentes y tipos de contenido, lo que mejora la capacidad de LLM para comprender y procesar entradas complejas.
  5. ¿Qué debo hacer si no puedo descargar mi artículo de Sci-Hub?
    Compruebe la conexión de red para asegurarse de que el DOI/PMID es correcto, o actualice el onefilellm.py El nombre de dominio Sci-Hub en el
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...