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); }