Spaces:
Build error
Build error
Update server.js
Browse files
server.js
CHANGED
|
@@ -2,12 +2,18 @@ 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: '10mb' })); // Увеличение лимита для 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 секунд
|
|
@@ -29,18 +35,9 @@ app.post('/gener', async (req, res) => {
|
|
| 29 |
return res.json({ content: '+ошибка+❗ Проект закрыт и больше не функционирует из-за отсутствия финансирования!-ошибка-' });
|
| 30 |
});
|
| 31 |
|
| 32 |
-
|
| 33 |
-
destination: './uploads',
|
| 34 |
-
filename: (req, file, cb) => {
|
| 35 |
-
cb(null, Date.now() + '-' + file.originalname);
|
| 36 |
-
},
|
| 37 |
-
});
|
| 38 |
-
|
| 39 |
-
const upload = multer({ storage });
|
| 40 |
-
|
| 41 |
-
app.post('/gen', upload.single('image'), async (req, res) => {
|
| 42 |
const prompt = req.body.prompt;
|
| 43 |
-
const
|
| 44 |
const apiKey = req.body.api || openai_key;
|
| 45 |
let payload;
|
| 46 |
|
|
@@ -53,8 +50,8 @@ app.post('/gen', upload.single('image'), async (req, res) => {
|
|
| 53 |
}
|
| 54 |
|
| 55 |
// Создание тела запроса в зависимости от наличия изображения
|
| 56 |
-
if (
|
| 57 |
-
// Если изображение предоставле
|
| 58 |
payload = {
|
| 59 |
"model": "gpt-4-vision-preview",
|
| 60 |
"messages": [
|
|
@@ -76,7 +73,7 @@ app.post('/gen', upload.single('image'), async (req, res) => {
|
|
| 76 |
{
|
| 77 |
"type": "image_url",
|
| 78 |
"image_url": {
|
| 79 |
-
"url":
|
| 80 |
},
|
| 81 |
},
|
| 82 |
],
|
|
|
|
| 2 |
const rateLimit = require('express-rate-limit');
|
| 3 |
const axios = require('axios');
|
| 4 |
const multer = require('multer'); // Импорт multer
|
| 5 |
+
const ImageKit = require('imagekitio'); // Импорт ImageKit
|
| 6 |
|
| 7 |
const app = express();
|
| 8 |
app.use(express.json({ limit: '10mb' })); // Увеличение лимита для base64 изображений
|
| 9 |
|
| 10 |
const openai_key = process.env.OPENAI_KEY;
|
| 11 |
const base_url = process.env.BASE_URL;
|
| 12 |
+
const imagekit = new ImageKit({
|
| 13 |
+
publicKey: process.env.IMAGEKIT_PUBLIC_KEY,
|
| 14 |
+
privateKey: process.env.IMAGEKIT_PRIVATE_KEY,
|
| 15 |
+
urlEndpoint: process.env.IMAGEKIT_URL_ENDPOINT,
|
| 16 |
+
});
|
| 17 |
|
| 18 |
const limiter = rateLimit({
|
| 19 |
windowMs: 40 * 1000, // 40 секунд
|
|
|
|
| 35 |
return res.json({ content: '+ошибка+❗ Проект закрыт и больше не функционирует из-за отсутствия финансирования!-ошибка-' });
|
| 36 |
});
|
| 37 |
|
| 38 |
+
app.post('/gen', async (req, res) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
const prompt = req.body.prompt;
|
| 40 |
+
const imageUrl = req.body.imageUrl;
|
| 41 |
const apiKey = req.body.api || openai_key;
|
| 42 |
let payload;
|
| 43 |
|
|
|
|
| 50 |
}
|
| 51 |
|
| 52 |
// Создание тела запроса в зависимости от наличия изображения
|
| 53 |
+
if (imageUrl) {
|
| 54 |
+
// Если изображение предоставляется по URL
|
| 55 |
payload = {
|
| 56 |
"model": "gpt-4-vision-preview",
|
| 57 |
"messages": [
|
|
|
|
| 73 |
{
|
| 74 |
"type": "image_url",
|
| 75 |
"image_url": {
|
| 76 |
+
"url": imageUrl,
|
| 77 |
},
|
| 78 |
},
|
| 79 |
],
|