Rooni commited on
Commit
9c7d162
·
verified ·
1 Parent(s): 5796df2

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +5 -33
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,${img}` },
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
  });