feat(P0-A): 整合第一版并冻结最终发布 #1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"config_set_version": 2,
|
||||
"config_set_version": 3,
|
||||
"gateway_account_ref": "oneapi-intelligrow-test",
|
||||
"models": [
|
||||
{
|
||||
@@ -23,13 +23,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"config_version": 1,
|
||||
"config_version": 2,
|
||||
"gateway_account_ref": "oneapi-intelligrow-test",
|
||||
"model_id": "gpt-image-2",
|
||||
"route_profile": {
|
||||
"endpoint": "https://oneapi.intelligrow.cn/v1/images/generations",
|
||||
"mode": "sync",
|
||||
"protocol_version": "openai-images-v1"
|
||||
"protocol_version": "openai-images-v1",
|
||||
"reference_endpoint": "https://oneapi.intelligrow.cn/v1/images/edits"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -29,6 +29,10 @@ function assertModelConfig(modelConfig) {
|
||||
|| !["gemini-native-v1", "openai-images-v1"].includes(profile.protocol_version)) {
|
||||
throw new Error("WP7_02_ROUTE_PROFILE_INVALID");
|
||||
}
|
||||
if (profile.protocol_version === "openai-images-v1"
|
||||
&& (profile.reference_endpoint !== "https://oneapi.intelligrow.cn/v1/images/edits")) {
|
||||
throw new Error("WP7_02_REFERENCE_ROUTE_PROFILE_INVALID");
|
||||
}
|
||||
return modelConfig;
|
||||
}
|
||||
|
||||
@@ -87,7 +91,15 @@ export function buildProviderRequest({ modelConfig, prompt, ratio, reference })
|
||||
response_format: "b64_json",
|
||||
size: gptImageRequestSizeForRatio(ratio),
|
||||
};
|
||||
if (reference) body.image = `data:${reference.mime_type};base64,${reference.bytes.toString("base64")}`;
|
||||
if (reference) {
|
||||
const form = new FormData();
|
||||
form.append("model", config.model_id);
|
||||
form.append("prompt", prompt);
|
||||
form.append("response_format", "b64_json");
|
||||
form.append("size", gptImageRequestSizeForRatio(ratio));
|
||||
form.append("image[]", new Blob([reference.bytes], { type: reference.mime_type }), "reference.png");
|
||||
return { body: form, headers: {}, method: "POST", url: config.route_profile.reference_endpoint };
|
||||
}
|
||||
return { body, headers, method: "POST", url: config.route_profile.endpoint };
|
||||
}
|
||||
|
||||
@@ -253,7 +265,7 @@ export async function executeProviderRequest({ fetchImpl = fetch, modelConfig, p
|
||||
const startedAt = performance.now();
|
||||
try {
|
||||
const response = await fetchImpl(request.url, {
|
||||
body: JSON.stringify(request.body),
|
||||
body: request.body instanceof FormData ? request.body : JSON.stringify(request.body),
|
||||
headers: { ...request.headers, authorization: `Bearer ${token}` },
|
||||
method: request.method,
|
||||
signal: controller.signal,
|
||||
|
||||
@@ -38,12 +38,13 @@ const models = [
|
||||
},
|
||||
},
|
||||
{
|
||||
config_version: 1,
|
||||
config_version: 2,
|
||||
model_id: "gpt-image-2",
|
||||
route_profile: {
|
||||
endpoint: "https://oneapi.intelligrow.cn/v1/images/generations",
|
||||
mode: "sync",
|
||||
protocol_version: "openai-images-v1",
|
||||
reference_endpoint: "https://oneapi.intelligrow.cn/v1/images/edits",
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user