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开发者:希望将LLM或多模态推理直接嵌入服务中,而不引入Python运行时。
- 构建隐私优先AI产品的团队:需要将模型和数据保持在本地。
- 实验者:希望快速获得一个模拟OpenAI/Anthropic API的本地服务器,用于RAG、代理或决策工作流的原型设计。
- 运维人员:更喜欢单个二进制文件,可以容器化,用标准Go工具管理,并利用GPU/Metal/Vulkan加速。
主要功能(来自README)
| 功能 | 详情 |
|---|---|
| 统一Go SDK | 用于文本生成、流式传输、工具调用、视觉、嵌入、重排序、决策模型查询、并发和增量缓存的函数。 |
| 模型服务器 | 兼容OpenAI的HTTP端点(/v1/chat/completions、/v1/embeddings等)和Anthropic消息API;还有用于决策模型的自定义/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 | 本地Web 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)流水线或自主代理。
成熟度与社区
- 项目遵循上游ggml发布;破坏性变更记录在
BREAKING_CHANGES.md中。 - 发布已版本化(例如1.32.9),并附有兼容库固定表。
- 通过GitHub Issues和直接联系Bill Kennedy(Ardan Labs)提供积极支持。
- “旅行日程”中列出的频繁研讨会和演讲表明持续的社区参与。
以上所有信息均直接取自仓库的README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目