feat: compatible old openai message

This commit is contained in:
Hk-Gosuto 2023-12-27 13:05:32 +08:00
parent 42ee0e0924
commit 3782c48008
1 changed files with 32 additions and 19 deletions

View File

@ -83,28 +83,41 @@ export class ChatGPTApi implements LLMApi {
const base64 = Buffer.from(response.data, "binary").toString("base64"); const base64 = Buffer.from(response.data, "binary").toString("base64");
return base64; return base64;
}; };
for (const v of options.messages) { if (options.config.model === "gpt-4-vision-preview") {
let message: { for (const v of options.messages) {
role: string; let message: {
content: { type: string; text?: string; image_url?: { url: string } }[]; role: string;
} = { content: {
role: v.role, type: string;
content: [], text?: string;
}; image_url?: { url: string };
message.content.push({ }[];
type: "text", } = {
text: v.content, role: v.role,
}); content: [],
if (v.image_url) { };
var base64Data = await getImageBase64Data(v.image_url);
message.content.push({ message.content.push({
type: "image_url", type: "text",
image_url: { text: v.content,
url: `data:image/jpeg;base64,${base64Data}`,
},
}); });
if (v.image_url) {
var base64Data = await getImageBase64Data(v.image_url);
message.content.push({
type: "image_url",
image_url: {
url: `data:image/jpeg;base64,${base64Data}`,
},
});
}
messages.push(message);
} }
messages.push(message); } else {
options.messages.map((v) =>
messages.push({
role: v.role,
content: v.content,
}),
);
} }
const modelConfig = { const modelConfig = {