【笔记】cllama:搜罗万象当LLM api server测qwen3.8:flash-next

cllama:搜罗万象当LLM api server

TL;DR cllama

先别急着看代码。我想先讲个故事。

这一切是从"抠门"开始的

我有一台很普通的服务器------没有 GPU,只有 CPU,但它在公网上,有个公网 IP,可以连着腾讯的 IMA。这台机器常年安静地跑着 bge-m3 做 embedding,把知识库向量化,等着被检索。

问题来了:IMA 需要一个能对话的模型,啥?每天100算力,我可是薅了一个月,每天领100然后尽量用到100把伤寒论的书自动看了一遍,总结了各种知识。但是只要不够了它会自己停下来比如用了70,另30死活不让用就过期了;我的公网服务器又跑不动大模型,但是IMA偏偏需要指定公网api。而我手头有台游戏本 Windows,能跑 qwen3.8:27b------但它在家里的 NAT 后面,没有公网地址,IMA 够不着它。薅不动算力了,还是自建infra吧。

这就像家里有台好车,但车库门只朝内开。怎么办?

于是 cllama 出生了

cllama 是一个轻量的 LLM API 转换器。它挡在一堆 LLM 后端前面(Ollama、任何 OpenAI 兼容服务器、任何 Anthropic 兼容服务器),然后把这些后端统一重新暴露成 Ollama API、OpenAI API 和 Anthropic Messages API 三套接口。你注册一个后端,三套客户端就都能用了------一个只有 Ollama 的服务器,瞬间被 OpenAI 和 Anthropic 的客户端接管。

复制代码
                 ┌──────────────────────────────┐
 Ollama/OpenAI ─▶│  公网 cllama(对外暴露)        │
 客户端           │  -name qwen3.8:27b,embeddings│
                 └─────────────┬────────────────┘
                               │ 链式(outbound SSE)
                 ┌─────────────▼─────────────┐
                 │  Windows 上的 cllama 子节点 │
                 │  (NAT 后面,无需入站连接)   │
                 └─────────────┬─────────────┘
                               │
                        本地 ollama: qwen3.8:27b

子 cllama 主动拨出连接到父 cllama,用自己本地的 GPU 来服务父节点的流量。子节点永远不需要公网地址------连接是长连接的 SSE 隧道,断了自动重连。于是我的 Windows 开机后,跑一句:

sh 复制代码
./cllama -listen :11435 -name local-qwen \
  -parent 'https://token@public.example.com:11434/qwen3.8:27b'

再把自己的本地 Ollama 注册成它的后端:

sh 复制代码
curl -X POST http://localhost:11435/admin/backends -d '{
  "type": "ollama", "endpoint": "http://127.0.0.1:11434",
  "model": "qwen3.8:27b", "upstream_model": "qwen3.8:27b"
}'

完事。现在公网服务器上的 qwen3.8 这个"虚拟模型",任何请求都会顺着隧道被转发到 Windows 上真正跑着的 qwen3.8:27b。家里那台车,终于从车库后门开出去了。额,我是不是造了一个写着mock名字qwen3.8:plus然后后面注册一个qwen3.8:27b的东西出来了 -_-///

消费级设备 vibe coding 生成 cllama

说实话,cllama 是我用 qwen3.6:35b + qwen3.8:flash-next 两个模型"vibe coding"出来的。过程没什么高深的东西,就是不停地把问题丢给模型,让它们干活:

  • qwen3.6:35b 负责快速生成第一个demo版本,以最快的速度把代码写好。按照我设想的cllama有哪些go文件,它往里面填就好了。
  • qwen3.8:flash-next 负责认真写代码,先擦好qwen3.6:35b留下来的问题,比如编译不通过等,再一点一点bug fix和重构。

你别说,qwen3.6:35b 的速度刚刚的,最快到120 token/s,最慢么 40 token/s。到了qwen3.8:flash-next,最快大概20 token/s,最慢大概 13 token/s,比antirez的混合2-4bit量化的deepseek-v4-flash稍微慢一点。这次是纯尝试下qwen3.8:flash-next,所以就没让deepseek登场。因为vibe coding,bug肯定还是不少的...我就顺手修过2行的2个bug。但是有一说一,qwen3.8的编译错误基本上很少,确实和opus 4.6有点比头了。本地现在能有这么聪明的模型,我觉得后面agent的外置知识和搜索引擎是相当重要的东西了。

小插曲是前段时间研究qwen3.6:35b给agent跑,然后关了flash attention;等3.8 flash next一出来下载完,再编译好llama.cpp一跑,Q4的80GB直接报内存不够,大哥我是128GB内存啊!啊,是了,flash attention O(N^2) 惹的祸。不过qwen迟迟不给qwen3.8:35b是不是怕大家都买本地设备去了哈...

实用的地方

  • 一个注册,三套 API 。注册一个 Ollama 后端,OpenAI 客户端能调、Anthropic 客户端能调、Ollama CLI 也能调。ollama run 和 ollama list 甚至能对着 cllama 直接跑。
  • Claude Code 兼容 。把 ANTHROPIC_BASE_URL 指向 cllama 的 /api/anthropic,Claude Code 就能驱动任何后端,不管上游是不是 Anthropic 原生。
  • Web UI 内嵌在二进制里 。/ui 打开就是一个单页面板:实时请求队列、模型↔后端映射、系统设置,全走 SSE 实时刷新,不用轮询。
  • 能力声明。每个后端可以声明自己能干什么(chat / vision / tools / thinking / embedding),代理按交集对外承诺,绝不吹牛。

无缝接入:IMA 直连你自己的模型

现在回到那个场景,把整条链拼起来:

  1. 服务器 (公网、纯 CPU):跑 cllama 父节点 + bge-m3 embedding,对外暴露 qwen3.8 和 embeddings 两个模型,带上 -token 和 -parentauth 做认证。
  2. Windows(NAT 后面、有 GPU):开机后作为 cllama 子节点反向隧道注册 qwen3.8:27b 给服务器。关掉,隧道自动断开,服务器上的请求排队等它回来。
  3. 腾讯 IMA(面向公网的智能体,连着知识库):它需要的不是"连到 cllama 服务器"------它需要一个 OpenAI 格式的 API 地址。

手机端的IMA里把 API 地址填成 cllama 的 /api/openai,再配上 token,IMA 就直接以 OpenAI 客户端身份访问你自己的模型了。再写个skill让它查询vector知识库里的检索由 bge-m3 在服务器上本地完成并投影到postgres里;而真正"会说话"的推理,则顺着隧道落到 Windows 的 qwen3.8:27b 上。

于是生活变成了这样:平时 Windows 关着,IMA 和服务器安静地待机;等我有空,把 Windows 一开,隧道自动接上,IMA 立刻就能通过公网 API token 直连我的私有模型去处理知识,中间只靠 cllama 这条隧道牵着。没有 GPU 租赁,没有复杂的端口映射,直接开始大规模学习新知识,探索新世界咯。从今天起,关心粮食和蔬菜,中医和种地我来啦...

好了,用了这么长时间大模型,第一次开始用模型提速写文章,之前怎么都在手搓我也很是诧异;看到ASCII的流程图,一眼AI哈。这篇文章先让3.6生成了一遍,就是技术description,再用3.8也不太行,切成deepseek重写了,结果还是给我一顿胡扯,尤其是IMA的部分。

相关推荐
深圳老胡9 小时前
STM32F4 OTA升级:单App与双App方案优缺点对比
笔记·stm32·单片机·代码规范
yi01117 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
Setsuna_F_Seiei18 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
志尊宝18 小时前
Vue3 零基础每日笔记(073):keep-alive 页面缓存实战——列表页返回不丢状态
vue.js·笔记·缓存·#vue #前端 #前端开发·#javascript·#vue.js
weixin_4481199420 小时前
Datawhale Easy Data × AI:笔记1 已重做,看新的笔记
笔记
要开心吖ZSH21 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
YYYing.21 小时前
【Agent系列 (二) 】大语言模型基础
人工智能·语言模型·自然语言处理·agent
咖啡忍者1 天前
【SAP】程制造生产计划PP-PI(Production Planning for Process Industries)
笔记
大模型真好玩1 天前
从 SDK 到成熟智能体:拆解 LangChain、Pi、DeepSeek Harness、Claude Code的本质区别
人工智能·agent·deepseek
梦在远山后1 天前
通过 WSS 让 Server 安全调用 Desktop 本地工具(下01):Ticket、人工确认、幂等与断线对账
python·langchain·agent