@formio/uag-openai (英语)
用于 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或主机项目上的许可证.
设置
| 设置 | 变量 | 默认 |
|---|---|---|
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, (中文(简体) ), 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' } }],
});
驾照:麻省理工.