feat(P0-A): 整合第一版并冻结最终发布 #1

Open
tuyixuan wants to merge 115 commits from codex/wp7-07 into codex/wp0-09
2 changed files with 11 additions and 11 deletions
Showing only changes of commit 75a589dad8 - Show all commits
+7 -7
View File
@@ -1,25 +1,25 @@
{
"config_set_version": 3,
"config_set_version": 4,
"gateway_account_ref": "oneapi-intelligrow-test",
"models": [
{
"config_version": 2,
"config_version": 3,
"gateway_account_ref": "oneapi-intelligrow-test",
"model_id": "gemini-3.1-flash-image-preview",
"route_profile": {
"endpoint": "https://oneapi.intelligrow.cn/v1/models/gemini-3.1-flash-image-preview:generateContent",
"endpoint": "https://oneapi.intelligrow.cn/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
"mode": "sync",
"protocol_version": "gemini-native-v1"
"protocol_version": "gemini-native-v1beta"
}
},
{
"config_version": 2,
"config_version": 3,
"gateway_account_ref": "oneapi-intelligrow-test",
"model_id": "gemini-3-pro-image-preview",
"route_profile": {
"endpoint": "https://oneapi.intelligrow.cn/v1/models/gemini-3-pro-image-preview:generateContent",
"endpoint": "https://oneapi.intelligrow.cn/v1beta/models/gemini-3-pro-image-preview:generateContent",
"mode": "sync",
"protocol_version": "gemini-native-v1"
"protocol_version": "gemini-native-v1beta"
}
},
{
+4 -4
View File
@@ -26,7 +26,7 @@ function assertModelConfig(modelConfig) {
const profile = modelConfig.route_profile;
if (!profile || typeof profile !== "object" || typeof profile.endpoint !== "string"
|| !profile.endpoint.startsWith("https://oneapi.intelligrow.cn/")
|| !["gemini-native-v1", "openai-images-v1"].includes(profile.protocol_version)) {
|| !["gemini-native-v1beta", "openai-images-v1"].includes(profile.protocol_version)) {
throw new Error("WP7_02_ROUTE_PROFILE_INVALID");
}
if (profile.protocol_version === "openai-images-v1"
@@ -69,14 +69,14 @@ export function buildProviderRequest({ modelConfig, prompt, ratio, reference })
throw new Error("WP7_02_REFERENCE_FIXTURE_INVALID");
}
const headers = { "content-type": "application/json" };
if (config.route_profile.protocol_version === "gemini-native-v1") {
if (config.route_profile.protocol_version === "gemini-native-v1beta") {
const parts = [{ text: prompt }];
if (reference) parts.push({ inlineData: { data: reference.bytes.toString("base64"), mimeType: reference.mime_type } });
return {
body: {
contents: [{ parts, role: "user" }],
generationConfig: {
responseFormat: { image: { aspectRatio: ratio, imageSize: "1K" } },
imageConfig: { aspectRatio: ratio, imageSize: "1K" },
responseModalities: ["IMAGE"],
},
},
@@ -180,7 +180,7 @@ export function normalizeProviderResponse(modelConfig, response) {
let bytes;
let mime;
let usageSummary;
if (config.route_profile.protocol_version === "gemini-native-v1") {
if (config.route_profile.protocol_version === "gemini-native-v1beta") {
const parts = response?.candidates?.flatMap((candidate) => candidate?.content?.parts ?? []) ?? [];
const images = parts.map((part) => part?.inlineData ?? part?.inline_data).filter((entry) => entry?.data);
if (images.length !== 1) throw new Error("WP7_02_RESPONSE_SINGLE_IMAGE_REQUIRED");