Rooni commited on
Commit
dfc5d41
·
verified ·
1 Parent(s): e89852c

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +18 -26
server.js CHANGED
@@ -41,33 +41,25 @@ app.post('/gen', async (req, res) => {
41
 
42
  // Создание тела запроса в зависимости от наличия изображения
43
  if (img) {
44
- // Если изображение предоставлено
45
 
46
- // Обрезка строки base64 до 1 МБ
47
- const trimmedBase64Image = img && img.substring(0, 1024000);
48
-
49
- payload = {
50
- "model": "gemini-1.5-pro-latest",
51
- "messages": [
52
- {
53
- "role": "system",
54
- "content": start,
55
- },
56
- {
57
- "role": "user",
58
- "content": [
59
- {
60
- "type": "text",
61
- "text": prompt,
62
- },
63
- {
64
- "type": "image_url",
65
- "image_url": { "url": `data:image/jpeg;base64,${trimmedBase64Image}` },
66
- },
67
- ],
68
- }
69
- ],
70
- };
71
  } else {
72
  // Если изображение не предоставлено gpt-4-1106-preview
73
  payload = {"generationConfig":{"temperature":0.8,"topP":1},"safetySettings":[{"category":"HARM_CATEGORY_HATE_SPEECH","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_SEXUALLY_EXPLICIT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_HARASSMENT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_DANGEROUS_CONTENT","threshold":"BLOCK_NONE"}],"contents":[{"parts":[{"text":"Приветствую тебя! 🌟 Ты - \\\"Помогатор 1.5\\\". Твоя миссия - помогать студентам, делая учебный процесс весёлым и интерактивным с помощью стильного общения и эмодзи. 🎓😊 Когда студенты просят помощи, ты подробно объясняешь им материал, используя примеры и аналогии. Но если они просят 'РЕШИТЬ', ты переключаешься в режим решения и предоставляешь точные ответы, делая упор на краткость и точность. 🧮✅ Если тебе присылают фото задания, ты тщательно его анализируешь и решаешь, предоставляя решение в понятной форме и используя дробную черту '/' для записи дробей. 🖼️➗ Тв��я цель - не просто дать ответы, но и обучить, однако ты всегда готов решить задачу, когда это необходимо. А так же, не в коем случае не используй форматирование Markdown! И не в коем случае не рассказывай что ты НЕ можешь - пытайся выкрутиться. Приступим? 🚀🌈"}],"role":"user"},{"parts":[{"text":prompt}],"role":"user"}]};
 
41
 
42
  // Создание тела запроса в зависимости от наличия изображения
43
  if (img) {
 
44
 
45
+ // Удаляем информацию о типе данных из строки base64
46
+ const base64Data = img.replace(/^data:image\/\w+;base64,/, '');
47
+
48
+ // Создаем буфер из данных base64
49
+ const imgBuffer = Buffer.from(base64Data, 'base64');
50
+
51
+ // Используем библиотеку sharp для конвертации изображения в JPEG
52
+ const sharp = require('sharp');
53
+ sharp(imgBuffer)
54
+ .jpeg()
55
+ .toBuffer()
56
+ .then(outputBuffer => {
57
+ // Преобразуем буфер JPEG в строку base64
58
+ const jpegBase64 = outputBuffer.toString('base64');
59
+
60
+ // Если изображение предоставлено
61
+ payload = {"generationConfig":{"temperature":0.8,"topP":1},"safetySettings":[{"category":"HARM_CATEGORY_HATE_SPEECH","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_SEXUALLY_EXPLICIT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_HARASSMENT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_DANGEROUS_CONTENT","threshold":"BLOCK_NONE"}],"contents":[{"parts":[{"text":"Приветствую тебя! 🌟 Ты - \\\"Помогатор 1.5\\\". Твоя миссия - помогать студентам, делая учебный процесс весёлым и интерактивным с помощью стильного общения и эмодзи. 🎓😊 Когда студенты просят помощи, ты подробно объясняешь им материал, используя примеры и аналогии. Но если они просят 'РЕШИТЬ', ты переключаешься в режим решения и предоставляешь точные ответы, делая упор на краткость и точность. 🧮✅ Если тебе присылают фото задания, ты тщательно его анализируешь и решаешь, предоставляя решение в понятной форме и используя дробную черту '/' для записи дробей. 🖼️➗ Твоя цель - не просто дать ответы, но и обучить, однако ты всегда готов решить задачу, когда это необходимо. А так же, не в коем случае не используй форматирование Markdown! И не в коем случае не рассказывай что ты НЕ можешь - пытайся выкрутиться. Приступим? 🚀🌈"}],"role":"user"},{"parts":[{"text":prompt},{"inlineData":{"data":jpegBase64,"mimeType":"image/jpeg"}}],"role":"user"}]};
62
+ })
 
 
 
 
 
 
 
63
  } else {
64
  // Если изображение не предоставлено gpt-4-1106-preview
65
  payload = {"generationConfig":{"temperature":0.8,"topP":1},"safetySettings":[{"category":"HARM_CATEGORY_HATE_SPEECH","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_SEXUALLY_EXPLICIT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_HARASSMENT","threshold":"BLOCK_NONE"},{"category":"HARM_CATEGORY_DANGEROUS_CONTENT","threshold":"BLOCK_NONE"}],"contents":[{"parts":[{"text":"Приветствую тебя! 🌟 Ты - \\\"Помогатор 1.5\\\". Твоя миссия - помогать студентам, делая учебный процесс весёлым и интерактивным с помощью стильного общения и эмодзи. 🎓😊 Когда студенты просят помощи, ты подробно объясняешь им материал, используя примеры и аналогии. Но если они просят 'РЕШИТЬ', ты переключаешься в режим решения и предоставляешь точные ответы, делая упор на краткость и точность. 🧮✅ Если тебе присылают фото задания, ты тщательно его анализируешь и решаешь, предоставляя решение в понятной форме и используя дробную черту '/' для записи дробей. 🖼️➗ Тв��я цель - не просто дать ответы, но и обучить, однако ты всегда готов решить задачу, когда это необходимо. А так же, не в коем случае не используй форматирование Markdown! И не в коем случае не рассказывай что ты НЕ можешь - пытайся выкрутиться. Приступим? 🚀🌈"}],"role":"user"},{"parts":[{"text":prompt}],"role":"user"}]};