sammcj/ingest

Parse files (e.g. code repos) and websites to clipboard or a file for ingestions by AI / LLMs

무엇을 해결하는가

Ingest는 LLM에 대량의 컨텍스트(전체 코드베이스 또는 웹 페이지와 같은)를 제공하는 프로세스를 단순화합니다. 여러 파일이나 URL을 수동으로 복사하여 붙여넣는 문제를, 명확한 디렉토리 구조를 가진 단일 AI 준비형 Markdown 파일로 통합함으로써 해결합니다.

작동 방식

이 도구는 일반 텍스트 파일, 소스 코드 또는 웹 URL의 디렉토리를 파싱하여 서식이 지정된 Markdown 문서로 변환합니다. 컨텍스트 창을 최적화하기 위해 다음과 같은 여러 기능을 포함합니다:

  • Aggregation: 여러 파일과 디렉토리를 하나의 출력물로 결합합니다.
  • Code Compression: Tree-sitter를 사용하여 코드의 구조적 요소(시그니처, 임포트, 선언)만 추출하고, 구현 세부 사항을 제거하여 토큰을 절약합니다.
  • Web Crawling: 웹 페이지와 PDF를 Markdown으로 변환하여 인제스트(ingestion)할 수 있게 합니다.
  • Token Counting: 오프라인 토큰 추정치(다양한 모델에 대한 보정 계수 포함) 또는 Anthropic API를 통한 정확한 카운트를 제공합니다.
  • LLM Integration: 최종 프롬프트를 모든 OpenAI 호환 API로 직접 전송할 수 있습니다.

대상 사용자

분석, 리팩토링 또는 설명을 위해 전체 프로젝트, 문서 사이트 또는 복잡한 파일 구조를 LLM에 입력해야 하는 개발자와 AI 파워 유저입니다.

주요 특징

  • Tree-sitter Compression: 아키텍처를 유지하면서 코드 본문을 제거하여 토큰 사용량을 줄입니다.
  • Flexible Filtering: glob 패턴을 사용하여 특정 파일을 포함하거나 제외할 수 있습니다.
  • Integrated Tokenizer: 빠르고 로컬한 토큰 카운팅을 위해 번들로 제공되는 오프라인 토크나이저(o200k_base, cl100k_base)를 사용합니다.
  • Web-to-Markdown: 외부 문서를 위한 내장 크롤링 및 PDF 변환 기능을 제공합니다.
  • Git Integration: 프롬프트에 git diff와 로그를 포함할 수 있는 기능이 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트