feat(canvas): 云端 Agent - 完成策略分层、节点能力注册与可解释审批改造
This commit is contained in:
1 parent
4b0e9d8965
commit
01486872c4
65 files changed
+5347
-918
No files matched your search
@@ -258,17 +258,24 @@ for (const [id, name, vendor, baseUrl] of [
|
||||
|
||||
add({
|
||||
id: "openai-images", providerId: "openai-image", name: "OpenAI Images", vendor: "OpenAI", capability: "image",
|
||||
baseUrl: "https://api.openai.com", auth: bearer, params: imageParams,
|
||||
notes: "无参考图走 JSON generations;有参考图或蒙版走 multipart edits。quality 的 1k/2k/4k 映射为 OpenAI low/medium/high。",
|
||||
baseUrl: "https://api.openai.com", auth: bearer, params: imageParams, requiresPublicMediaUrls: true,
|
||||
notes: "无参考图走 JSON generations;有参考图或蒙版走 JSON edits,并按官方 images 数组传入多张 image_url。quality 的 1k/2k/4k 映射为 OpenAI low/medium/high。",
|
||||
create: {
|
||||
method: "POST",
|
||||
path: "/v1/images/generations",
|
||||
pathTemplate: conditional(gt(len(ref("request.images")), 0), "/v1/images/edits", "/v1/images/generations"),
|
||||
contentType: "application/json",
|
||||
contentTypeTemplate: conditional(gt(len(ref("request.images")), 0), "multipart/form-data", "application/json"),
|
||||
body: {
|
||||
model: ref("request.model"),
|
||||
prompt: ref("request.prompt"),
|
||||
images: omit(conditional(gt(len(ref("request.images")), 0), map(
|
||||
filter(sorted(ref("request.images")), "media", ne(ref("media.role"), "mask")),
|
||||
"media",
|
||||
{ image_url: ref("media.value") }
|
||||
))),
|
||||
mask: omit(conditional(gt(len(filter(ref("request.images"), "media", eq(ref("media.role"), "mask"))), 0), {
|
||||
image_url: first(map(filter(sorted(ref("request.images")), "media", eq(ref("media.role"), "mask")), "media", ref("media.value")))
|
||||
})),
|
||||
n: omit(conditional(gt(ref("request.imageCount"), 0), ref("request.imageCount"), 1)),
|
||||
size: omit(conditional({ $in: [lower(trim(ref("request.aspectRatio"))), ["", "auto"]] }, null, ref("request.aspectRatio"))),
|
||||
quality: omit({
|
||||
@@ -289,14 +296,10 @@ add({
|
||||
output_format: omit(coalesce(ref("request.providerOptions.openai-image.output_format"), "png")),
|
||||
output_compression: omit(ref("request.providerOptions.openai-image.output_compression")),
|
||||
moderation: omit(ref("request.providerOptions.openai-image.moderation")),
|
||||
response_format: omit(coalesce(ref("request.providerOptions.openai-image.response_format"), "b64_json")),
|
||||
response_format: omit(ref("request.providerOptions.openai-image.response_format")),
|
||||
style: omit(ref("request.providerOptions.openai-image.style")),
|
||||
user: omit(ref("request.providerOptions.openai-image.user"))
|
||||
},
|
||||
files: [
|
||||
{ name: "image", source: filter(ref("request.images"), "media", ne(ref("media.role"), "mask")), filename: "source.png" },
|
||||
{ name: "mask", source: filter(ref("request.images"), "media", eq(ref("media.role"), "mask")), filename: "mask.png" }
|
||||
]
|
||||
}
|
||||
},
|
||||
response: {
|
||||
status: "succeeded",
|
||||
|
||||
Reference in new issue
Block a user