deepseek-codecraft / server.js
Ye1nu1's picture
пиши node.js backend for running ollama model - deepseek-coder:instruct and with modern UI
9b62730 verified
Raw History Blame Contribute Delete
2.13 kB
const express = require('express');
const axios = require('axios');
const cors = require('cors');
const path = require('path');
require('dotenv').config();
const app = express();
const PORT = process.env.PORT || 3000;
const OLLAMA_API = process.env.OLLAMA_API || 'http://localhost:11434';
app.use(cors());
app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));
app.post('/api/generate', async (req, res) => {
try {
const { prompt, systemPrompt, temperature = 0.7, maxTokens = 2048 } = req.body;
if (!prompt) {
return res.status(400).json({ error: 'Prompt is required' });
}
const response = await axios.post(`${OLLAMA_API}/api/generate`, {
model: 'deepseek-coder:instruct',
prompt: systemPrompt ? `${systemPrompt}\n\n${prompt}` : prompt,
options: {
temperature,
num_predict: maxTokens,
},
stream: false,
});
res.json({
response: response.data.response,
model: 'deepseek-coder:instruct',
done: response.data.done,
});
} catch (error) {
console.error('Error generating response:', error.message);
res.status(500).json({
error: 'Failed to generate response',
details: error.response?.data || error.message
});
}
});
app.get('/api/status', async (req, res) => {
try {
const response = await axios.get(`${OLLAMA_API}/api/tags`);
const models = response.data.models;
const deepseekCoder = models.find(m => m.name.includes('deepseek-coder'));
res.json({
status: deepseekCoder ? 'available' : 'unavailable',
models: models.map(m => m.name),
deepseekCoderAvailable: !!deepseekCoder,
});
} catch (error) {
res.status(500).json({
status: 'error',
error: 'Could not connect to Ollama server',
details: error.message
});
}
});
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.listen(PORT, () => {
console.log(`🚀 DeepSeek CodeCraft server running on http://localhost:${PORT}`);
console.log(`📡 Connecting to Ollama at: ${OLLAMA_API}`);
});