ll-llm:一个零依赖、可插拔的 OpenAI 兼容 LLM 代理

# ll-llm:一个零依赖、可插拔的 OpenAI 兼容 LLM 代理

开源地址:github.com/371684029/ll-llm

## 背景

日常开发中经常要在不同 LLM 后端间切换------Cursor CLI 做代码、OpenCode 跑分析、OpenAI 调接口。每个后端格式不同、认证不同、模型名不同,切一次改一堆配置。更麻烦的是,大多数 AI 工具(Continue.dev、Aider、VS Code 插件)只认 OpenAI API 格式。于是写了 ll-llm------零运行时依赖的 HTTP 代理,统一包装成 OpenAI 兼容接口。

## 一句话讲清楚

把任何 LLM 后端包装成标准 OpenAI API,对接任何 OpenAI SDK 客户端。

复制代码
你的代码 / IDE 插件
      │  POST /v1/chat/completions
      ▼
   ll-llm (端口 6666)
      │
      ├── cursor Provider   → spawn cursor agent
      ├── opencode Provider → HTTP API (规划中)
      └── openai Provider   → HTTP API (规划中)

## 目前做了什么

第一个版本完成 Cursor CLI 后端代理:模型映射(gpt-4o/claude-3.5-sonnet → Cursor 内部 ID)、流式+非流式双模式、base64 图片多模态、agent 模式切换(ask/agent/plan)、三种密钥配置方式 + 启动格式校验。

复制代码
from openai import OpenAI
client = OpenAI(base_url="http://localhost:6666/v1", api_key="any-key")
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "解释量子计算"}],
)

## 技术设计

1. 零运行时依赖------只用 node:http、node:child_process、node:fs,打包 15KB,不需要 node_modules。

2. Provider 可插拔架构------核心接口只有两行:

复制代码
export interface LLMProvider {
  readonly name: string;
  chat(options): AsyncGenerator<ChatChunk>;
}

路由层 handleChat 只调 provider.chat(options),不碰内部实现。加新后端零改动路由。

3. 模型解析三层优先级------显式 mode 字段 > 模型名后缀(gpt-4-ask) > 默认 agent。

4. Fail-fast 启动校验------密钥缺失或格式不对直接 exit(1),避免"服务跑了才发现 500"。

## 如何扩展新后端

三步:1) 写 ~50 行实现 LLMProvider 接口 → 2) index.ts 注册一行 → 3) model-map.ts 加映射。路由代码不动。

## 部署

复制代码
tar -xzf ll-llm.tar.gz && cd dist
echo 'CURSOR_API_KEY="crsr_你的密钥"' > .env
node index.js   # 无需 npm install

## 后续计划

接入 OpenCode Go 的 deepseek-v4-pro 作为第二个后端,改 model 字段即可在多个后端间透明切换。


GitHub: github.com/371684029/ll-llm | MIT | Node.js ≥ 20 + Cursor CLI

相关推荐
山河木马2 小时前
GPU自动处理专题3-NDC怎么映射成屏幕像素坐标(视口变换)
javascript·webgl·图形学
Appthing4 小时前
在 TanStack Start 中使用 VitePWA 的正确配置
javascript
前端炒粉5 小时前
手写promise
java·前端·javascript
mONESY5 小时前
Node.js fs 文件系统模块 四种读写方案全解析
javascript·后端
Larcher5 小时前
从回调地狱到优雅异步:Node.js 文件操作进化史
javascript·后端·架构
熊猫钓鱼>_>5 小时前
Electron:当 Web 技术统治桌面
大数据·前端·javascript·人工智能·架构·electron·agent
江华森6 小时前
Python 实现高德地图找房(三):地图可视化与高德 JS API
开发语言·javascript·python
谭光志6 小时前
AI 是怎么操作浏览器的——browser use 实现原理
前端·javascript·ai编程
用户3074596982076 小时前
GatewayWorker 从零到一完整指南
javascript·php