@adia-ai/llm

中文文档
0.8.66发布于 2026/09/15MITTypeScriptES Module零依赖近 30 天下载 2528

提供者-不可知 LLM 客户端 – 人文 / openai / 有统一聊天() + streamChat() 外观的 gemini 适配器. 被AdiaUI的聊天壳和A2UI生成管道所使用;在浏览器(有代理Url)和节点中工作.

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 浏览器代理模式
  4. 智能代理( 提供者中立体)
  5. 通过代理( 真正的上游正体)
  6. 生产部署
  7. 子路径导出

@adia-ai/llm

提供者不可知的LLM客户端. 3个适配器(人体活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性 单曲后面 chat() + 键 streamChat() 外相为相. 在浏览器和节点中工作.

安装

npm install @adia-ai/llm

使用量

import { chat, streamChat } from '@adia-ai/llm';

// Direct API call (apiKey owned by the caller)
const reply = await chat({
  apiKey: 'sk-...',
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Hello' }],
});

// Streaming
for await (const chunk of streamChat({
  apiKey: 'sk-...',
  model: 'claude-haiku-4-5-20251001',
  messages: [{ role: 'user', content: 'Hello' }],
})) {
  if (chunk.type === 'text') process.stdout.write(chunk.text);
}

浏览器 dev-mode 警告( 自 v. 4. 3 起): 若为 createAdapter() 解决 apiKey 在浏览器中运行时,桥会发出一发口罩 console.warn (例如:. sk-ant-a…Fiw-),指出密钥会以请求头发送. 当地 def 罚款- 从不部署此形状警告已经解除 window.__adia_llm_key_warning_shown (每页装入一个警告). 用于生产、使用 代理模式 (下一节)保留密钥服务器侧.

浏览器代理模式

proxyUrl 通过服务器端代理端的路由,所以 API 密钥永远不会 到达浏览器。 客户端支持 两个代理形状 财务报告和审定财务报表 根据 URL 使用的自动检测 :

智能代理( 提供者中立体)

默认. 发送任意 proxyUrl 和转接不匹配 下方的样式 — 通常为您自己的后端路由, 如 /api/chat编辑 客户端会说单一的提供者中立的协议; 代理持有 API 键并内部发送到右上游适配器.

for await (const chunk of streamChat({
  proxyUrl: '/api/chat',
  provider: 'openai',          // optional — auto-detected from model
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Hello' }],
})) { /* ... */ }

送去代理的遗体:

{
  "provider": "openai",
  "model": "gpt-4o-mini",
  "messages": [{ "role": "user", "content": "Hello" }],
  "system": "...optional...",
  "maxTokens": 4096,
  "temperature": 0.7,
  "stream": true
}

每个上游提供者和管道的代理重构 SSE 字节 逐字记录。 参考智能代用程序已启动 packages/llm/core/server.js 在聊天- ii repo( 路由 : POST /api/chat, (中文(简体) ), 加号 /api/generate, (中文(简体) ), /api/generate/reset, (中文(简体) ), /api/convert-html 页:1 a2UI 生成管道。 没错 没有 与 npm 一起运出 软件包 – 它是在repo apps的开发便利.

A 类 thinking: true 请求还接受可选 thinkingBudget (gh#3517):如果打电话者姓名不详 maxTokens人类的身体 建设者本身的违约增加为预算外加4096个回答符号 头室而不是平原的4096默认,所以默认的4000个托肯 认为预算不是无声无息地被压抑的 以留下任何回答的余地. 明确 maxTokens ;适配器仍然执行 提供方层budget_tokens >= 1024, (中文(简体) ), < max_tokens) (中文(简体) ).

通过代理( 真正的上游正体)

何时 proxyUrl 匹配 /api/llm/<provider>/<rest> (维特-德夫) 使用的形状 chat-ui 应用程序,客户端切换通过 模式。 代理是“ dumb ” —— 它只是将 URL 重写为真实 上游(https://api.<provider>.com/<rest>)和向后字节 不变。 客户发送 真实的上游形状 加减 适配器的普通认证头.

这是自动发现的,你没有明确选择它。 如果挂载 维特代理如:

// vite.config.js
server: {
  proxy: {
    '/api/llm/anthropic': {
      target: 'https://api.anthropic.com',
      rewrite: (p) => p.replace(/^\/api\/llm\/anthropic/, ''),
    },
  },
},

...然后经过 proxyUrl: '/api/llm/anthropic/v1/messages' 将 生成上游直接理解的请求.

形状URL 模式体质认证信头使用时间
聪明/api/chat (任何东西非通过)提供者中性无( 服务器持有密钥)您控制代理并想要一条跨供应商的路径
通过/api/llm/<provider>/<rest>真实的上游形状适配器本身(如:. x-api-key(中文(简体) )您正在使用 Vite/nginx URL 重写, 并且不希望服务器端发送

探测生命 adapters/index.js - 登记表 /\/api\/llm\/[a-z]+(\/|$)/。 。 。 .

生产部署

也没有 server.js (智能代理引用)或任何 Vite/nginx URL 重写( 通过引用) 由 npm 包运出 —— 两者 是开发时间的便利 用于在repo应用程序。 生产 消费者必须 部署自己的代理: 持有 您的提供者 API 密钥以及其中之一 :

  1. 说到智能代理合同 ——接受提供者中性 (b) 上文所记载的机构,以及按提供方发出的通知。 见 packages/llm/core/server.js 执行参考文件(Express +) chat编号 :streamChat 从这个包,~150 LOC).
  2. 说通过合同 ——曝光 /api/llm/<provider>/<rest> 向 https://api.<provider>.com/<rest> 用真实的 API- key 头 注入服务器侧 。 见上文Vite 配置片段 形状; 50 行 nginx 或 Express 代理操作精细.

无论哪一份合同都可行——客户自动发现,由你的代理 按 URL 形状执行。 选一个符合你已有的 基础设施.

平台本地网关(不需要代理代码)

如果您的 VM 运行在一个管理下的平台上, 提供 LLM 网关 土生土长(例如:. exe.dev (英语) 时间 http://169.254.169.254/gateway/llm/<provider>/<rest> 包括订阅的每份越野产品),最清洁的生产 跳过上面和刚刚的合同 倒数代号 /api/llm/* 通过Caddy/nginx直接到达平台终点无 API 密钥 在应用配置中,没有手卷代理代码,没有每个周期维护—— 该平台处理认证、计费、模型选择.

AdiaUI回波显示了这种模式. infra/caddy/llm-gateway.snippet 为exe.dev VMs. §188 (v0.5.5) 保存一个空投的 Caddy文件片段 弧形删除了 ~ 155 LOC 手卷路由 server.js 内 支持这种方式。 见 .claude/docs/specs/exe-dev-platform-reference.md

  • .claude/docs/guides/production-llm-proxy-deployment.md 全文 食谱(建筑迁移弧生活在git历史中,大约为v0.5.5.

0b阶段侦察清单:在手卷一个代理前,检查是否 您的平台提供了一个本地的平台。 寻找 LLM Gateway 编号 : AI 编号 : Inference 在平台的文档。 其他类似平台 网关: Cloudflare AI网关, AWS Bedrock 代理, Azure OpenAI 私人终点 匹配形状; 检查定价; 偏好平台本地化 手卷起来,如果有的话.

子路径导出

子路径目的
@adia-ai/llm默认 : chat, (中文(简体) ), streamChat, (中文(简体) ), createClient
@adia-ai/llm/bridgecreateAdapter ——将外观包裹在A2UI管道的适配器接口中
@adia-ai/llm/stubStubLLMAdapter 确定测试适配器
@adia-ai/llm/adapters/anthropic直接适配对象
@adia-ai/llm/adapters/openai直接适配对象
@adia-ai/llm/adapters/gemini直接适配对象

版本与发布记录

@adia-ai/llm 共发布 183 个版本,首次发布于 2026/05/06;过去 12 个月发布了 183 个版本。

版本发布日期距今
0.8.66latest2026/09/151 个月前
0.8.652026/09/141 个月前
0.8.642026/09/141 个月前
0.8.632026/09/131 个月前
0.8.622026/09/111 个月前
0.8.612026/09/111 个月前

关于 @adia-ai/llm 的常见问题

@adia-ai/llm 是什么?

提供者-不可知 LLM 客户端 – 人文 / openai / 有统一聊天() + streamChat() 外观的 gemini 适配器. 被AdiaUI的聊天壳和A2UI生成管道所使用;在浏览器(有代理Url)和节点中工作.

如何安装 @adia-ai/llm?

在项目目录运行 npm install @adia-ai/llm,或使用 pnpm add / yarn add / bun add。

@adia-ai/llm 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adia-ai/llm 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adia-ai/llm 可以商用吗?

@adia-ai/llm 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adia-ai/llm 的下载量有多少?

根据 npm 官方下载统计,@adia-ai/llm 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,528 次,日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adia-ai/llm 还在维护吗?

最新版本 0.8.66 发布于 2026/09/15(1 个月前);至今共发布 183 个版本,其中过去 12 个月发布了 183 个;首次发布于 2026/05/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。