TL;DR
- Grev는 TypeSafe의 Jev 모델을 활용해 입력 패턴을 일치시키는 대신 질문에 답하며 레코드를 처리하는 Unix 도구 모음임.
- 모델은 텍스트를 생성하는 대신 보정된 확률로 타입이 지정된 질문에 답하고, 출력은 항상 입력 데이터이며 레이블과 점수는 명시적 열로만 표시됨.
grev,isv,tagv,rank,pickv,uniqv,cutv,seek,lookv,probev등 검색·분류·정렬·추출 도구를 제공함.- 수천 줄 처리에 몇 초와 1센트 미만의 비용이 들며, 실행별 비용 한도와 일일·월간 지출 상한 등 안전장치를 제공함.
~/.grevconfig에서 API 키와 기본 설정을 관리하며, 패키지·Go 설치·소스 빌드를 지원함.
예시
- 의미를 기준으로 로그를 검색함.
grev --about으로 입력의 종류를 지정하고, 자연어 질문에 맞는 줄을 찾음.journalctl출력에서 프로세스 충돌을 찾거나git log의 커밋 메시지에서 버그 수정 내용을 찾을 수 있음.- 커밋을 검사할 때
isv로 스테이징된 변경 사항에 비밀 정보나 자격 증명이 포함됐는지 확인하며, 종료 코드0은 긍정을 의미함. tagv로 티켓을 분류하고 레코드를 디렉터리별로 분배하며,rank로 긴급성이나 순서 수준에 따라 정렬함.pickv로 질문에 가장 잘 답하는 한 줄이나 정규식 일치를 찾고,cutv로 설명에 맞는 CSV/TSV 열을 추출하며,uniqv로 의미가 같은 인접 레코드를 합침.unwrap은 강제로 줄바꿈된 텍스트를 다시 연결하고,seek는 설명에 해당하는 항목을 디렉터리 트리에서 찾음.lookv는 순서가 있는 입력에서 답이 바뀌는 지점을 이분 탐색하며, 600줄의 상태 확인 로그에서 실패를 보고하는 첫 항목을 세 번 요청해 찾는 예시를 제공함.probev는 각 레코드의 확률을 열로 출력해awk에서 활용할 수 있음.
도구 구성
grev—grep: 모델이 긍정으로 판단한 레코드를 출력함.isv—test: 전체 입력에 대한 예·아니오 질문의 답을 종료 상태로 반환함.oneof—case: 전체 입력에 맞는 레이블을 출력함.tagv—awk: 모든 레코드를 분류하며,--split DIR로 레코드를 파일에 분배함.rank—sort: 적합도 또는 순서가 지정된 수준에 따라 레코드를 정렬함.pickv—grep -o: 질문에 가장 잘 답하는 한 줄 또는 정규식 일치를 출력함.uniqv—uniq: 의미가 같은 인접 레코드를 합침.unwrap—fmt: 강제로 줄바꿈된 줄을 다시 연결함.seg—csplit: 스트림을 주제별 구간으로 나눔.cutv—cut: 설명과 일치하는 CSV/TSV 열을 추출함.seek—find: 설명에 해당하는 항목을 찾으며 디렉터리 트리를 탐색함.lookv—look,git bisect: 몇 차례의 요청으로 순서가 있는 입력에서 답이 바뀌는 지점을 찾음.probev—awk: 레코드별 확률 열을 출력함.jev: 설정, API 키, 비용, 모델, 단발성 요청 및 원시 요청을 관리함.- 모든 도구에
--help와 매뉴얼 페이지가 제공됨.
공통 옵션
-p: 실시간 및 예상 비용과 진행 상황을 표시함.-Q: 예상 비용을 표시하고 먼저 확인을 요청함.-J N/-Jmax: 병렬 처리 수준을 설정함.--max-cost: 실행별 예산을 설정함.
설치
- Linux, macOS, FreeBSD, Windows용 deb, rpm, apk, Arch 패키지와 아카이브를 릴리스 페이지에서 제공함.
packaging/arch/PKGBUILD는 소스에서 빌드함.- Go 설치 명령은
go install github.com/aurorainfra/grev/cmd/...@latest임. - 소스에서는
make && sudo make install로 설치하며, 매뉴얼 페이지와 bash/zsh/fish 자동 완성도 함께 설치함.
설정
- 설정은 git-config 형식의 단일 파일
~/.grevconfig에 저장하며, 전체 참조 문서는docs/CONFIG.md와man grevconfig에서 확인 가능함. jev key set으로 API 키를 설정하며 파일 권한은0600임.[defaults]에서 진행 상황 표시, 작업 수, 확인 기준 비용을 지정할 수 있음. 기본 확인 기준은 1달러이며 예시 설정은 0.25달러임.[limits]에서 모든 도구에 적용되는 일일·월간 미국 달러 지출 한도를 설정할 수 있으며 예시 값은 각각 5달러와 50달러임.[tool "grev"]처럼 도구별 기본값을 설정할 수 있으며, 예시에는about기본값과threshold = 0.7이 포함됨.- 임계값은 도구별로 설정함.
-t는grev에서 긍정일 확률,tagv에서 선택 항목의 최소 신뢰도,seek에서 경로 점수를 의미함. jev config set limits.daily 5로 설정을 관리하고,jev config list --show-origin으로 출처를 확인하며,jev spend로 지출을 확인함.- 우선순위는 명령줄 옵션, 환경 변수, 설정 파일 순임. CI에서는
TYPESAFE_API_KEY로 파일 없이 키를 제공할 수 있음.
비용과 안전
- Jev 요금은 입력 토큰 100만 개당 0.042달러이며 출력은 무료임.
- 4,000줄 소스 파일의 grep 작업 비용은 약 0.008달러임.
- 설정된
confirmAbove기준을 넘는 비용으로 예상되는 실행은 먼저 확인을 요청하며, 별도 설정이 없으면 기준은 1달러임. 터미널이 없으면 실행을 거부함. --max-cost와 일일·월간 한도는 실행이 한도를 넘기 전에 중단함.- 출력 파이프를 닫으면, 예를 들어
| head를 사용하면 지출이 중단됨.
추가 자료
docs/DESIGN.md: 도구의 질문 구성 방식과 그 이유, 평가, 옵션 규칙, 비용 모델을 설명함.docs/CONFIG.md: 설정을 자세히 설명함.- 매뉴얼 페이지:
grev-tools(7),grevconfig(5)및 도구별 매뉴얼을 제공함.
라이선스
- Apache License, Version 2.0 또는 MIT License 중 선택해 라이선스를 적용함.
- 별도 명시가 없는 한, Apache-2.0 라이선스에서 정의한 대로 작업에 포함하도록 제출한 기여물은 추가 조건 없이 위 두 라이선스로 이중 라이선스가 적용됨.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요