Janus Vibe 项目

单文件 Go 二进制本地跑 GGUF 大模型,Vulkan 显卡加速并暴露 OpenAI 兼容接口

项目简介

Janus 是一个用 Go 语言编写的单文件二进制程序,能够在本机直接运行 GGUF 格式的大语言模型,并对外提供与 OpenAI 完全兼容的接口。它不需要 Python 环境,不需要 Docker,也不需要安装 Ollama——下载一个可执行文件、放好模型文件即可开始对话。无论是命令行脚本、curl 请求,还是 Cursor、Cline 等支持自定义接口的编程工具,都可以无缝接入同一套本地模型服务。

核心功能

  • 本地推理:基于 llama.cpp 实现,通过 Vulkan 后端调用 AMD、Intel、NVIDIA 显卡算力,无显卡时自动回退到中央处理器运行
  • 兼容接口:完整实现对话补全与模型列表两个标准端点,支持流式输出,任何 OpenAI 客户端改个地址即可接入
  • 模型热切换:通过专用接口在不重启服务的情况下更换模型文件,多模型对比测试十分方便
  • 思考型模型支持:推理链会被单独拆分到独立字段,正文回答保持干净
  • 聊天模板自动识别:从模型文件元数据中读取对话模板,无需手动配置提示词格式
  • 单实例守护:内置实例锁,避免多个服务进程争抢同一端口

技术实现

Janus 的主体是一个 Go 服务进程,内部通过动态链接方式加载 llama.cpp 编译出的 Vulkan 动态库,把张量计算交给显卡执行。核心模块分为四层:主服务进程负责对外的兼容接口;模型下载工具负责从模型托管平台拉取 GGUF 文件;推理引擎模块封装 Vulkan 与 CPU 两种后端;桥接模块负责 Go 与本地动态库之间的函数绑定。配置全部通过环境文件管理,可设置推理后端、模型路径、显卡层数、显存预算上限、最大生成长度与监听地址。显存调度上既可以把全部层放入显卡,也可以设定占用上限,方便在共享显卡的机器上控制资源。服务默认只监听本机回环地址的 8990 端口,避免局域网内其他设备未经许可调用;更换模型后首次回复较慢属于正常的模型加载过程。

快速上手

  1. 克隆代码仓库并执行构建脚本,脚本会自动下载预编译的推理动态库并编译出可执行文件
  2. 把任意 GGUF 模型文件放入模型目录,或使用自带的下载工具直接从托管平台拉取
  3. 复制示例配置文件并设置推理后端与模型路径
  4. 启动服务,浏览器访问本机地址查看健康状态
  5. 用命令行向对话补全端点发送请求,或把任意 OpenAI 客户端的接口地址指向本机服务

适用人群

  • 希望在本地运行大模型、对数据隐私敏感的开发者
  • 需要给编程工具接一个免费本地接口的用户
  • 手上有 AMD 或 Intel 显卡、想用 Vulkan 后端跑模型的玩家
  • 不想安装 Python 和 Docker、追求极简部署的运维与脚本作者

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论