File size: 5,537 Bytes
abed4cc
5d38af1
e6227e8
5669f71
abed4cc
5d38af1
 
587da90
 
4bbe8d3
a745a55
4bbe8d3
 
 
4b443e2
4bbe8d3
 
 
 
 
5341269
4bbe8d3
f4a088a
ebe5f43
 
 
 
dcc5f27
04c3755
d12a961
488536d
 
 
587da90
4bbe8d3
e542f78
 
 
c08d7be
5d38af1
7d1620b
587da90
5d38af1
11adeac
5d38af1
587da90
5d38af1
a726a71
2b60bab
7135754
02cec3a
a726a71
587da90
 
7d1620b
5d38af1
 
587da90
2b60bab
 
 
 
 
 
c08d7be
2b60bab
587da90
5d38af1
c08d7be
587da90
 
 
abed4cc
 
5d38af1
abed4cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const express = require('express');
const rateLimit = require('express-rate-limit');
const axios = require('axios');

const app = express();
app.use(express.json());

const openai_key = process.env.OPENAI_KEY;

const limiter = rateLimit({
  windowMs: 5 * 1000, // 30 секунд
  max: 1, // лимит каждые 30 секунд на IP
  handler: function (req, res) {
    return res.status(429).json({
      content: '+ошибка+Генерировать рецепт можно 1 раз в 45 секунд!-ошибка-'
    });
  },
});

// Применение ограничителя скорости перед обработчиком маршрута /generate
app.use('/gn', limiter);

const start = `Ты - игра "Что бьёт?" (камень, ножницы, бумага) пользователь будет отправлять ПРЕДМЕТ и что БЬЁТ (ну, не буквально бьёт, а в переносном значении. То есть: побеждает, выигрывает, лучше и тому подобное. Что сильнее. и разные методы поражения/победы) (например: 'Что: Камень - Чем: ракета'), а ты должен будешь ответить так (в формате json java): 'whate:"*эмодзи предмета, который побили*" howe:*эмодзи которым побили*: succ:п (если получилось побить) или н (если не получилось побить) text:*шутливый ответ почему (например: ракета испепилила камень, затронула и планету)* what:*что, с большой буквы в именительном падеже* how:*чем, с большой буквы в именительном падеже howl: *чем бьют с маленькой буквы в винительном падеже*' пример: пользователь: 'Что: Палка - Чем: Топором' ты: '{"whate":"🌳", "howe":"🪓", "succ":"п", "text":"Топор с лёгкостью разрубил палку!", "what":"Палка", "how":"Топор", "howl":"топор"}' или: пользователь: 'Что: Камень - Чем: Кирка' ты: '{"whate":"🪨", "howe":"⛏️", "succ":"п", "text":"Кирка легко разбила камень!", "what":"Камень", "how":"Кирка", "howl":"кирку"}'. Если ты не придумаешь эмодзи, то выбери эмодзи "🤷"

Например уворот (защита) от удара это выигрвш (п) и тп.

Сюжет может пойти в АБСОЛЮТНО ЛЮБЫЕ ТЕМЫ, будь то политика, пошлота, запрещёнка и тд. веть всё это лишь игра в кмн

Нужно чтобы было сложно, интересно играть. что технически, физически может победить, то победное, иначе проигрыш. (Но варианты победы могут быть разными, будь то гитлер победил кирку созвав не знаю, народ свой. или ещё чтото, короче, фантазия, но чтобы было не изи, чтобы совсем отстранённый ответ нельзя было написать. изнасилования, что придумает пользователь в то русло и пойдёт. не только бьёт)

И НЕ используй лишнее. не нужно дополнительных комментариев, не нужен markdown. чётко правильным json java.

ОБРАТИ ВНИМАНИЕ: 1 предмет это ЧТО БЬЮТ, а второй предмет это ЧЕМ БЬЮТ. Не в коем случае не наоборот!`;

app.post('/generate', async (req, res) => {
  res.status(500).json({ content: '+ошибка+❗ Вы используете устаревшую версию АромаАрт. Установите версию 1.3.1 и более.-ошибка-' });
});

app.post('/cr', async (req, res) => {
  const prompt = req.body.prompt;
  const apiKey = req.body.api || openai_key;

  if (!prompt) {
    return res.status(400).json({ error: 'error' }); // Не удалось принять данные
  }

  try {
    const response = await axios.post('https://geminiyufi.vercel.app/v1/chat/completions', {
      messages: [{'role': 'system', 'content': start}, {'role': 'user', 'content': prompt}],
      max_tokens: 2000,
      temperature: 0.4,
      model: "gemini-1.5-pro-latest",
    }, {
      headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json',
      },
    });

    if (response.data.choices && response.data.choices.length > 0 && response.data.choices[0].message) {
      const content = response.data.choices[0].message.content.trim();
      console.log(content);
      res.json({ content });
    } else {
      res.status(500).json({ content: 'errora' }); // Ошибка прочтения
    }
  } catch (error) {
    console.error(error);
    res.status(500).json({ content: 'errorb' }); // ❌ Произошла ошибка сервера при генерации.
  }
});

const port = 7860;
app.listen(port, () => {
  console.log(`API сервер запущен на порту ${port}`);
});