From d1b3232a5aed04c4fa434feb7b55301b21adc837 Mon Sep 17 00:00:00 2001 From: gmuffiness Date: Mon, 27 Jan 2025 17:29:14 +0900 Subject: [PATCH] feat: add groq vision request --- src/models/groq.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/models/groq.js b/src/models/groq.js index e17f13d..025875f 100644 --- a/src/models/groq.js +++ b/src/models/groq.js @@ -15,8 +15,10 @@ export class GroqCloudAPI { this.groq = new Groq({ apiKey: getKey('GROQCLOUD_API_KEY') }); } - async sendRequest(turns, systemMessage, stop_seq=null) { - let messages = [{"role": "system", "content": systemMessage}].concat(turns); + async sendRequest(turns, systemMessage=null, stop_seq=null) { + let messages = systemMessage + ? [{"role": "system", "content": systemMessage}].concat(turns) + : turns; let res = null; try { console.log("Awaiting Groq response..."); @@ -45,6 +47,24 @@ export class GroqCloudAPI { return res; } + async sendVisionRequest(messages, systemMessage, imageBuffer) { + const imageMessages = [...messages]; + imageMessages.push({ + role: "user", + content: [ + { type: "text", text: systemMessage }, + { + type: "image_url", + image_url: { + url: `data:image/jpeg;base64,${imageBuffer.toString('base64')}` + } + } + ] + }); + + return this.sendRequest(imageMessages); + } + async embed(text) { console.log("There is no support for embeddings in Groq support. However, the following text was provided: " + text); }