Spaces:
Sleeping
Sleeping
fix: multimodal on TGI endpoint type (#1491)
Browse files
src/lib/server/endpoints/tgi/endpointTgi.ts
CHANGED
|
@@ -23,8 +23,8 @@ export const endpointTgiParametersSchema = z.object({
|
|
| 23 |
supportedMimeTypes: ["image/jpeg", "image/webp"],
|
| 24 |
preferredMimeType: "image/webp",
|
| 25 |
maxSizeInMB: 5,
|
| 26 |
-
maxWidth:
|
| 27 |
-
maxHeight:
|
| 28 |
}),
|
| 29 |
})
|
| 30 |
.default({}),
|
|
@@ -81,22 +81,13 @@ export function endpointTgi(input: z.input<typeof endpointTgiParametersSchema>):
|
|
| 81 |
};
|
| 82 |
}
|
| 83 |
|
| 84 |
-
const whiteImage = {
|
| 85 |
-
mime: "image/png",
|
| 86 |
-
image: Buffer.from(
|
| 87 |
-
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAQABADAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/igAoAKACgD/2Q==",
|
| 88 |
-
"base64"
|
| 89 |
-
),
|
| 90 |
-
};
|
| 91 |
-
|
| 92 |
async function prepareMessage(
|
| 93 |
isMultimodal: boolean,
|
| 94 |
message: EndpointMessage,
|
| 95 |
imageProcessor: ImageProcessor
|
| 96 |
): Promise<EndpointMessage> {
|
| 97 |
if (!isMultimodal) return message;
|
| 98 |
-
|
| 99 |
-
const files = await Promise.all(message.files?.map(imageProcessor) ?? [whiteImage]);
|
| 100 |
const markdowns = files.map(
|
| 101 |
(file) => `})`
|
| 102 |
);
|
|
|
|
| 23 |
supportedMimeTypes: ["image/jpeg", "image/webp"],
|
| 24 |
preferredMimeType: "image/webp",
|
| 25 |
maxSizeInMB: 5,
|
| 26 |
+
maxWidth: 378,
|
| 27 |
+
maxHeight: 980,
|
| 28 |
}),
|
| 29 |
})
|
| 30 |
.default({}),
|
|
|
|
| 81 |
};
|
| 82 |
}
|
| 83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
async function prepareMessage(
|
| 85 |
isMultimodal: boolean,
|
| 86 |
message: EndpointMessage,
|
| 87 |
imageProcessor: ImageProcessor
|
| 88 |
): Promise<EndpointMessage> {
|
| 89 |
if (!isMultimodal) return message;
|
| 90 |
+
const files = await Promise.all(message.files?.map(imageProcessor) ?? []);
|
|
|
|
| 91 |
const markdowns = files.map(
|
| 92 |
(file) => `})`
|
| 93 |
);
|
src/lib/server/textGeneration/generate.ts
CHANGED
|
@@ -17,6 +17,7 @@ export async function* generate(
|
|
| 17 |
continueMessage: isContinue,
|
| 18 |
generateSettings: assistant?.generateSettings,
|
| 19 |
toolResults,
|
|
|
|
| 20 |
})) {
|
| 21 |
// text generation completed
|
| 22 |
if (output.generated_text) {
|
|
|
|
| 17 |
continueMessage: isContinue,
|
| 18 |
generateSettings: assistant?.generateSettings,
|
| 19 |
toolResults,
|
| 20 |
+
isMultimodal: model.multimodal,
|
| 21 |
})) {
|
| 22 |
// text generation completed
|
| 23 |
if (output.generated_text) {
|