# @aparte/provider-openai-compat 中文文档

规范地址：https://npmcn.com/package/%40aparte/provider-openai-compat/

版本：1\.0\.0
npm 元数据更新时间：2026-11-07T09:14:02.746Z
中文译文更新时间：2026-11-06T08:56:32.866Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aparte/provider-openai-compat
原文对照：https://npmcn.com/package/%40aparte/provider-openai-compat/?lang=original
项目主页：https://apartejs.dev/providers/ai/openai-compat/
源码仓库：https://github.com/apartejs/aparte

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：131 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- peer 依赖：@aparte/core \>=1\.0\.0 \<2\.0\.0
- 首次发布：2026-07-23T17:54:04.390Z
- 最新版本发布：2026-11-07T09:14:02.396Z
- 近 30 天下载量：6106（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：66（近 12 个月 66 个）

## 中文简介

一个OpenAI兼容的聊天-完成任何/v1端点的适配器——OpenAI,Mistral,OpenRouter,Z.ai,Groq,LM Studio,Ollama和好友,通过预设或平面配置.

## 安装

```sh
npm install @aparte/provider-openai-compat
```

也可以使用：`pnpm add @aparte/provider-openai-compat`、`yarn add @aparte/provider-openai-compat`、`bun add @aparte/provider-openai-compat`

## README

# @ aparte/ provider-openai-compat (英语)

**一个** 每个 OpenAI 兼容的适配器 `/chat/completions` 端点 — OpenAI, Mistral, OpenRouter, Z.ai, Groq, 在一起, LM Studio, Ollama (英语:`/v1`朋友都这么说 电线格式,所以他们共享一个单, **零依赖性** 格式适配器。 供应商只有差异 通过数据(基准 URL、 认证头、 品牌),通过配置或从中选择 `presets`。 。 。 .

```bash
npm install @aparte/provider-openai-compat @aparte/core
```

`@aparte/core` 是唯一一个 **同伴依赖**;这个适配器本身没有.

```ts
import { createOpenAICompatProvider, presets } from '@aparte/provider-openai-compat';
import { aparteGlobalConfig } from '@aparte/core';

aparteGlobalConfig.registerAIProvider(createOpenAICompatProvider(presets.OPENROUTER));
// …or any compat endpoint, no preset needed:
aparteGlobalConfig.registerAIProvider(createOpenAICompatProvider({ id: 'groq', baseURL: 'https://api.groq.com/openai/v1' }));
```

`@aparte/core` 是一个 **同伴依赖**. 适用于OpenAI-compat家族以外的供应商 (Anthropic,双子座, [`@aparte/provider-ai-sdk`](https://npmcn.com/package/%40aparte/ai-sdk) 换句话说.

**也在服务器上工作.** 这里什么也碰不到DOM,核心解决了它的DOM无 在节点的导出条件下输入 —— 这样您就可以从后端重用这个适配器, a 电子主进程或SSR通过,而不是重写一个. 对 `buildRequest` 编号 : `parseStream` 与你自己 `fetch` 当您已经拥有此请求时( 您的) `AbortSignal`, (中文(简体) ), 或把它交给 `createAparteChatHandler` 从核心.

> 部分 [独立](https://github.com/apartejs/aparte) 单相机 仅限无害环境管理. 见 **供应商** 用于全部使用的文档中的指南.

## 上下文窗口

`fetchModels` 填充每个模型的 `contextWindow`,这是标志度量仪和 紧固度量相. 它读取了第一个正整数 `context_length` (开放路透,共同), `max_model_len` (vLLM), (英语), `context_window` (希腊语)和 `max_context_length` (伊斯兰教) `GET /models` 输入。 本地服务器也需要 说哪一个,因为他们大半不开窗 `/models`数字 :

```ts
createOpenAICompatProvider({ id: 'my-box', baseURL: 'http://localhost:8080/v1', isLocal: true, server: 'llamacpp' });
```

与 `server` 设置中,一个额外的请求会到端点的出处( `/v1` 路径 (被剥去) **有效** 窗口胜过训练后的最大值,因为那是 服务器截图 :

| 预设 | `server` | 读取 | 页:1 |
| --- | --- | --- | --- |
| `LMSTUDIO` | `lmstudio` | `/api/v1/models`: 装入的型号 `config.context_length` | 一个已卸载的型号没有 |
| `OLLAMA` | `ollama` | `/api/ps`: 加载跑者 `context_length` | 未加载的模型获得无 |
| `LLAMACPP` | `llamacpp` | `/props`数字 : `default_generation_settings.n_ctx` | 每个插槽,服务模式的一个值 |
| `VLLM` | `vllm` | `max_model_len` 打开 `/v1/models` | 无额外请求 |

一个被卸载的模型没有窗口,而只得到它训练的极限:这个数字不是什么 服务器将运行。 失败的探测器( CORS, 旧服务器, 关闭端口) 离开 没有窗口的模型并记录一个警告; 它永远不会失败模型列表.

您声明的模型 `models` 带有 `contextWindow` 胜过读取的任何东西 服务器.

`LLAMACPP` (单位:千美元)`http://localhost:8080/v1`和 `VLLM` (单位:千美元)`http://localhost:8000/v1`)是预设 像其他人一样:本地的,密钥可选.

## 来源和引文

一份引用其来源的回信会带他们来: 提供者以一个结束转弯 `sources` 事件之前 `done`在答复中列出资料来源,并列出 每一个引用的芯片 。 没有要配置的东西——一个不会发出引用的结束点 溪流的原样.

```ts
import { createOpenAICompatProvider, presets } from '@aparte/provider-openai-compat';
import { aparteGlobalConfig } from '@aparte/core';

// Perplexity's Sonar models search the web and cite what they read.
aparteGlobalConfig.registerAIProvider(createOpenAICompatProvider(presets.PERPLEXITY));
// OpenRouter's `:online` models and the OpenAI search models cite through annotations.
aparteGlobalConfig.registerAIProvider(createOpenAICompatProvider(presets.OPENROUTER));
```

两个形状读作:

-   **`url_citation` 说明** (开放AI,开放路透) `delta.annotations`,或打开 `message.annotations` 用于流出整个消息形状的服务器。 他们携带 他们支持的段落被抵消,成为引用的 `start` 编号 : `end`; 一个 将文字的末尾带入其中.
-   **困惑的 `citations` 财务报告和审定财务报表 `search_results`**在块的根部,没有 抵消: 文本带 `[1]`, (中文(简体) ), `[2]`,因此文本中发现的每个标记成为 引用(`marker: true`芯片在那个来源上占据了标记的位置 一个标记 名称没有来源作为文本.

引用的同一页有1个来源(由URL复制),1个来源有两个来源 光泡显示为“+1”。 一个 URL 作为终点传递 寄出: 核心的渲染器只链接到它的消毒器允许的图案, 所以 `javascript:` 網址 显示为文本,而不是链接.

这个 `PERPLEXITY` 预设声明其模型( q)`sonar`, (中文(简体) ), `sonar-pro`, (中文(简体) ), `sonar-reasoning-pro`, (中文(简体) ), `sonar-deep-research`因为困惑没有 `GET /models` 询问;通过自己的 `models` 以更改列表.

非流化答案( :`stream: false`)的读取方式相同 `parseSources`: 当 引用任何东西,它解决了流 流的答案是,它的文本,它的源,它的 结束——通过直接运输,并通过你的后端.

## 错误和结束原因

响应的服务器 `200` 然后流出 `data: {"error": {...}}` (LM Studio on a) (英语) 上下文溢出、 OpenAI 和 vLLM 中游) 以一个 `error` 包含的事件 它的信息, 不是一个空的完整回复 。 最后一个 `finish_reason` 流量 编辑 `done` 事件为 `finishReason` (单位:千美元)`stop`, (中文(简体) ), `length`, (中文(简体) ), `tool-calls`, (中文(简体) ), `content-filter`, (中文(简体) ), `other`) (中文(简体) ).

## 常见问题

### @aparte/provider-openai-compat 是什么？

一个OpenAI兼容的聊天-完成任何/v1端点的适配器——OpenAI,Mistral,OpenRouter,Z\.ai,Groq,LM Studio,Ollama和好友,通过预设或平面配置\.

### 如何安装 @aparte/provider-openai-compat？

在项目目录运行 npm install @aparte/provider-openai-compat，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@aparte/core（\>=1\.0\.0 \<2\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aparte/provider-openai-compat 支持 TypeScript 吗？

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

### @aparte/provider-openai-compat 支持 ESM 还是 CommonJS？

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

### @aparte/provider-openai-compat 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aparte/provider-openai-compat 可以商用吗？

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

### @aparte/provider-openai-compat 的下载量有多少？

根据 npm 官方下载统计，@aparte/provider-openai-compat 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,106 次，日均约 204 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aparte/provider-openai-compat 还在维护吗？

最新版本 1\.0\.0 发布于 2026/11/07（今天）；至今共发布 66 个版本，其中过去 12 个月发布了 66 个；首次发布于 2026/07/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

