OneFileLLM: Integración de múltiples fuentes de datos en un único archivo de texto
Últimos recursos sobre IAPublicado hace 4 meses Círculo de intercambio de inteligencia artificial 1.5K 00
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.

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
.py
y.ipynb
y.txt
y.md
y.pdf
y.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:
- 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
- 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
- Instalación de dependencias
montajerequirements.txt
Las dependencias enumeradas en elpip 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. - 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) opublic_repo
(Almacén abierto) Competencia. - Establece el token como variable de entorno:
export GITHUB_TOKEN=<your-token> # Windows 使用 set GITHUB_TOKEN=<your-token>
- 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:5000
Introduzca 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 ejemplohttps://github.com/jimmc414/onefilellm
), la herramienta obtiene recursivamente los tipos de archivo admitidos (por ejemplo.py
y.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 ejemplohttps://github.com/dear-github/dear-github/pull/102
) o la URL de la emisión (por ejemplohttps://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 ejemplohttps://arxiv.org/abs/2401.14295
) o Sci-Hub DOI/PMID (p. ej.10.1053/j.ajkd.2017.08.002
tal vez29203127
), 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 ejemplohttps://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 ejemplohttps://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 ejemploC:\documents\report.pdf
) o catálogo (por ejemploC:\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 mediantegithub_repository
yarxiv_paper
etc. - Exclusión de archivos y directorios
Posibilidad de excluir archivos específicos (p. ej.*.pb.go
) y catálogos (por ejemplotests
) Modificaciónonefilellm.py
ha dado en el clavoexcluded_patterns
responder cantandoEXCLUDED_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
utilizartiktoken
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 modificarpreprocess_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
modificacionesallowed_extensions
lista, añadiendo o eliminando los tipos de archivo admitidos:allowed_extensions = ['.py', '.txt', '.md', '.ipynb', '.csv']
- Profundidad de rastreo web
modificacionesmax_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 campoonefilellm.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
- 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. - 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. - 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. - 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
- ¿Qué formatos de archivo admite OneFileLLM?
adyuvante.py
y.ipynb
y.txt
y.md
y.pdf
y.csv
etc., pueden modificarse modificando elallowed_extensions
Personalización. - ¿Cómo accedo a los repositorios privados de GitHub?
Establecer el token de acceso personal de GitHub como variable de entornoGITHUB_TOKEN
requiererepo
Permisos. - ¿Cómo reducir el tamaño del texto de salida?
modificacionesexcluded_patterns
responder cantandoEXCLUDED_DIRS
Excluir archivos extraños, ajustarmax_depth
Limitar la profundidad de rastreo de la web. - ¿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. - ¿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 elonefilellm.py
El nombre de dominio Sci-Hub en el
© declaración de copyright
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...