ardanlabs/kronk
Go With Your Own Intelligence! Use Go for hardware accelerated local inference with llama.cpp, whisper.cpp, and stable-diffusion.cpp directly integrated into your Go applications. Kronk provides a high-level API and production ready model server.
Kronk이란?
Kronk는 Go 언어 SDK 및 로컬 모델 서버로, 개발자가 Python이나 별도의 서버 스택 없이 자체 머신에서 AI 모델을 실행할 수 있게 합니다. 인기 있는 네이티브 추론 엔진(llama.cpp, whisper.cpp, stable-diffusion.cpp 등)과 통신한 다음 OpenAI 호환 HTTP API(채팅, 임베딩, 오디오 전사, 재순위화, 의사 결정)와 Anthropic 호환 메시지 엔드포인트를 노출합니다. 간단히 말해, Go 프로그램과 HTTP 클라이언트에 텍스트 생성, 비전, 임베딩, 오디오-텍스트 변환 및 실험적 이미지 생성을 가능한 경우 하드웨어 가속화와 함께 로컬에서 수행하는 방법을 제공합니다.
누가 사용할까?
- Go 개발자: Python 런타임을 끌어들이지 않고 LLM 또는 멀티모달 추론을 서비스에 직접 포함하려는 사람.
- 프라이버시 바이 디자인 AI 제품을 구축하는 팀: 모델과 데이터를 온프레미스로 유지해야 하는 팀.
- 실험자: RAG, 에이전트 또는 의사 결정 워크플로우 프로토타이핑을 위해 OpenAI/Anthropic API를 모방한 빠른 로컬 서버를 원하는 사람.
- 운영 담당자: 단일 바이너리를 선호하고, 컨테이너화할 수 있으며, 표준 Go 도구로 관리하고, GPU/Metal/Vulkan 가속을 활용할 수 있는 사람.
주요 기능(README에서)
| 기능 | 세부 사항 |
|---|---|
| 통합 Go SDK | 텍스트 생성, 스트리밍, 도구 호출, 비전, 임베딩, 재순위화, 의사 결정 모델 쿼리, 동시성, 증분 캐싱을 위한 함수. |
| 모델 서버 | OpenAI 호환(/v1/chat/completions, /v1/embeddings 등) 및 Anthropic 메시지 API와 호환되는 HTTP 엔드포인트. 의사 결정 모델용 사용자 지정 /v1/systemone 및 /v1/decide도 있음. |
| 하드웨어 가속 | 네이티브 라이브러리 사용: llama.cpp(CPU/GPU), yzma, whisper.cpp, stable-diffusion.cpp. Linux, macOS, Windows에서 CUDA, Vulkan, ROCm, Metal 및 CPU 전용 경로 지원. |
| Bucky | whisper.cpp 기반의 음성-텍스트 모듈로, 전사, 번역, 화자 분리, 라이브 스트리밍을 제공. |
| Malina(실험적) | stable-diffusion.cpp 기반의 이미지 생성 SDK로, ControlNet, ADetailer, AnimateDiff, 업스케일링, 비디오 생성을 갖춤. 아직 서버의 일부가 아님. |
| 브라우저 UI | 모델 관리, 테스트, 모니터링을 위한 로컬 웹 UI(http://localhost:11435). |
| 관찰 가능성 및 보안 | 내장 인증, 속도 제한, 메트릭, 트레이싱, OpenWebUI, OpenCode, Claude Code용 통합 후크. |
| 간편한 설치 | Homebrew 포뮬러, go install CLI 또는 Docker 컨테이너. 호환되는 네이티브 라이브러리와 모델 파일 자동 다운로드. |
| 크로스 플랫폼 | Linux(amd64/arm64), macOS(amd64/arm64), Windows(amd64/arm64)에서 적절한 GPU 백엔드 지원. |
시작 방법(빠른 시작 단계)
- 설치 – macOS/Linux에서
brew install ardanlabs/kronk/kronk실행(또는go install github.com/ardanlabs/kronk/cmd/kronk@latest). - 서버 시작 –
kronk server start. - UI 열기 –
http://localhost:11435로 이동하여 모델 업로드/다운로드 및 엔드포인트 테스트. - 예제 실행 – 예:
make example-question으로 로컬 LLM에 질문하거나make example-bucky로 오디오 전사. - 통합 – Go SDK(
import "github.com/ardanlabs/kronk")를 사용하거나 모든 클라이언트에서 OpenAI 호환 REST API를 호출.
AI 생태계에서의 위치
- 클라우드 LLM API의 로컬 대안 – OpenAI/Anthropic과 동일한 요청 형태를 제공하지만 온프레미스에서 실행되어 완전한 데이터 제어를 제공하고 외부 서비스에 대한 지연 시간을 제거합니다.
- Go와 네이티브 추론 연결 – Go 개발자는 ggml 기반 엔진에 쉽게 접근하지 못하는 경우가 많습니다. Kronk는 이러한 C/C++ 라이브러리를 관용적인 Go 함수 뒤에 래핑합니다.
- 모듈식 아키텍처 – 개별 하위 시스템(텍스트/비전용 Yzma, 오디오용 Bucky, 이미지용 Malina)은 독립적으로 또는 함께 사용할 수 있으며, 현대 AI의 멀티모달 추세를 반영합니다.
- RAG 및 에이전트 지원 – 채팅, 임베딩, 재순위화, 의사 결정 엔드포인트를 통해 개발자는 완전히 Go로 RAG(Retrieval-Augmented Generation) 파이프라인이나 자율 에이전트를 구축할 수 있습니다.
성숙도 및 커뮤니티
- 프로젝트는 업스트림 ggml 릴리스를 따릅니다. 호환성이 깨지는 변경 사항은
BREAKING_CHANGES.md에 문서화되어 있습니다. - 릴리스는 버전 관리됩니다(예: 1.32.9). 호환 라이브러리 핀 표와 함께.
- GitHub Issues 및 Bill Kennedy(Ardan Labs)에 대한 직접 연락을 통한 활발한 지원.
- "Travel Schedule"에 나열된 빈번한 워크숍과 강연은 지속적인 커뮤니티 참여를 나타냅니다.
위의 모든 정보는 리포지토리의 README에서 직접 가져온 것입니다. 외부 가정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트