Ai / src /controllers /chatController.js
root
Update space
dc7af0d
import { OpenAI } from "openai";
const client = new OpenAI({
baseURL: "https://router.huggingface.co/novita/v3/openai",
apiKey: process.env.NOVITA_API_KEY,
});
export const chatCompletion = async (req, res) => {
try {
const { messages } = req.body;
// Default system message if not provided
if (!messages.some(m => m.role === 'system')) {
messages.unshift({
role: 'system',
content: 'Anda adalah asisten AI yang ramah, baik hati, dan selalu membantu. Gunakan bahasa Indonesia yang santun dan mudah dimengerti.'
});
}
const stream = await client.chat.completions.create({
model: process.env.MODEL,
messages,
stream: true,
});
res.setHeader('Content-Type', 'text/plain');
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || '';
res.write(content);
}
res.end();
} catch (error) {
console.error('Error:', error);
res.status(500).json({ error: 'Internal server error' });
}
};