CodeLLAMA / server.js
Rooni's picture
Update server.js
a6f9ea4 verified
Raw
History Blame
2.57 kB
const express = require('express');
const axios = require('axios');
const app = express();
const PORT = process.env.PORT || 7860;
const apiToken = process.env.API_KEY;
app.use(express.json());
app.post('/chat', async (req, res) => {
const { messages, temperature, max_tokens } = req.body;
try {
const { default: fetch } = await import('node-fetch');
const response = await fetch('https://api-inference.huggingface.co/models/codellama/CodeLlama-34b-Instruct-hf', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiToken}`
},
body: JSON.stringify({
"inputs": messages,
"parameters": {
"temperature": temperature || 0.7,
"max_new_tokens": max_tokens || 100
}
})
});
const text = await response.text(); // Получаем текст ответа
console.log("Response text:", text); // Логируем ответ
// Проверяем, если ответ содержит JSON
if (response.headers.get('content-type')?.includes('application/json')) {
let data;
try {
data = JSON.parse(text); // Пытаемся распарсить JSON
} catch (jsonError) {
console.error("JSON parsing error:", jsonError);
return res.status(500).json({ error: `Ошибка парсинга JSON: ${jsonError.message}` });
}
const generatedText = data.generated_text;
// Добавляем сгенерированное сообщение в конец массива messages
messages.push({ role: 'assistant', content: generatedText });
res.json({ messages });
} else {
console.error("Received non-JSON response:", text);
const generatedText = data;
// Добавляем сгенерированное сообщение в конец массива messages
messages.push({ role: 'assistant', content: generatedText });
res.json({ messages });
}
} catch (error) {
console.error("Error during text generation:", error);
res.status(500).json({ error: `Произошла ошибка при генерации текста: ${error.message}` });
}
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});