Rooni commited on
Commit
bad8307
1 Parent(s): e77690d

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +30 -7
server.js CHANGED
@@ -7,8 +7,32 @@ app.use(express.json());
7
 
8
  const openai_key = process.env.OPENAI_KEY;
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  // Определяем лимитер с задержкой 30 секунд на IP
11
- const generateImageLimiter = rateLimit({
12
  windowMs: 30 * 1000, // 30 секунд
13
  max: 1, // лимит: 1 запрос на IP
14
  handler: function (req, res /*next*/) {
@@ -19,7 +43,7 @@ const generateImageLimiter = rateLimit({
19
  });
20
 
21
  // Применяем лимитер только к определенному маршруту
22
- app.post('/generate-image', generateImageLimiter, async (req, res) => {
23
  const prompt = req.body.prompt;
24
 
25
  if (!prompt) {
@@ -28,11 +52,9 @@ app.post('/generate-image', generateImageLimiter, async (req, res) => {
28
 
29
  try {
30
  const response = await axios.post('https://api.openai.com/v1/images/generations', {
31
- prompt: prompt,
32
- n: 1,
33
- size: "1024x1024",
34
- quality: "hd",
35
- model: "dall-e-3",
36
  }, {
37
  headers: {
38
  'Authorization': `Bearer ${openai_key}`,
@@ -40,6 +62,7 @@ app.post('/generate-image', generateImageLimiter, async (req, res) => {
40
  },
41
  });
42
 
 
43
  res.json(response.data);
44
  } catch (error) {
45
  console.error(error);
 
7
 
8
  const openai_key = process.env.OPENAI_KEY;
9
 
10
+ const start = `Ты генератор рецептов. В этом чате, тебе будут присылать названия блюд или описывать их или присылать название категории, а ты должен будешь написать идеальный, понятный, подробный, лёгкий или сложный рецепт со всеми пропорциями, количествами и этапами готовки (этапы готовки должны быть разделены, например 1.1., 1.2., 2.1., 2.2. (Обязательно со звёздочками, это жирный шрифт) С эмодзи.
11
+
12
+ Ответ должен выглядить ТОЛЬКО так (чтобы потом regexp его исправил):
13
+ "
14
+ +название+Название рецепта, блюда-название-
15
+ +время+Примерное время готовки (только время, например: "40 минут", "2 часа" и т.д.)-время-
16
+
17
+ +кат+Категория: На каждый день, Основные блюда, Супы, Десерты и выпечка, Салаты, Несладкая выпечка, Завтраки, Закуски, Напитки, Ресторанные-кат-
18
+
19
+ +ингр+Ингридиенты: В именительном падеже - то есть например: "Яйцо -
20
+ 2 штуки", а не "2 яйца"; Здесь обязательно заменяй ВСЕ новые строки ("
21
+ ") на "÷"-ингр-
22
+
23
+ +рец+Рецепт; Здесь обязательно заменяй ВСЕ новые строки ("
24
+ ") на "÷"-рец-
25
+
26
+ 📙 Рецепт сгенерирова в приложении АромаАрт (yufi.rf.gd/aromaart)
27
+ "
28
+
29
+ Если ты не можешь сгенерировать такой рецепт, то напиши так:
30
+ "
31
+ +ошибка+Причина-ошибка-
32
+ "`
33
+
34
  // Определяем лимитер с задержкой 30 секунд на IP
35
+ const generateLimiter = rateLimit({
36
  windowMs: 30 * 1000, // 30 секунд
37
  max: 1, // лимит: 1 запрос на IP
38
  handler: function (req, res /*next*/) {
 
43
  });
44
 
45
  // Применяем лимитер только к определенному маршруту
46
+ app.post('/generate', generateLimiter, async (req, res) => {
47
  const prompt = req.body.prompt;
48
 
49
  if (!prompt) {
 
52
 
53
  try {
54
  const response = await axios.post('https://api.openai.com/v1/images/generations', {
55
+ messages: [{'role': 'system', 'content': start}, {'role': 'system', 'content': prompt}],
56
+ max_tokens: max_tokens,
57
+ model: "gpt-4-1106-preview",
 
 
58
  }, {
59
  headers: {
60
  'Authorization': `Bearer ${openai_key}`,
 
62
  },
63
  });
64
 
65
+ print(response.data)
66
  res.json(response.data);
67
  } catch (error) {
68
  console.error(error);