# @formio/uag-openai 中文文档

规范地址：https://npmcn.com/package/%40formio/uag-openai/

版本：2\.0\.0
npm 元数据更新时间：2026-11-13T11:26:36.283Z
中文译文更新时间：2026-11-15T09:19:07.352Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40formio/uag-openai
原文对照：https://npmcn.com/package/%40formio/uag-openai/?lang=original
项目主页：https://github.com/formio/uag#readme
源码仓库：https://github.com/formio/uag

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

- 包体积（解压后）：46.2 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.0\.0
- 运行依赖：2 个
- 首次发布：2026-10-29T17:11:57.528Z
- 最新版本发布：2026-11-13T11:26:35.863Z
- 近 30 天下载量：3234（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

Form.io Universal Agent Gateway(UAG):在OpenAI或任何服务器的聊天完成API(Ollama, vLLM, LM Studio, OpenRouter)上进行结构化提取,只读工具研究;在OpenAI上作出概率决定

## 安装

```sh
npm install @formio/uag-openai
```

也可以使用：`pnpm add @formio/uag-openai`、`yarn add @formio/uag-openai`、`bun add @formio/uag-openai`

## README

# @formio/uag-openai (英语)

[表格.io UAG](https://ai.form.io/developers) › [发动机](https://ai.form.io/developers/engines) › 此页

用于 OpenAI 引擎 [UAG 代理 API](https://ai.form.io/developers/agent-api)。实例有两种:

-   **代理人** (默认值):在OpenAI的响应API上取出并生成开放值,或通过Chat补全,在任何执行该API的服务器上取出并生成:本地模型(Ollama,vLLM,LM Studio)和路由器(OpenRouter). 当任务列出只读工具时 `uagTools`先和他们一起研究 Grok和双子座有他们自己的包 建在它上: [`grok`](https://ai.form.io/developers/engines#grok) 财务报告和审定财务报表 [`gemini`](https://ai.form.io/developers/engines#gemini)。 。 。 .
-   **决定**: 在 OpenAI 的“决定 API ” 上决定每个答案的概率的闭合设置字段, 如 [`jev`](https://ai.form.io/developers/engines#jev) 发动机。 见 [决定](https://npmcn.com/package/%40formio/uag-openai/#readme-decisions)。 。 。 .

列入 `formio/uag` 多克图像. 由 npm 安装 UAG 后, 在它旁边安装 :

```bash
npm install @formio/uag-openai
```

通过命名启用它,并设置它的模型和密钥:

```
UAG_ENGINES=openai
OPENAI_API_KEY=...
OPENAI_MODEL=<a dated model ID>
```

它的任务是Agentic Formflow,因此在自办项目上,UAG还需要一个 `LICENSE_KEY` 包括项目终点的 UAG(见 [许可证发放](https://ai.form.io/developers/deployment#licensing)Form.io的托管服务项目不需要。 表格的聊天不需要Form.io OpenSource或主机项目上的许可证.

## 设置

| 设置 | 变量 | 默认 |
| --- | --- | --- |
| `kind` | `UAG_ENGINE_<NAME>_KIND`, (中文(简体) ), `OPENAI_KIND` | `agent`· ; `decision` aPI决定 |
| `model` | `UAG_ENGINE_<NAME>_MODEL`, (中文(简体) ), `OPENAI_MODEL` | 需要; 没有默认 |
| `apiKey` | `UAG_ENGINE_<NAME>_API_KEY`· ; `OPENAI_API_KEY` 只用于 OpenAI 本身 | openAI 本身需要(机密) |
| `baseURL` | `UAG_ENGINE_<NAME>_BASE_URL`, (中文(简体) ), `OPENAI_BASE_URL` | `https://api.openai.com/v1` |
| `structuredOutput` | `UAG_ENGINE_<NAME>_STRUCTURED_OUTPUT`, (中文(简体) ), `OPENAI_STRUCTURED_OUTPUT` | `json_schema` |
| `reasoningEffort` | `UAG_ENGINE_<NAME>_REASONING_EFFORT`, (中文(简体) ), `OPENAI_REASONING_EFFORT` | 未发送 |
| `api` | `UAG_ENGINE_<NAME>_API`, (中文(简体) ), `OPENAI_API` | `responses` 为OpenAI本身; `chat` 用于任何其他服务器 |
| `maxOptions` | `UAG_ENGINE_<NAME>_MAX_OPTIONS` | `255`,决定 API 的限度和它所要付出的最多; 仅是决定 |

`<NAME>` 是实例名称,大写为 `-` 作为 `_`。一个案例本身的变量胜过共享的变量.

OpenAI 自己的变量, `OPENAI_API_KEY`, (中文(简体) ), `OPENAI_ORG_ID`, (中文(简体) ), `OPENAI_PROJECT_ID` 财务报告和审定财务报表 `OPENAI_CUSTOM_HEADERS`,仅发送给 OpenAI 本身(`api.openai.com`) (中文(简体) ). 一个实例 `baseURL` 是其它任何服务器,包括OpenAI前的代理服务器,都得不到任何服务: 给它自己的密钥 `UAG_ENGINE_<NAME>_API_KEY`,或不需要密钥的服务器。 格罗克,双子座和其他引擎 建造在这个引擎上 也没有得到它们.

`structuredOutput` 说服务器是如何被问到答案的:

| 模式 | 使用时间 |
| --- | --- |
| `json_schema` | 服务器支持严格的JSON schema响应格式:OpenAI,以及最近的vLLM,Ollama和OpenRouter模型. |
| `json_object` | 服务器支持JSON模式,但不支持计划. 计取入即出. |
| `prompt` | 服务器不支持 。 斯道入于即出,而取出从文而取出之. |

在每一个模式中,一个不是JSON对象的答案作为引擎故障而失败,而UAG将字段引导到下一个引擎.

## 实例

一个通过Ollama的本地模型,旁边是克洛德,没有钥匙:

```
UAG_ENGINES=jev,local:openai,claude
UAG_ENGINE_LOCAL_BASE_URL=http://ollama:11434/v1
UAG_ENGINE_LOCAL_MODEL=llama4:16x17b
CLAUDE_API_KEY=...
```

对于格罗克和双子座,使用自己的引擎(英语:[`grok`](https://ai.form.io/developers/engines#grok), (中文(简体) ), [`gemini`](https://ai.form.io/developers/engines#gemini)),它们有正确的端点和所构建的密钥. 其它兼容 OpenAI 的服务器 `baseURL`; 检查其文件,以查找模版标识,并查找其标识 `structuredOutput` 它支持的模式.

## 决定

与 `kind` 设置为 `decision`一个实例是OpenAI上的决定引擎 [决定 API](https://developers.openai.com/api/docs/guides/decisions)它回答了同样的问题 `jev` 有,在一项请求中包含所有任务的决定领域:

| UAG 问题 | 决定 API 问题 | 答复 |
| --- | --- | --- |
| 有/否(已处理、确认或拒绝的领域) | `predicate` | 它的概率 |
| 选择(无线电、选择、复选框) | `choice` | 选项、每个选项的概率和信心 |
| 分数( 定级) | `score` | 比例尺上的位置、每个级别的可能性和信心 |

```
UAG_ENGINES=decide:openai,writer:openai
OPENAI_API_KEY=...
UAG_ENGINE_DECIDE_KIND=decision
UAG_ENGINE_DECIDE_MODEL=gpt-6-luna
UAG_ENGINE_WRITER_MODEL=<a dated model ID>
```

报告答复 `calibrated: true`一样 `jev`'s, 和相同的阈值(`uagThreshold`, (中文(简体) ), `uagUncertainBand`适用。 OpenAI对这些概率不作校正保证,任何提供者也不得: `uag-eval --engine decide` 在依赖默认阈值之前,以及在改变模型时,使用自己标注的示例.

-   API下降的疑问没有定论,因此其领域被报告 `missing` 或由路由列表中的下一个引擎决定.
-   有400多个问题的请求被分成多个电话.
-   `maxOptions` 上限选项 。 更多选项的闭合设备进入代理引擎.
-   两者 `jev` 还有一个 `openai` 裁决实例可以启用; 在 `routing.decision` 从一个掉回另一个.

## 选择模型

没有默认模式: 设置 `model` 到一个特定的,日期已过时的型号ID,而不是移动的别名. 不同模型的答案不同,因此在切换前在自己标注的例子上进行比较(`uag-eval` (仅限决策引擎).

## 如何运作

-   **哪个API.** 在OpenAI本身的情况下,引擎使用反应API,它让当前模型在使用工具时有理性(Chat Fecutives拒绝一个推理模型上的工具). OpenAI 保存无任何信息(`store: false`: 该模型的推理带过研究的转折作为加密推理项目,随历史而回. 与任何其他服务器( E)`baseURL`),它使用Chat补全,由本地服务器和路由器执行. 设定 `api` 改为 `responses` 或者说 `chat` 选择自己,例如OpenAI前的网关.
-   **与OpenAI的约会.** OpenAI的严格模式腐蚀了计划约束它们的日期(当当年回到1000,1010,3362...),因此随着OpenAI本身,引擎会写出每个字段的格式(例如: `date`)并用图案来描述。 被测量到2026年10月;其他服务器保留了限制,UAG以两种方式都验证了每个值.
-   **采掘业** 提出一个请求,但以 `structuredOutput` 说 此引擎的值总是报告为 `suggested`,只返回请求的字段.
-   **研究:** 当任务列出只读工具时,模型可能会通过函数调用首先调用它们,最多 `agentApi.research.maxIterations` 转身 每通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通. 模型随后用被关闭的工具解答. 它从不写: UAG 验证这些值并保存它们本身. 研究需要支持函数调用的任务;在不调用的任务上,请求失败为引擎故障.
-   **失败 :** 拒绝 内容过滤器 短接的答案或不是JSON的答案作为引擎故障而失败,而UAG倒回了下一个引擎.
-   **终止 :** (用于研究, `agentApi.research.timeout`)中止请求,研究在下一次呼叫前停止.

## 在自己的服务器上使用

将其命名为配置而非 `UAG_ENGINES`,具有优先于环境的选项:

```js
const server = new UAGServer({
    engines: [{ name: 'local', type: 'openai', options: { baseURL: 'http://localhost:11434/v1', model: 'llama4:16x17b' } }],
});
```

驾照:麻省理工.

## 常见问题

### @formio/uag-openai 是什么？

Form\.io Universal Agent Gateway\(UAG\):在OpenAI或任何服务器的聊天完成API\(Ollama, vLLM, LM Studio, OpenRouter\)上进行结构化提取,只读工具研究;在OpenAI上作出概率决定

### 如何安装 @formio/uag-openai？

在项目目录运行 npm install @formio/uag-openai，或使用 pnpm add / yarn add / bun add。

### @formio/uag-openai 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/formio\_\_uag-openai 是否存在。

### @formio/uag-openai 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @formio/uag-openai 需要什么版本的 Node\.js？

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

### @formio/uag-openai 可以商用吗？

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

### @formio/uag-openai 的下载量有多少？

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

### @formio/uag-openai 还在维护吗？

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

