@formio/uag-openai

中文文档
2.0.0发布于 2026/11/13MITCommonJS构建来源已验证近 30 天下载 3234

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

中文使用文档
文档目录6 节
  1. 设置
  2. 实例
  3. 决定
  4. 选择模型
  5. 如何运作
  6. 在自己的服务器上使用

@formio/uag-openai (英语)

表格.io UAG › 发动机 › 此页

用于 OpenAI 引擎 UAG 代理 API。实例有两种:

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

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

npm install @formio/uag-openai

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

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

它的任务是Agentic Formflow,因此在自办项目上,UAG还需要一个 LICENSE_KEY 包括项目终点的 UAG(见 许可证发放Form.io的托管服务项目不需要。 表格的聊天不需要Form.io OpenSource或主机项目上的许可证.

设置

设置变量默认
kindUAG_ENGINE_<NAME>_KIND, (中文(简体) ), OPENAI_KINDagent· ; decision aPI决定
modelUAG_ENGINE_<NAME>_MODEL, (中文(简体) ), OPENAI_MODEL需要; 没有默认
apiKeyUAG_ENGINE_<NAME>_API_KEY· ; OPENAI_API_KEY 只用于 OpenAI 本身openAI 本身需要(机密)
baseURLUAG_ENGINE_<NAME>_BASE_URL, (中文(简体) ), OPENAI_BASE_URLhttps://api.openai.com/v1
structuredOutputUAG_ENGINE_<NAME>_STRUCTURED_OUTPUT, (中文(简体) ), OPENAI_STRUCTURED_OUTPUTjson_schema
reasoningEffortUAG_ENGINE_<NAME>_REASONING_EFFORT, (中文(简体) ), OPENAI_REASONING_EFFORT未发送
apiUAG_ENGINE_<NAME>_API, (中文(简体) ), OPENAI_APIresponses 为OpenAI本身; chat 用于任何其他服务器
maxOptionsUAG_ENGINE_<NAME>_MAX_OPTIONS255,决定 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, (中文(简体) ), gemini),它们有正确的端点和所构建的密钥. 其它兼容 OpenAI 的服务器 baseURL; 检查其文件,以查找模版标识,并查找其标识 structuredOutput 它支持的模式.

决定

与 kind 设置为 decision一个实例是OpenAI上的决定引擎 决定 API它回答了同样的问题 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,具有优先于环境的选项:

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

驾照:麻省理工.

版本与发布记录

@formio/uag-openai 共发布 13 个版本,首次发布于 2026/10/30;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.0latest2026/11/132 天前
2.0.0-rc.11rc2026/11/105 天前
2.0.0-rc.102026/11/087 天前
2.0.0-rc.92026/11/079 天前
2.0.0-rc.82026/11/069 天前
2.0.0-rc.72026/11/0610 天前

关于 @formio/uag-openai 的常见问题

@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 和提交记录判断。