Spaces:
Paused
Paused
| import axios from 'axios'; | |
| import { GoogleGenerativeAI } from '@google/generative-ai'; | |
| import config from '../../config.cjs'; | |
| const geminiResponse = async (m, Matrix) => { | |
| const prefix = config.PREFIX; | |
| const cmd = m.body.startsWith(prefix) ? m.body.slice(prefix.length).split(' ')[0].toLowerCase() : ''; | |
| const text = m.body.slice(prefix.length + cmd.length).trim(); | |
| const apiKey = config.GEMINI_KEY; | |
| const genAI = new GoogleGenerativeAI(apiKey); | |
| const validCommands = ['gemini', 'vision']; | |
| if (validCommands.includes(cmd)) { | |
| if (!m.quoted || m.quoted.mtype !== 'imageMessage') { | |
| return m.reply(`*Send/Reply with an Image ${prefix + cmd}*`); | |
| } | |
| m.reply("Please wait..."); | |
| try { | |
| const prompt = text; | |
| const media = await m.quoted.download(); | |
| const imagePart = { | |
| inlineData: { | |
| data: Buffer.from(media).toString("base64"), | |
| mimeType: "image/png", | |
| }, | |
| }; | |
| const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-latest" }); | |
| const result = await model.generateContent([prompt, imagePart]); | |
| const response = result.response; | |
| const textResponse = await response.text(); | |
| m.reply(`${textResponse}`); | |
| } catch (error) { | |
| console.error('Error in Gemini Pro Vision:', error); | |
| m.reply(`An error occurred: ${error.message}`); | |
| await m.React("❌"); | |
| } | |
| } | |
| }; | |
| export default geminiResponse; | |