# @alia\.onl/server 中文文档

规范地址：https://npmcn.com/package/%40alia.onl/server/

版本：1\.3\.1
npm 元数据更新时间：2026-10-26T09:45:35.855Z
中文译文更新时间：2026-11-06T13:26:30.852Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40alia.onl/server
原文对照：https://npmcn.com/package/%40alia.onl/server/?lang=original
项目主页：https://github.com/OxyHQ/Alia#readme
源码仓库：https://github.com/OxyHQ/Alia

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

- 包体积（解压后）：184 kB，21 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-09-18T02:33:48.102Z
- 最新版本发布：2026-10-26T09:45:35.195Z
- 近 30 天下载量：3138（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

Alia的服务器侧流客户端——一个用于后端的打出事件流,可以调用Alia的产品API

## 安装

```sh
npm install @alia.onl/server
```

也可以使用：`pnpm add @alia.onl/server`、`yarn add @alia.onl/server`、`bun add @alia.onl/server`

## README

# @ alia.onl/ 服务器

阿丽雅的客户端 **后端** 给阿丽亚打电话.

`@alia.onl/sdk` 是客户端 SDK: 反应和反应原生组件, 钩子, a 浏览器侧流读取器. 这个包是另一半,没有反应,没有DOM 外加 `fetch` 财务报告和审定财务报表 `ReadableStream`,无附属关系,节点22+. 一号 转向 `/v1/chat/completions` 并赏赐你一种能写实的、 写作.

## 为什么它存在

阿丽雅可以在溪上写这些东西:

| 在电线上 | 这是什么 |
| --- | --- |
| `data: {…choices[0].delta.content}` | 助理文本三角洲 |
| `data: {…choices[0].delta.reasoning}` | 推理三角洲 |
| `event: alia.tool_result` + 键 `data: {…}` | 命名的产品事件 |
| `data: {…, "alia_meta": {"synthetic": true}}` | 即时信息 a **年龄** 服务器在提供者死后写出; 当前服务器以下面的错误有效载荷结束一个失败的转折 |
| `data: {"error":{"code":"agent_unavailable"}}` | 阿丽雅拒绝,中游 |
| `data: [DONE]` | 结束符 |

每个从服务器打给阿丽亚的消费者 都为此写了自己的读者 每个都有一个不同的子集。 昂贵的是错误的有效载荷:a 没有分行的读者 要么扔出一个赤裸的502 不命名, 或 - 更糟糕的是, 两者 发生在生产。 此软件包使该形状成为已键入 `error` 事件 携带服务器本身 `code`,所以消费者不能不看到它.

## 安装

```sh
bun add @alia.onl/server   # or npm / pnpm / yarn
```

## 使用

```ts
import { AliaServerClient } from '@alia.onl/server';

const alia = new AliaServerClient({
  baseUrl: 'https://api.alia.onl',
  // Your product's Oxy service token — the bearer Oxy bills (ADR 0007).
  token: () => getMyServiceToken(),
});

const stream = await alia.stream(
  { agentId: MY_AGENT_ID, messages: [{ role: 'user', content: 'Hola' }] },
  { signal: request.signal },
);

for await (const event of stream) {
  switch (event.type) {
    case 'text':      process.stdout.write(event.text); break;
    case 'reasoning': break;
    case 'event':     onProductEvent(event.event, event.data); break;
    case 'finish':    break;
    case 'error':     throw new MyChatError(event.code);   // the SERVER's code
    case 'done':      break;
  }
}
```

这个 `switch` 以上是详尽无遗的: `AliaStreamEvent` 一个封闭的工会,所以 `default: never` 分支使新事件类型成为编译错误而不是一个 默然倒下相框.

### 它拥有的

-   **内容类型检查 .** 两百块不是 `text/event-stream` 是一个 `AliaStreamError('not_event_stream')`从来没有一个缓冲后退的剖面.
-   **(原始内容存档于2018-03-26). SSE Framing.** 多线 `data:`,注释框, CRLF, `event: message` 作为 SSE 的默认名称,并且字节边界在任何地方下降——包括 (原始内容存档于2017-09-28). Middle UTF-8. **文字三角洲是逐字生成的,从未合并**,因为 消费者重新组装跨块标记取决于准确的字节.
-   **`[DONE]`。 。 。 .** 迭相止于上. 一个没有它而结束的身体是 `AliaStreamError('truncated')` ——短转不得读作短转.
-   **错误块**,作为 `error` 活动 `code`, (中文(简体) ), `message`, (中文(简体) ), `type`, (中文(简体) ), `param`。 。 。 .
-   **中止 .** 通过一个 `AbortSignal`请求和身体都读了 离开 `for await` 提前取消遗体.
-   **非-2xx) (中文(简体) )**,作为 `AliaRequestError` 与 `status` 当尸体被携带的时候 一个, `code`. 身体的道具被故意不保留.

### 错误

```ts
import { AliaRequestError, AliaStreamError } from '@alia.onl/server';
```

`AliaStreamError` 携带 `failure` (单位:千美元) `not_event_stream`, (中文(简体) ), `no_body`, (中文(简体) ), `malformed_json`, (中文(简体) ), `unexpected_chunk`, (中文(简体) ), `choice_without_delta`, (中文(简体) ), `content_not_string`, (中文(简体) ), `truncated`, (中文(简体) ), `oversized`和 `shape` - 犯规者 块的钥匙,它的 `choices` 长度或类型,以及任何 `error.code`。 。 。 . `shape` 持有 无内容:不是助手的文字,也不是人物的快取. 全部记录下来.

`AliaRequestError` 携带 `status` 财务报告和审定财务报表 `code`。 。 。 .

终止投出 `Error` 谁 `name` 实值 `AbortError`,作为 `fetch`没错.

### 你自找麻烦吧

```ts
import { readAliaEventStream } from '@alia.onl/server';

for await (const event of readAliaEventStream(response.body!, { signal })) { … }
```

## 证书

阿丽雅收到呼叫产品 **氧化服务符** 作为承载者。 A 类 个人的持单人从未被转交。 换个签到的人不会 完全通过产品后端: 个人用自己的设备打开代理 氧化会话通过 `@alia.onl/sdk` (Alia ADR 0020) (英语). `headers` 接受一个 函数,用于一个在每次请求中其值会发生变化的标题.

## 测试

测试装置不是手写块。 由API公司生产 拥有SSE作家—— `packages/api/src/lib/streaming-helpers.ts`, (中文(简体) ), `.../chat/sse-writer.ts`, (中文(简体) ), `.../sse-emitter.ts` ——直接进口,故有变动 alia在电线上做的试验 都失败了.

```sh
bun run typecheck
bun run test
bun run build
```

## 许可证

阿帕奇2.0 (英语). 见 `LICENSE` 财务报告和审定财务报表 `NOTICE`。 。 。 .

## 明确停止 (1.3)

对于经过验证的人类会话或精确的仅应用证书,请先选择一个UUID v4 `stream()` 供应 `turnId`。 。 。 . `cancelTurn({ turnId, conversationId })` 使用该 相同的认证和表面头; `conversationId` 必须是值 在录取时知道,包括缺席 新的谈话。 它的信号是 独立于流的中止符号 。 中止后一选项只解开 并允许背景补全.

`createAliaTurnControl(client, { controller, lifetimeSignal, conversationId })` 创建 UUID 在任何同步准备之前 发送其 `id` 作为请求 `turnId`· ; 调用 `stop()` 只是为了故意停止。 它重复了同时停止通话, 等待最多十秒的确认,然后中止控制器. 一个被拒绝的停止拒绝 并且仍然可以重试。 直接中止流控制器以进行视图撕毁 。 分开 `lifetimeSignal` 栅栏账户变更或经认证的所有人处置; 它不能是流信号,因为一个取消的SSE框架可以关闭 在确认控制请求之前的流程。 帮助者从不刷新或 选择账户. 等着 `finish()` 在处理呼叫器的连接运输之前 每个 HTTP 工具 继续获得一个新的手柄,停止本地工具防止再发子弹 而不取消已经完成的工作.

在采用这个制片人之前部署API接收器. 授权服务/渠道 没有可核查的原始角色的呼叫者必须省略 `turnId`; 现有的 聊天仍然支持,但他们不能使用此取消道 。 细节和 结算/重试限额: [明确停止](https://npmcn.com/package/docs/explicit-chat-stop.md)。 。 。 .

## 常见问题

### @alia\.onl/server 是什么？

Alia的服务器侧流客户端——一个用于后端的打出事件流,可以调用Alia的产品API

### 如何安装 @alia\.onl/server？

在项目目录运行 npm install @alia\.onl/server，或使用 pnpm add / yarn add / bun add。

### @alia\.onl/server 支持 TypeScript 吗？

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

### @alia\.onl/server 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @alia\.onl/server 需要什么版本的 Node\.js？

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

### @alia\.onl/server 可以商用吗？

@alia\.onl/server 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @alia\.onl/server 的下载量有多少？

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

### @alia\.onl/server 还在维护吗？

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

