File size: 1,019 Bytes
7e7e257 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import { NextResponse } from 'next/server';
export async function POST(req: Request) {
try {
const { message, history } = await req.json();
const apiKey = process.env.GEMINI_API_KEY;
const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${apiKey}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
contents: [
...history.map(m => ({
role: m.role === 'assistant' ? 'model' : 'user',
parts: [{ text: m.content }]
})),
{ role: 'user', parts: [{ text: message }] }
]
})
});
const data = await response.json();
const text = data.candidates?.[0]?.content?.parts?.[0]?.text || "عذراً، لم أستطع استنباط إجابة حالياً.";
return NextResponse.json({ text });
} catch (error) {
return NextResponse.json({ error: 'Failed to fetch Gemini' }, { status: 500 });
}
} |