Microkernel · Plugins · Multi-language

把模型选择权还给开发者

PolyLLM 是一个微内核、插件化的大模型统一接入层。核心只负责协议、注册、解析与参数策略; 厂商适配独立成包,按需安装、独立演进。

  • 统一 API
  • 模型别名与快照
  • 参数策略
  • 本地可视化配置

Why PolyLLM

极简核心,按需插件

不把几十个供应商依赖塞进一个“全家桶”,而是让每个团队只安装自己需要的部分。

01

微内核核心

统一请求、响应、ModelSpec、注册表、别名解析与参数策略,不包含任何供应商 HTTP 逻辑。

02

插件自治

OpenAI、DeepSeek、Anthropic、OpenAI-compatible 独立成包,供应商 API 变化时只更新对应插件。

03

模型版本可控

ModelSpec 声明能力、参数约束、上下文窗口和快照;别名指向常用模型,快照锁定版本。

04

本地 Studio

通过 CLI 启动本机可视化配置界面,选择厂商、获取模型、测试连接并生成项目配置。

Quick Start

三分钟接入第一个模型

先用本地 Studio 完成选择和配置,再把生成物放进你的项目。

启动可视化配置
npx @you-want/polyllm-cli studio

CLI 会启动 http://127.0.0.1:5177,并自动打开浏览器。

  1. 选择厂商 同时启用多家厂商,为每家指定默认模型。
  2. 获取模型 填写 Key 与 Base URL 后本机探测;无法获取时手动添加模型 ID。
  3. 测试连接 对单个模型发起最小请求,确认 Key、模型与网关可用。
  4. 生成配置 下载 polyllm.config.json、环境变量模板和 TypeScript 接入代码。
npm install @you-want/polyllm-core \
  @you-want/polyllm-openai \
  @you-want/polyllm-deepseek
import { createLLM } from '@you-want/polyllm-core'
import { openAIPlugin } from '@you-want/polyllm-openai'
import { deepSeekPlugin } from '@you-want/polyllm-deepseek'

const llm = createLLM({
  plugins: [openAIPlugin, deepSeekPlugin],
  providers: {
    openai: { apiKeyEnv: 'OPENAI_API_KEY' },
    deepseek: { apiKeyEnv: 'DEEPSEEK_API_KEY' },
  },
  paramPolicy: 'strict',
})

const response = await llm.chat('deepseek:chat', {
  messages: [{ role: 'user', content: '你好,PolyLLM' }],
})

Local Studio

官网只做引导,密钥留在本机

polly.raingpt.top 不提供 API Key 输入表单。真实配置界面由 CLI 在你的电脑上启动, 模型列表探测和连接测试都从本机发出。

  • API Key 只保存在当前浏览器会话中
  • 不写入 polyllm.config.json、日志或生成物
  • 生成配置只引用环境变量名称
  • 关闭标签页后会话缓存自动清空
npx @you-want/polyllm-cli studio --port 5177

Architecture

小核心,稳定协议

核心层不感知供应商细节,所有差异都收敛在插件边界内。

应用代码

使用统一 chat / chatStream API

PolyLLM Core

Registry · Resolver · ModelSpec · ParamPolicy

OpenAI
DeepSeek
Anthropic
OpenAI-compatible

Multi-language

先用 TypeScript 与 Python 跑通闭环

每种语言都遵循生态习惯:TS 显式传插件,Python 类型完备,后续再扩展 Rust、Go 与 Java。

TypeScript / Node.js

npm 包、显式插件注入、AsyncIterable 流式响应、严格类型。

可用

Python

独立 wheel、py.typed、async API、SSE 流式解析与动态自定义模型。

可用

Rust / Go / Java

等待核心协议稳定后,按各自生态的插件加载方式逐步扩展。

规划中

Security

默认不把密钥带进代码

环境变量引用

生成物使用 apiKeyEnv / api_key_env,业务代码不持有明文密钥。

本机探测

Studio 的模型列表和连通性测试通过 localhost 服务代理,不经过官网服务器。

可审计边界

官网没有输入框收集 Key;CLI 与插件源码开源,便于审查网络请求。