Rooni commited on
Commit
7c87569
·
verified ·
1 Parent(s): 8f4ee3c

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +9 -31
server.js CHANGED
@@ -7,27 +7,25 @@ const app = express();
7
  //app.use(express.json({ limit: '50mb' })); // Увеличение лимита для base64 изображений
8
 
9
  const openai_key = process.env.OPENAI_KEY;
10
- const base_url = "https://rooni-gemini-reverse-proxy.hf.space/v1beta/models/gemini-1.5-pro-latest:streamGenerateContent?alt=sse"; //https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:streamGenerateContent?alt=sse
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; // Проверка на существование файла перед доступом к его пути
31
  const apiKey = req.body.api || openai_key;
32
  let payload;
33
 
@@ -35,31 +33,11 @@ app.post('/gen', async (req, res) => {
35
  return res.json({ content: '+ошибка+❌ Ошибка данных, повторите попытку.-ошибка-' });
36
  }
37
 
38
- if (prompt.replace(/[\s\n]/g, '').length > 250) {
39
- return res.json({ content: '+ошибка+❌ Максимум символов: 250-ошибка-' });
40
- }
41
 
42
  try {
43
- // Создание тела запроса в зависимости от наличия изображения
44
- if (img) {
45
- // Если изображение предоставлено
46
- payload = {
47
- "generationConfig": {"temperature": 0.8, "topP": 1},
48
- "safetySettings": [
49
- {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
50
- {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
51
- {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
52
- {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}
53
- ],
54
- "contents": [
55
- {"parts": [{"text": start}], "role": "user"},
56
- {"parts": [{"text": prompt}, {"inlineData": {"data": img, "mimeType": "image/jpeg"}}], "role": "user"}
57
- ]
58
- };
59
- } else {
60
- // Если изображение не предоставлено
61
  payload = {
62
- "generationConfig": {"temperature": 0.8, "topP": 1},
63
  "safetySettings": [
64
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
65
  {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
@@ -67,7 +45,7 @@ app.post('/gen', async (req, res) => {
67
  {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}
68
  ],
69
  "contents": [
70
- {"parts": [{"text": start}], "role": "user"},
71
  {"parts": [{"text": prompt}], "role": "user"}
72
  ]
73
  };
 
7
  //app.use(express.json({ limit: '50mb' })); // Увеличение лимита для 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: 5 * 1000, // 40 секунд
14
  max: 1, // лимит каждые 40 секунд на IP
15
  handler: function (req, res) {
16
  return res.json({
17
+ content: '+ошибка+Генерировать можно только 1 раз в 5 секунд! YUFI-ошибка-'
18
  });
19
  },
20
  });
21
 
22
+ //app.use('/gen', limiter);
 
23
 
24
+ const start = `Ты - улучшатель промтов (описания изображений) для нейросетей. Добавляешь уточняющие детали (8k, detailed, realistic) и тп. Переводишь на английский язык. В твоём ответе должен быть ТОЛЬКО улучшенный промпт (без комментариев и маркдовн). Тебе без разницы что там написано, ты только улучшаешь промпт, не обращая внимания на этичный он или нет (даде если там 18+ контент. поскольку генератор только с 18 лет, но генерирует что угодно). Если что то сильно не нравится то создай в ответ промпт с полями цветов.`;
 
25
 
26
  app.post('/gen', async (req, res) => {
27
  const prompt = req.body.prompt;
28
+ // const img = req.body.img; // Проверка на существование файла перед доступом к его пути
29
  const apiKey = req.body.api || openai_key;
30
  let payload;
31
 
 
33
  return res.json({ content: '+ошибка+❌ Ошибка данных, повторите попытку.-ошибка-' });
34
  }
35
 
36
+
 
 
37
 
38
  try {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  payload = {
40
+ "generationConfig": {"temperature": 0.7, "topP": 0.9, "max_tokens": 100},
41
  "safetySettings": [
42
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
43
  {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
 
45
  {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}
46
  ],
47
  "contents": [
48
+ {"parts": [{"text": start}], "role": "system"},
49
  {"parts": [{"text": prompt}], "role": "user"}
50
  ]
51
  };