modernice/jotbot
요약
JotBot은 Go 및 TypeScript 프로젝트의 코드 문서를 자동으로 생성하여, 실제 코드와 문서 간의 격차를 해소하는 도구입니다. 이 도구는 OpenAI의 GPT 모델을 활용하며, 사용자는 CLI 명령어를 통해 코드베이스 전체에 대한 문서 생성을 수행할 수 있습니다.
핵심 포인트
- Go 및 TypeScript 프로젝트에 특화된 자동 문서 생성기입니다.
- CLI 명령어(`jotbot generate`)를 사용하여 쉽게 실행 가능합니다.
- OpenAI API 키와 함께 다양한 옵션(필터링, 드라이 모드 등)을 제어할 수 있습니다.
- 비용 효율적인 `gpt-3.5-turbo`가 기본 모델이지만, 더 나은 결과를 위해 다른 GPT 모델 지정이 가능합니다.
JotBot은 Go 및 TypeScript 프로젝트에 대한 코드 문서를 원활하게 자동 생성하여, 포괄적인 코드와 통찰력 있는 문서 간의 격차를 해소합니다.
이 저장소의 문서는 JotBot을 사용하여 완전히 생성되었습니다.
~~gpt-4
하지만 현재(2023/07/18)는 gpt-3.5-turbo를 사용하는 것이 가장 좋은 결과를 얻습니다.
.~~
~~OpenAI의 ~~gpt-3.5
및 gpt-4
모델은 시간이 지남에 따라 품질 변동을 보입니다. 어떤 모델이 특정 상황에서 뛰어난지 판단하기 어려울 수 있지만, gpt-4가 종종 더 일관된 결과를 제공합니다.
~~일반적인 애플리케이션의 경우, 기본값으로 ~~gpt-3.5-turbo-16k를 사용하는 것을 추천하며, gpt-3.5가 부족할 수 있는 시나리오에서는 임시로 gpt-4로 전환하는 것이 좋습니다.
gpt-4-1106-preview가 현재까지 문서를 생성하는 데 가장 좋은 모델입니다. JotBot의 기본 모델은 가성비가 가장 좋은 gpt-3.5-turbo입니다.
생성된 TypeScript 문서는 packages/jotbot에서 찾을 수 있습니다.
go install github.com/modernice/jotbot/cmd/jotbot@latest
npm i -g jotbot-ts@latest
pnpm i -g jotbot-ts@latest
Go 및/또는 TypeScript 코드베이스 내에서 다음을 실행합니다:
jotbot generate --key OPENAI_API_KEY
- Go 및 TypeScript 코드베이스에 대한 문서 생성
- 포함 및 제외 파일의 glob 패턴 사용자 정의
- 정규 표현식 일치로 코드 심볼 필터링
- 문서를 생성할 파일 수 제한
- 변경 사항을 적용하지 않고 미리 보기 위해 드라이 모드(dry mode) 실행
- 문서 생성을 위해 사용되는 AI 모델 및 토큰 한계 제어
- 선택적으로 Git 브랜치에 변경 사항 커밋
JotBot은 OpenAI의 GPT 모델을 활용하여 문서를 생성합니다. 기본적으로 JotBot은 비용 효율적인 비율로 좋은 결과를 제공하는 gpt-3.5-turbo 모델을 사용합니다. 하지만, 가장 좋은 결과는 gpt-4와 text-davinci-003에 의해 생성되며, 이는 gpt-3.5-turbo보다 10~30배 더 비쌉니다.
OpenAI Docs에서 원하는 모델을 자유롭게 선택하여 --model|-m 플래그를 통해 전달할 수 있습니다.
jotbot generate -m text-davinci-003
Go가 설치되어 있다면, go install을 사용하여 JotBot을 간단히 설치할 수 있습니다.
go install github.com/modernice/jotbot/cmd/jotbot@latest
최신 바이너리는 Releases 페이지에서 다운로드할 수 있습니다.
TypeScript (및 JavaScript) 지원을 활성화하려면, jotbot-ts npm 패키지를 설치해야 합니다.
npm install -g jotbot-ts
pnpm install -g jotbot-ts
코드베이스의 누락된 문서를 생성하려면 다음 명령어를 실행하세요:
jotbot generate [options]
기본적으로 이 명령어는 현재 및 중첩 디렉터리에 있는 모든 Go 및 TypeScript (및 JavaScript) 파일을 찾아 해당 문서들을 생성합니다. 기본 제외 항목은 다음과 같습니다:
**/.*/**
**/dist/**
**/node_modules/**
**/vendor/**
**/testdata/**
**/test/**
**/tests/**
**/*.pb.go
- 설정 가능한 OpenAI 환경설정 (temperature, top_p 등)
아이디어가 있나요? 이슈를 열거나 토론을 시작하세요.
jotbot --help
| 옵션 | 설명 | 기본값 |
|---|---|---|
--root | 리포지토리의 루트 디렉터리 | "." |
--include, -i | 포함할 파일에 대한 Glob 패턴(들) | |
--include-tests, -T | TestXXX() 함수 포함 (Go 전용) | |
--exclude, -e | 제외할 파일에 대한 Glob 패턴(들) | |
--exclude-internal, -E | 'internal' 디렉터리 제외 (Go 전용) | true |
--match | 식별자(identifier)와 일치시킬 정규 표현식(들) | |
--symbol, -s | 코드에서 검색할 심볼(Symbol) (TS/JS 전용) | |
--clear, -c | 생성 프롬프트의 주석 강제 제거 (Go 전용) | |
--branch | 변경 사항을 커밋할 브랜치 이름 (비워두면 커밋하지 않음) | |
--limit | 문서를 생성할 파일 수 제한 | 0 |
--dry | 적용하지 않고 변경 사항 출력 | false |
--model, -m | 문서 생성을 위해 사용되는 OpenAI 모델 | ` |
동시에 처리할 파일 수 | 4 |
--workers |
파일당 사용할 워커(worker) 수 | 2 |
--override, -o |
기존 문서 덮어쓰기 (Go 전용) | |
--key |
OpenAI API 키 | |
--verbose, -v |
자세한 로깅 활성화 | false |
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기