大香蕉支持设置4k和2k
Browse files- src/api/client.js +2 -0
- src/server/handlers/openai.js +1 -1
- src/utils/utils.js +17 -1
src/api/client.js
CHANGED
|
@@ -43,6 +43,8 @@ const DEFAULT_MODELS = [
|
|
| 43 |
'gemini-3-pro-high',
|
| 44 |
'gemini-2.5-flash-lite',
|
| 45 |
'gemini-3-pro-image',
|
|
|
|
|
|
|
| 46 |
'gemini-2.5-flash-thinking',
|
| 47 |
'gemini-2.5-pro',
|
| 48 |
'gemini-2.5-flash',
|
|
|
|
| 43 |
'gemini-3-pro-high',
|
| 44 |
'gemini-2.5-flash-lite',
|
| 45 |
'gemini-3-pro-image',
|
| 46 |
+
'gemini-3-pro-image-4K',
|
| 47 |
+
'gemini-3-pro-image-2K',
|
| 48 |
'gemini-2.5-flash-thinking',
|
| 49 |
'gemini-2.5-pro',
|
| 50 |
'gemini-2.5-flash',
|
src/server/handlers/openai.js
CHANGED
|
@@ -65,7 +65,7 @@ export const handleOpenAIRequest = async (req, res) => {
|
|
| 65 |
if (isImageModel) {
|
| 66 |
prepareImageRequest(requestBody);
|
| 67 |
}
|
| 68 |
-
|
| 69 |
const { id, created } = createResponseMeta();
|
| 70 |
const maxRetries = Number(config.retryTimes || 0);
|
| 71 |
const safeRetries = maxRetries > 0 ? Math.floor(maxRetries) : 0;
|
|
|
|
| 65 |
if (isImageModel) {
|
| 66 |
prepareImageRequest(requestBody);
|
| 67 |
}
|
| 68 |
+
//console.log(JSON.stringify(requestBody,null,2));
|
| 69 |
const { id, created } = createResponseMeta();
|
| 70 |
const maxRetries = Number(config.retryTimes || 0);
|
| 71 |
const safeRetries = maxRetries > 0 ? Math.floor(maxRetries) : 0;
|
src/utils/utils.js
CHANGED
|
@@ -124,7 +124,23 @@ export function extractSystemInstruction(openaiMessages) {
|
|
| 124 |
// ==================== 图片请求准备 ====================
|
| 125 |
export function prepareImageRequest(requestBody) {
|
| 126 |
if (!requestBody || !requestBody.request) return requestBody;
|
| 127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
requestBody.requestType = 'image_gen';
|
| 129 |
delete requestBody.request.systemInstruction;
|
| 130 |
delete requestBody.request.tools;
|
|
|
|
| 124 |
// ==================== 图片请求准备 ====================
|
| 125 |
export function prepareImageRequest(requestBody) {
|
| 126 |
if (!requestBody || !requestBody.request) return requestBody;
|
| 127 |
+
let imageSize = "1K";
|
| 128 |
+
if (requestBody.model.includes('4K')){
|
| 129 |
+
imageSize = "4K";
|
| 130 |
+
} else if (requestBody.model.includes('2K')){
|
| 131 |
+
imageSize = "2K";
|
| 132 |
+
} else {
|
| 133 |
+
imageSize = "1K";
|
| 134 |
+
}
|
| 135 |
+
if (imageSize !== "1K"){
|
| 136 |
+
requestBody.model = requestBody.model.slice(0, -3);
|
| 137 |
+
}
|
| 138 |
+
requestBody.request.generationConfig = {
|
| 139 |
+
candidateCount: 1,
|
| 140 |
+
imageConfig: {
|
| 141 |
+
imageSize: imageSize
|
| 142 |
+
}
|
| 143 |
+
};
|
| 144 |
requestBody.requestType = 'image_gen';
|
| 145 |
delete requestBody.request.systemInstruction;
|
| 146 |
delete requestBody.request.tools;
|