fast72 commited on
Commit
bb1af57
·
verified ·
1 Parent(s): e6ccf38

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +39 -24
server.js CHANGED
@@ -1,31 +1,46 @@
1
- const express = require("express");
2
- const axios = require("axios");
 
 
 
 
3
 
 
4
  const app = express();
5
  app.use(express.json());
6
 
7
- const API_URL = `https://api.cloudflare.com/client/v4/accounts/${process.env.ID}/ai/run/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b`;
8
- const API_KEY = process.env.KEY;
9
- const sessions = {};
10
-
11
- app.post("/chat", async (req, res) => {
12
- const { session, message, temperature = 5 } = req.body;
13
- if (!session || !message) return res.status(400).send("Session and message are required");
14
-
15
- sessions[session] = sessions[session] || [];
16
- sessions[session].push({ role: "user", content: message });
17
-
18
- try {
19
- const response = await axios.post(
20
- API_URL,
21
- { messages: sessions[session], temperature },
22
- { headers: { Authorization: `Bearer ${API_KEY}` } }
23
- );
24
- const answer = response?.data?.response;
25
- res.send((answer?.includes('</think>') ?? '<think>\n' + answer)?.trim());
26
- } catch (err) {
27
- res.status(500).send(err.message);
 
 
 
 
 
28
  }
 
 
 
 
 
29
  });
30
 
31
- app.listen(7860, () => console.log("Running on http://localhost:7860"));
 
1
+ //require('dotenv').config();
2
+ const Groq = require('groq-sdk');
3
+ const express = require('express');
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const os = require('os');
7
 
8
+ const groq = new Groq({ apiKey: process.env.GROQ_API_KEY });
9
  const app = express();
10
  app.use(express.json());
11
 
12
+ app.post('/chat', async (req, res) => {
13
+ const { sessionId, message } = req.body;
14
+ if (!sessionId || !message) return res.status(400).json({ error: 'Missing sessionId or message' });
15
+
16
+ const sessionFile = path.join(os.tmpdir(), sessionId);
17
+ let history = fs.existsSync(sessionFile) ? JSON.parse(fs.readFileSync(sessionFile, 'utf8')) : [];
18
+
19
+ history.push({ role: 'user', content: message });
20
+
21
+ const chatCompletion = await groq.chat.completions.create({
22
+ messages: history,
23
+ model: 'deepseek-r1-distill-qwen-32b',
24
+ temperature: 0.6,
25
+ max_completion_tokens: 4096,
26
+ top_p: 0.95,
27
+ stream: true
28
+ });
29
+
30
+ res.setHeader('Content-Type', 'text/plain');
31
+ res.setHeader('Transfer-Encoding', 'chunked');
32
+
33
+ let responseText = '';
34
+ for await (const chunk of chatCompletion) {
35
+ const content = chunk.choices[0]?.delta?.content || '';
36
+ responseText += content;
37
+ res.write(content);
38
  }
39
+
40
+ history.push({ role: 'assistant', content: responseText });
41
+ fs.writeFileSync(sessionFile, JSON.stringify(history));
42
+
43
+ res.end();
44
  });
45
 
46
+ app.listen(7860, () => console.log('Server running on port 7860'));