From 7237d33be38c1b51fc867d047e9f599429bd8eec Mon Sep 17 00:00:00 2001 From: Dogtiti <499960698@qq.com> Date: Fri, 19 Jul 2024 14:55:47 +0800 Subject: [PATCH] fix: ts type --- app/client/platforms/anthropic.ts | 3 +-- app/client/platforms/google.ts | 2 +- app/client/platforms/openai.ts | 2 +- app/utils/chat.ts | 14 ++++++++------ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/client/platforms/anthropic.ts b/app/client/platforms/anthropic.ts index 79aaf72b6..0c15bf8b2 100644 --- a/app/client/platforms/anthropic.ts +++ b/app/client/platforms/anthropic.ts @@ -3,7 +3,6 @@ import { ChatOptions, getHeaders, LLMApi, MultimodalContent } from "../api"; import { useAccessStore, useAppConfig, useChatStore } from "@/app/store"; import { getClientConfig } from "@/app/config/client"; import { DEFAULT_API_HOST } from "@/app/constant"; -import { RequestMessage } from "@/app/typing"; import { EventStreamContentType, fetchEventSource, @@ -95,7 +94,7 @@ export class ClaudeApi implements LLMApi { }; // try get base64image from local cache image_url - const messages = []; + const messages: ChatOptions["messages"] = []; for (const v of options.messages) { const content = await preProcessImageContent(v.content); messages.push({ role: v.role, content }); diff --git a/app/client/platforms/google.ts b/app/client/platforms/google.ts index 4a23211a3..753a768c6 100644 --- a/app/client/platforms/google.ts +++ b/app/client/platforms/google.ts @@ -59,7 +59,7 @@ export class GeminiProApi implements LLMApi { let multimodal = false; // try get base64image from local cache image_url - const _messages = []; + const _messages: ChatOptions["messages"] = []; for (const v of options.messages) { const content = await preProcessImageContent(v.content); _messages.push({ role: v.role, content }); diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 72277575f..680125fe6 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -106,7 +106,7 @@ export class ChatGPTApi implements LLMApi { async chat(options: ChatOptions) { const visionModel = isVisionModel(options.config.model); - const messages = []; + const messages: ChatOptions["messages"] = []; for (const v of options.messages) { const content = visionModel ? await preProcessImageContent(v.content) diff --git a/app/utils/chat.ts b/app/utils/chat.ts index 69e18920c..cde88043e 100644 --- a/app/utils/chat.ts +++ b/app/utils/chat.ts @@ -1,7 +1,8 @@ import { CACHE_URL_PREFIX, UPLOAD_URL } from "@/app/constant"; // import heic2any from "heic2any"; +import { RequestMessage } from "@/app/client/api"; -export function compressImage(file: File, maxSize: number): Promise { +export function compressImage(file: Blob, maxSize: number): Promise { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = (readerEvent: any) => { @@ -43,10 +44,10 @@ export function compressImage(file: File, maxSize: number): Promise { if (file.type.includes("heic")) { const heic2any = require("heic2any"); heic2any({ blob: file, toType: "image/jpeg" }) - .then((blob) => { - reader.readAsDataURL(blob as Blob); + .then((blob: Blob) => { + reader.readAsDataURL(blob); }) - .catch((e) => { + .catch((e: any) => { reject(e); }); } @@ -73,7 +74,7 @@ export async function preProcessImageContent( return result; } -const imageCaches = {}; +const imageCaches: Record = {}; export function cacheImageToBase64Image(imageUrl: string) { if (imageUrl.includes(CACHE_URL_PREFIX)) { if (!imageCaches[imageUrl]) { @@ -85,7 +86,8 @@ export function cacheImageToBase64Image(imageUrl: string) { }) .then((res) => res.blob()) .then( - (blob) => (imageCaches[imageUrl] = compressImage(blob, 256 * 1024)), + async (blob) => + (imageCaches[imageUrl] = await compressImage(blob, 256 * 1024)), ); // compressImage } return Promise.resolve(imageCaches[imageUrl]);