일반 소개
OneFileLLM은 여러 데이터 소스를 하나의 텍스트 파일로 통합하여 대규모 언어 모델(LLM)에 쉽게 입력할 수 있도록 설계된 오픈 소스 명령줄 도구입니다. 이 도구는 GitHub 리포지토리, ArXiv 논문, YouTube 동영상 트랜스크립션, 웹 콘텐츠, Sci-Hub 논문 및 로컬 파일 처리를 지원하여 구조화된 텍스트를 자동으로 생성하고 이를 클립보드에 복사합니다. 개발자 짐 맥밀란은 LLM 프롬프트 생성을 간소화하고 데이터를 수동으로 정리하는 지루한 작업을 줄이기 위해 이 도구를 설계했습니다. Python으로 개발된 이 도구는 여러 파일 형식, 텍스트 전처리 및 XML 래핑을 지원하므로 개발자, 연구원 및 콘텐츠 제작자에게 적합합니다. 설치가 간편하고 구성이 유연하며 명령줄이나 웹 인터페이스를 통해 작동할 수 있습니다.

기능 목록
- 입력 유형(예: GitHub 리포지토리, YouTube 링크, ArXiv 논문, 로컬 파일 등)을 자동으로 감지합니다.
- GitHub 리포지토리, 풀 리퀘스트 및 이슈를 단일 텍스트로 처리하는 기능을 지원합니다.
- ArXiv 및 Sci-Hub 논문의 PDF 콘텐츠를 추출하여 텍스트로 변환합니다.
- YouTube 동영상 대본을 받습니다.
- 웹 콘텐츠 크롤링, 지정된 깊이의 크롤링 링크 지원.
- 다음을 포함한 다양한 파일 형식을 처리합니다.
.py
및.ipynb
및.txt
및.md
및.pdf
및.csv
등 - 중단 단어 제거, 구두점, 소문자로 변환 등의 텍스트 사전 처리 기능을 제공합니다.
- 파일 및 디렉터리 제외, 자동 생성 파일 필터링 지원(예
*.pb.go
) 또는 테스트 카탈로그. - 압축 및 비압축 텍스트에 대한 토큰 수를 보고하여 LLM 컨텍스트 관리를 최적화합니다.
- 출력 텍스트는 LLM 처리의 효율성을 높이기 위해 XML 형식으로 캡슐화됩니다.
- 압축되지 않은 텍스트를 클립보드에 자동으로 복사하여 LLM 플랫폼에 쉽게 붙여넣을 수 있습니다.
- URL 또는 경로 입력을 간소화하는 플라스크 웹 인터페이스를 제공합니다.
도움말 사용
설치 프로세스
OneFileLLM을 사용하려면 Python 환경 및 관련 종속성이 필요합니다. 자세한 설치 단계는 다음과 같습니다:
- 클론 창고
터미널에서 다음 명령을 실행하여 OneFileLLM 리포지토리를 복제합니다:git clone https://github.com/jimmc414/onefilellm.git cd onefilellm
- 가상 환경 만들기(권장)
종속성 충돌을 방지하려면 가상 환경을 만드는 것이 좋습니다:python -m venv .venv source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
- 종속성 설치
마운팅requirements.txt
에 나열된 종속성은pip install -U -r requirements.txt
종속성은 다음과 같습니다.
PyPDF2
(PDF 처리),BeautifulSoup
(웹 크롤러),tiktoken
(토큰 수),pyperclip
(클립보드 작동),youtube-transcript-api
(YouTube 트랜스크립션) 등 - GitHub 액세스 토큰 구성(선택 사항)
비공개 GitHub 리포지토리에 액세스하려면 개인 액세스 토큰을 설정해야 합니다:- GitHub에 로그인하고 설정 > 개발자 설정 > 개인 액세스 토큰으로 이동합니다.
- 새 토큰을 생성하려면
repo
(개인 창고) 또는public_repo
(오픈 웨어하우스) 역량. - 토큰을 환경 변수로 설정합니다:
export GITHUB_TOKEN=<your-token> # Windows 使用 set GITHUB_TOKEN=<your-token>
- 설치 확인
다음 명령을 실행하여 설치가 성공했는지 확인합니다:python onefilellm.py --help
도움말 메시지가 표시되면 설치가 올바른 것입니다.
실행 모드
OneFileLLM은 명령줄과 웹 인터페이스를 모두 지원합니다:
- 명령줄 모드
메인 스크립트를 실행하고 URL 또는 경로를 수동으로 입력합니다:python onefilellm.py
를 입력하거나 명령줄에서 직접 URL/경로를 지정하세요:
python onefilellm.py https://github.com/jimmc414/onefilellm
- 웹 인터페이스 모드
Flask 웹 인터페이스를 실행합니다:python onefilellm.py --web
브라우저를 열고 다음 사이트를 방문하세요.
http://localhost:5000
URL 또는 경로를 입력하고 '처리'를 클릭하여 출력을 얻습니다.
주요 기능
OneFileLLM의 핵심은 여러 데이터 소스를 단일 텍스트로 통합하여 다음과 같이 출력하는 것입니다. 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
) 또는 이슈 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)에 직접 붙여넣기됩니다. - 웹 인터페이스
플라스크 인터페이스는 사용자가 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)은 제대로 처리되지 않을 수 있습니다.
애플리케이션 시나리오
- 코드 검토
개발자는 GitHub 리포지토리 또는 풀 리퀘스트 URL을 입력하고, 코드 및 주석이 포함된 텍스트를 생성하고, LLM을 입력하여 코드 품질 또는 최적화 제안을 분석합니다. - 논문 요약
연구자는 ArXiv 또는 Sci-Hub 논문의 URL을 입력하고 텍스트를 추출한 후 LLM에 입력하여 초록을 생성하거나 연구 질문에 답할 수 있습니다. - 비디오 콘텐츠 데이터 정렬
콘텐츠 제작자는 YouTube 동영상 URL을 입력하여 텍스트를 텍스트로 변환하고, LLM을 입력하여 핵심 사항을 추출하거나 스크립트를 생성할 수 있습니다. - 문서 통합
테크니컬 라이터는 웹 페이지 또는 로컬 디렉터리의 경로를 입력하고, 문서 콘텐츠를 통합하고, LLM을 입력하여 보고서를 다시 작성하거나 생성합니다.
QA
- OneFileLLM은 어떤 파일 형식을 지원하나요?
지원.py
및.ipynb
및.txt
및.md
및.pdf
및.csv
등을 수정하여 수정할 수 있습니다.allowed_extensions
사용자 지정. - 비공개 GitHub 리포지토리에 액세스하려면 어떻게 하나요?
GitHub 개인 액세스 토큰을 환경 변수로 설정하기GITHUB_TOKEN
requirerepo
권한. - 출력 텍스트 크기를 줄이려면 어떻게 해야 하나요?
수정excluded_patterns
노래로 응답EXCLUDED_DIRS
불필요한 파일 제외, 조정max_depth
웹 크롤링 깊이를 제한합니다. - XML 출력의 장점은 무엇인가요?
XML은 명확하게 구조화되어 콘텐츠 소스와 유형에 레이블이 지정되므로 복잡한 입력을 이해하고 처리하는 LLM의 능력이 향상됩니다. - Sci-Hub 논문을 다운로드할 수 없는 경우 어떻게 해야 하나요?
네트워크 연결을 확인하여 DOI/PMID가 올바른지 확인하거나, 또는onefilellm.py
Sci-Hub 도메인 이름은
© 저작권 정책
文章版权归 AI 공유 서클 所有,未经允许请勿转载。
관련 문서
댓글 없음...