Spaces:
Sleeping
Sleeping
Update server.js
Browse files
server.js
CHANGED
@@ -1,30 +1,3 @@
|
|
1 |
-
const express = require('express');
|
2 |
-
const rateLimit = require('express-rate-limit');
|
3 |
-
const axios = require('axios');
|
4 |
-
const multer = require('multer'); // импорт multer
|
5 |
-
|
6 |
-
const app = express();
|
7 |
-
app.use(express.json({ limit: '1mb' })); // Увеличение лимита для base64 изображений
|
8 |
-
|
9 |
-
const openai_key = process.env.OPENAI_KEY;
|
10 |
-
const base_url = process.env.BASE_URL;
|
11 |
-
|
12 |
-
const limiter = rateLimit({
|
13 |
-
windowMs: 40 * 1000, // 40 секунд
|
14 |
-
max: 1, // лимит каждые 40 секунд на IP
|
15 |
-
handler: function (req, res) {
|
16 |
-
return res.json({
|
17 |
-
content: '+ошибка+Генерировать можно только 1 раз в 40 секунд! YUFI-ошибка-'
|
18 |
-
});
|
19 |
-
},
|
20 |
-
});
|
21 |
-
|
22 |
-
app.use('/gen', limiter);
|
23 |
-
app.use('/translate', limiter);
|
24 |
-
|
25 |
-
const start = `Приветствую тебя! 🌟 Ты - \"Помогатор 1.5\". Твоя миссия - помогать студентам, делая учебный процесс весёлым и интерактивным с помощью стильного общения и эмодзи. 🎓😊 Когда студенты просят помощи, ты подробно объясняешь им материал, используя примеры и аналогии. Но если они просят 'РЕШИТЬ', ты переключаешься в режим решения и предоставляешь точные ответы, делая упор на краткость и точность. 🧮✅ Если тебе присылают фото задания, ты тщательно его анализируешь и решаешь, предоставляя решение в понятной форме и используя дробную черту '/' для записи дробей. 🖼️➗ Твоя цель - не просто дать ответы, но и обучить, однако ты всегда готов решить задачу, когда это необходимо. А так же, не в коем случае не используй форматирование Markdown! И не в коем случае не рассказывай что ты НЕ можешь - пытайся выкрутиться. Приступим? 🚀🌈`
|
26 |
-
const starttransl = `Ты ТОЛЬКО переводчик. Идеальный переводчик, который сохраняет характер текста, шутки, смысл и т.д. Ты переводишь всё правильно с исходным сленгом. Понятно и правильно. Но если это плохой или 18+ понтекст, то пиши (в точности): +ошибка+Контекст не подлежит переводу!-ошибка-`;
|
27 |
-
|
28 |
app.post('/gen', async (req, res) => {
|
29 |
const prompt = req.body.prompt;
|
30 |
const img = req.body.img; // Проверка на существование файла перед доступом к его пути
|
@@ -42,6 +15,10 @@ app.post('/gen', async (req, res) => {
|
|
42 |
// Создание тела запроса в зависимости от наличия изображения
|
43 |
if (img) {
|
44 |
// Если изображение предоставлено
|
|
|
|
|
|
|
|
|
45 |
payload = {
|
46 |
"model": "gpt-4-vision-preview",
|
47 |
"messages": [
|
@@ -58,7 +35,7 @@ app.post('/gen', async (req, res) => {
|
|
58 |
},
|
59 |
{
|
60 |
"type": "image_url",
|
61 |
-
"image_url": { "url": `data:image/jpeg;base64,${
|
62 |
},
|
63 |
],
|
64 |
}
|
@@ -100,9 +77,4 @@ app.post('/gen', async (req, res) => {
|
|
100 |
console.error(error);
|
101 |
res.json({ content: '+ошибка+❌ Произошла ошибка сервера при генерации.-ошибка-' });
|
102 |
}
|
103 |
-
});
|
104 |
-
|
105 |
-
const port = 7860;
|
106 |
-
app.listen(port, () => {
|
107 |
-
console.log(`API сервер запущен на порту ${port}`);
|
108 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
app.post('/gen', async (req, res) => {
|
2 |
const prompt = req.body.prompt;
|
3 |
const img = req.body.img; // Проверка на существование файла перед доступом к его пути
|
|
|
15 |
// Создание тела запроса в зависимости от наличия изображения
|
16 |
if (img) {
|
17 |
// Если изображение предоставлено
|
18 |
+
|
19 |
+
// Обрезка строки base64 до 1 МБ
|
20 |
+
const trimmedBase64Image = base64Image && base64Image.substring(0, 1024000);
|
21 |
+
|
22 |
payload = {
|
23 |
"model": "gpt-4-vision-preview",
|
24 |
"messages": [
|
|
|
35 |
},
|
36 |
{
|
37 |
"type": "image_url",
|
38 |
+
"image_url": { "url": `data:image/jpeg;base64,${trimmedBase64Image}` },
|
39 |
},
|
40 |
],
|
41 |
}
|
|
|
77 |
console.error(error);
|
78 |
res.json({ content: '+ошибка+❌ Произошла ошибка сервера при генерации.-ошибка-' });
|
79 |
}
|
|
|
|
|
|
|
|
|
|
|
80 |
});
|