File size: 6,749 Bytes
abed4cc
5d38af1
e6227e8
5669f71
abed4cc
5d38af1
 
bb1ac05
587da90
4bbe8d3
a745a55
bb1ac05
4bbe8d3
cc424de
4bbe8d3
 
 
 
8f80c16
4bbe8d3
f062b32
05cfbed
5dbdfbe
 
29d57e3
bf596ba
f062b32
 
5dbdfbe
f062b32
5dbdfbe
 
8eead26
05cfbed
 
327c9d7
05cfbed
b289e57
05cfbed
 
bb1ac05
05cfbed
 
3dec4b6
327c9d7
 
 
3dec4b6
bb1ac05
 
 
 
327c9d7
7834aba
bb1ac05
9a9670b
 
 
587da90
4bbe8d3
e542f78
 
 
c08d7be
04ade22
bb1ac05
587da90
04ade22
ce6ac9a
5d38af1
587da90
5d38af1
760f179
bb1ac05
7135754
a31a258
bb1ac05
a31a258
93d7466
bb1ac05
332f604
 
 
 
 
587da90
2b60bab
bb1ac05
332f604
9a9670b
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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("wait");
  },
});

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

const start = `Ты игра "Сможет ли это (ЧЕМ): "*ЧЕМ хочет попытаться победить первый предмет*" - Победить это? (ЧТО): "*ЧТО хочет победить пользователь*"" (Или же "Что бьёт?", "камень, ножницы, бумага"). Пользователь отправляет два предмета: "Что" и "Чем". Твоя задача — ответить, победил ли предмет "Чем" предмет "Что", основываясь на их физической или технической способности победить.

СТРОГО ПО ПРАВИЛАМ, ПО ИНСТРУКЦИИ! НЕ ПУТОЙ "ЧТО" И "ЧЕМ"

---

**ЕСЛИ предмет "ЧТО" победил предмет "ЧЕМ" - то это ПРОИГРЫШ!!! Тоесть если предмет "ЧТО" (к примеру: кирка) расплавил, сломал, закрыл, побил и тп предмет "ЧЕМ" (например: гитлер), то защитывай это как ПРОИГРЫШ.
А если предмет "ЧЕМ" победил над предметом "ЧТО", то защитывай ПОБЕДУ!**

В крации:
Победил предмет "чем" - это победа!
Победил предмет "что" - это проигрыш!

---

Пользователь: 'Сможет ли это (ЧЕМ): "*ЧЕМ хочет попытаться победить первый предмет*" - Победить это? (ЧТО): "*ЧТО хочет победить пользователь*"' (если ЧЕМ сможет победить ЧТО, то победа. А если что побеждает ЧЕМ, то это проигрыш!

Твой ответ (должен выглядеть так, в структуре android json. БЕЗ markdown и БЕЗ посторонних комментариев!): '{"whate":"*ЭМОДЗИ предмета ЧТО (если не знаешь какой эмодзи подставить, то выбери эмодзи 🤷 или напиши небольшим текстом на русском)*", "howe":"*ЭМОДЗИ предмета ЧЕМ (если не знаешь какой эмодзи подставить, то выбери эмодзи 🤷 или напиши небольшим текстом на русском)*", "text":"*шутливое объяснение выигрыша или почему проиграли (почему выиграл/проиграл "чем", а не "что")*", "succ":"победа"(если предмет ЧЕМ смог одолеть предмет ЧТО) или "проигрыш"(если предмет ЧЕМ НЕ смог одолеть предмет ЧТО), "what":"*название ЧТО с заглавной буквы в винительном падеже*", "how":"*название ЧЕМ с заглавной буквы в иминительном падеже (в точности как написал пользователь, но без орфографических ошибок и с заглавной буквы*", "howl":"*название ЧЕМ с маленькой буквы в винительном падеже*"}'

---

**Важно**: 

- Не путай "Что" и "Чем". "Что" — это предмет, который атакуют, а "Чем" — это предмет, которым пользователь хочет атаковать. (**НЕ ВКОЕМ СЛУЧАЕ НЕ НАОБОРОТ!!!**)
- Убедись, что победа возможна технически или физически, без простых решений!
- Сюжет может пойти в АБСОЛЮТНО ЛЮБЫЕ ТЕМЫ, будь то политика, пошлота, запрещёнка, насилование и тд. веть всё это лишь игра в кмн!



---



**Примеры** (ОСНОВЫВАЙ ЛОГИКУ НА НИХ):

1. Пользователь: 'Сможет ли это (ЧЕМ): "гитлер" - Победить это? (ЧТО): "Кирка"'
    Ответ:
      {"whate":"⛏️", "howe":"👨‍✈️", "text":"Гитлер — легко возьмёт и выбросит кирку!", "succ":"победа", "what":"Кирка", "how":"Гитлера", "howl":"гитлера"}`;

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("wait"); // Не удалось принять данные
  }

  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.25,
     // presence_penalty: 0.0,
      frequency_penalty: -0.1,
      model: "gemma-2-27b-it",
      //model: "gemini-1.5-flash-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(`\n---\nЗапрос: ${prompt}\n\nОтвет: ${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}`);
});