scnario commited on
Commit
1c1f7da
·
verified ·
1 Parent(s): b54ce44

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +35 -6
server.js CHANGED
@@ -1,11 +1,40 @@
1
- const express = require('express'); const { GoogleGenerativeAI } = require('@google/generative-ai'); const fs = require('fs'); const path = require('path');
 
 
 
2
 
3
- const app = express(); const apiKey = 'AIzaSyCRpX4SnNQl__BNLcVWqgzKdbIlt06vod0'; const genAI = new GoogleGenerativeAI(apiKey); const tmpDir = path.join(require('os').tmpdir(), 'gemini_sessions'); if (!fs.existsSync(tmpDir)) fs.mkdirSync(tmpDir);
 
 
 
 
4
 
5
- function getSessionFile(sessionId) { return path.join(tmpDir, ${sessionId}.json); }
 
 
6
 
7
- async function gemini(sessionId, prompt) { const sessionFile = getSessionFile(sessionId); let session; if (fs.existsSync(sessionFile)) { session = JSON.parse(fs.readFileSync(sessionFile, 'utf8')); } else { session = await genAI.getGenerativeModel({ model: 'gemini-2.0-flash' }).startChat(); } const result = await session.sendMessage(prompt); fs.writeFileSync(sessionFile, JSON.stringify(session)); return result.response.text(); }
 
 
 
 
 
 
 
 
 
 
 
8
 
9
- app.get('/gemini', async (req, res) => { try { const { question, sessionId } = req.query; if (!question || !sessionId) return res.status(400).json({ error: 'Missing parameters' }); const reply = await gemini(sessionId, question); res.json({ reply }); } catch (error) { res.status(500).json({ error: error.message }); } });
 
 
 
 
 
 
 
 
 
10
 
11
- app.listen(7860);
 
1
+ const express = require('express');
2
+ const { GoogleGenerativeAI } = require('@google/generative-ai');
3
+ const fs = require('fs');
4
+ const path = require('path');
5
 
6
+ const app = express();
7
+ const apiKey = 'AIzaSyCRpX4SnNQl__BNLcVWqgzKdbIlt06vod0';
8
+ const genAI = new GoogleGenerativeAI(apiKey);
9
+ const tmpDir = path.join(require('os').tmpdir(), 'gemini_sessions');
10
+ if (!fs.existsSync(tmpDir)) fs.mkdirSync(tmpDir);
11
 
12
+ function getSessionFile(sessionId) {
13
+ return path.join(tmpDir, `${sessionId}.json`);
14
+ }
15
 
16
+ async function gemini(sessionId, prompt) {
17
+ const sessionFile = getSessionFile(sessionId);
18
+ let session;
19
+ if (fs.existsSync(sessionFile)) {
20
+ session = JSON.parse(fs.readFileSync(sessionFile, 'utf8'));
21
+ } else {
22
+ session = await genAI.getGenerativeModel({ model: 'gemini-2.0-flash' }).startChat();
23
+ }
24
+ const result = await session.sendMessage(prompt);
25
+ fs.writeFileSync(sessionFile, JSON.stringify(session));
26
+ return result.response.text();
27
+ }
28
 
29
+ app.get('/gemini', async (req, res) => {
30
+ try {
31
+ const { question, sessionId } = req.query;
32
+ if (!question || !sessionId) return res.status(400).json({ error: 'Missing parameters' });
33
+ const reply = await gemini(sessionId, question);
34
+ res.json({ reply });
35
+ } catch (error) {
36
+ res.status(500).json({ error: error.message });
37
+ }
38
+ });
39
 
40
+ app.listen(7860);