| const axios = require('axios'); |
|
|
| const handler = async (req, res) => { |
| try { |
| const { text, img } = req.query; |
|
|
| if (!text) { |
| return res.status(400).json({ |
| success: false, |
| error: 'Missing required parameter: text' |
| }); |
| } |
|
|
| const apiKey = process.env.GROQ; |
|
|
| if (!apiKey) { |
| return res.status(500).json({ |
| success: false, |
| error: 'GROQ API key not configured in environment' |
| }); |
| } |
|
|
| const content = [ |
| { |
| type: "text", |
| text: text |
| } |
| ]; |
|
|
| if (img) { |
| content.push({ |
| type: "image_url", |
| image_url: { |
| url: img |
| } |
| }); |
| } |
|
|
| const response = await axios.post( |
| 'https://api.groq.com/openai/v1/chat/completions', |
| { |
| messages: [ |
| { |
| role: "user", |
| content: img ? content : text |
| } |
| ], |
| model: img ? "meta-llama/llama-4-scout-17b-16e-instruct" : "llama-3.1-8b-instant", |
| temperature: 1, |
| max_completion_tokens: 1024, |
| top_p: 1, |
| stream: false |
| }, |
| { |
| headers: { |
| 'Content-Type': 'application/json', |
| 'Authorization': `Bearer ${apiKey}` |
| } |
| } |
| ); |
|
|
| const result = response.data.choices[0].message.content; |
|
|
| res.json({ |
| author: "Herza", |
| success: true, |
| msg: result |
| }); |
|
|
| } catch (error) { |
| res.status(500).json({ |
| success: false, |
| error: error.response?.data?.error?.message || error.message |
| }); |
| } |
| }; |
|
|
| module.exports = { |
| name: 'LLAMA AI', |
| description: 'Generate responses using Groq API with text and image support', |
| type: 'GET', |
| routes: ['api/AI/llama'], |
| tags: ['ai', 'Meta AI', 'llama', 'vision'], |
| main: ['AI'], |
| parameters: ['text', 'img', 'key'], |
| enabled: true, |
| limit: 8, |
| handler |
| }; |