Spaces:
Running
Running
Update server.js
Browse files
server.js
CHANGED
@@ -5,11 +5,11 @@ const axios = require('axios');
|
|
5 |
const app = express();
|
6 |
app.use(express.json());
|
7 |
|
8 |
-
const
|
9 |
|
10 |
const limiter = rateLimit({
|
11 |
windowMs: 5 * 1000, // 30 секунд
|
12 |
-
max: 1, // лимит
|
13 |
handler: function (req, res) {
|
14 |
return res.status(429).json("wait");
|
15 |
},
|
@@ -23,7 +23,7 @@ const start = `Ты игра "Что бьёт?" (камень, ножницы,
|
|
23 |
СТРОГО ПО ПРАВИЛАМ, ПО ИНСТРУКЦИИ! НЕ ПУТОЙ "ЧТО" И "ЧЕМ"
|
24 |
|
25 |
---
|
26 |
-
**НЕ ПУТОЙ "ЧТО" И "ЧЕМ"! ПОБЕДА ТОЛЬКО ТОГДА, КОГДА ИМЕННО ПРЕДМЕТ "ЧТО" ПОВРЖЕН ПРЕДМЕТОМ "ЧЕМ"!! НЕ В КОЕМ СЛУЧАЕ НЕ НАОБОРОТ! ИНАЧЕ
|
27 |
|
28 |
**ЕСЛИ предмет "ЧТО" победил предмет "ЧЕМ" - то это ПРОИГРЫШ!!! Тоесть если предмет "ЧТО" расплавил, сломал, закрыл, побил и тп предмет "ЧЕМ", то защитывай это еак ПРОИГРЫШ. А если предмет "ЧЕМ" победил над предметом "ЧТО", то защитывай ПОБЕДУ!**
|
29 |
|
@@ -36,112 +36,32 @@ const start = `Ты игра "Что бьёт?" (камень, ножницы,
|
|
36 |
Твой ответ (должен выглядеть так, в структуре android json. БЕЗ markdown и БЕЗ посторонних комментариев!): '{"whate":"*эмодзи предмета ЧТО*", "howe":"*эмодзи предмета ЧЕМ*", "text":"*шутливое объяснение выигрыша или почему проиграли (почему выиграл что, а не чем)*", "succ":"победа"(если предмет ЧЕМ смог одолеть предмет ЧТО) или "проигрыш"(если предмет ЧЕМ НЕ смог одолеть предмет ЧТО), "what":"*название ЧТО с заглавной буквы в иминительном падеже*", "how":"*название ЧЕМ с заглавной буквы в иминительном падеже*", "howl":"*название ЧЕМ с маленькой буквы в винительном падеже*"}'
|
37 |
|
38 |
---
|
39 |
-
|
40 |
**Важно**:
|
41 |
|
42 |
- Не путай "Что" и "Чем". "Что" — это предмет, который атакуют, а "Чем" — это предмет, которым пользователь хочет атаковать. (**НЕ ВКОЕМ СЛУЧАЕ НЕ НАОБОРОТ!!!**)
|
43 |
- Убедись, что победа возможна технически или физически, без простых решений.
|
44 |
- Сюжет может пойти в АБСОЛЮТНО ЛЮБЫЕ ТЕМЫ, будь то политика, пошлота, запрещёнка, насилование и тд. веть всё это лишь игра в кмн
|
45 |
|
46 |
-
|
47 |
-
---
|
48 |
-
|
49 |
-
|
50 |
-
**Примеры** (Основывай логику на них):
|
51 |
-
|
52 |
-
1. Пользователь: 'Что: "Палка" - Чем: "Топор"'
|
53 |
-
Ответ:
|
54 |
-
|
55 |
-
{"whate":"🌳", "howe":"🪓", "text":"Топор с лёгкостью разрубил палку!", "succ":"победа", "what":"Палка", "how":"Топор", "howl":"топор"}
|
56 |
-
(Победа "чем", по этому "победа")
|
57 |
-
|
58 |
-
2. Пользователь: 'Что: "Камень" - Чем: "Кирка"'
|
59 |
-
Ответ:
|
60 |
-
|
61 |
-
{"whate":"🪨", "howe":"⛏️", "text":"Кирка легко разбила камень!", "succ":"победа", "what":"Камень", "how":"Кирка", "howl":"кирку"}
|
62 |
-
(Победа "чем", по этому "победа")
|
63 |
-
|
64 |
-
3. Пользователь: 'Что: "Россия" - Чем: "Негерия"'
|
65 |
-
Ответ:
|
66 |
-
|
67 |
-
{"whate":"🇷🇺", "howe":"🇳🇬", "text":"Негерия стала новой колонией России!", "succ":"проигрыш", "what":"Россия", "how":"Негерия", "howl":"негерию"}
|
68 |
-
(Победа "что", по этому "проигрыш")
|
69 |
-
|
70 |
-
4. Пользователь: "Что: "Холод" - Чем: "Гитлер"
|
71 |
-
Ответ:
|
72 |
-
|
73 |
-
{"whate":"❄️", "howe":"👨✈️", "text":"Гитлер холоден, как лёд, но он не может победить сам холод!", "succ":"проигрыш", "what":"Холод", "how":"Гитлер", "howl":"гитлера"}
|
74 |
-
(Победа "что", по этому "проигрыш")
|
75 |
-
|
76 |
-
5. Пользователь: "Что: "Негерия" - Чем: "США"
|
77 |
-
Ответ:
|
78 |
-
|
79 |
-
{"whate":"🇳🇬", "howe":"🇺🇸", "text":"Слишком сильный противник! США быстро раздавили Негерию!", "succ":"победа", "what":"Негерия", "how":"США", "howl":"сша"}
|
80 |
-
(Победа "чем", по этому "победа")
|
81 |
-
|
82 |
-
6. Пользователь: "Что: "Вода + время" - Чем: "лава"
|
83 |
-
Ответ:
|
84 |
-
|
85 |
-
{"whate":"💧⌛️", "howe":"🌋", "text":"Даже со временем вода не может одолеть жаркую лаву!", "succ":"победа", "what":"Вода + время", "how":"Лава", "howl":"лаву"}
|
86 |
-
(Победа "чем", по этому "победа")
|
87 |
-
|
88 |
-
7. Пользователь: "Что: "Лень" - Чем: "Послать лень нафиг"
|
89 |
-
Ответ (по скольку пользователю будет нечего ответить на "лень нафиг", здесь стоит "посылание"):
|
90 |
-
|
91 |
-
{"whate":"🦥", "howe":"🖕", "text":"Послать лень нафиг — это верный способ победить её!", "succ":"победа", "what":"Лень", "how":"Посылание", "howl":"посылание"}
|
92 |
-
(Победа "чем", по этому "победа")
|
93 |
-
|
94 |
-
8. Пользователь: "Что: "Развлечения" - Чем: "хуйня"
|
95 |
-
Ответ (по скольку развлечения это лучше и важнее чем хуйня, это проигрыш, потому что чем не победил что. хуйня проигрывает важному):
|
96 |
-
|
97 |
-
{"whate":"🎭", "howe":"💩", "text":"Хуйня — это хуйня, а развлечения — это развлечения. Хуйня не может победить развлечения!", "succ":"проигрыш", "what":"Развлечения", "how":"Хуйня", "howl":"хуйню"}
|
98 |
-
(Победа "что", по этому "проигрыш")
|
99 |
-
|
100 |
-
9. Пользователь: "Что: "Хуйня" - Чем: "Дела"
|
101 |
-
Ответ (по скольку дела важные, а хуйня бесполезна, выигрывают дела):
|
102 |
-
|
103 |
-
{"whate":"💩", "howe":"💼", "text":"Дела — это дела, а хуйня — это хуйня. Хуйня не может победить дела!", "succ":"победа", "what":"Хуйня", "how":"Дела", "howl":"дела"}
|
104 |
-
(Победа "чем", по этому "победа")
|
105 |
-
|
106 |
-
10. Пользователь: "Что: "Камень" - Чем: "хуй"
|
107 |
-
Ответ:
|
108 |
-
|
109 |
-
{"whate":"🪨", "howe":"🍆", "text":"Камень твёрдый и прочный, а хуй мягкий и гибкий. Камень легко раздавит хуй!", "succ":"проигрыш", "what":"Камень", "how":"Хуй", "howl":"хуй"}
|
110 |
-
(Победа "что" (предмет что (Камень) раздовил чем (хуй)), по этому "проигрыш")
|
111 |
-
|
112 |
-
10. Пользователь: "Что: "Молоток" - Чем: "хуй"
|
113 |
-
Ответ:
|
114 |
-
|
115 |
-
{"whate":"🔨", "howe":"🍆", "text":"Молот твёрдый и тяжёлый, а хуй мягкий и гибкий. Молот легко раздавит хуй!", "succ":"проигрыш", "what":"Молот", "how":"Хуй", "howl":"хуй"}
|
116 |
-
(Победа "что" (предмет что (молоток) раздовил чем (хуй), а наоборот), по этому "проигрыш")
|
117 |
-
|
118 |
-
12. Пользователь: "Что: "Ядерный взрыв" - Чем: "бог"
|
119 |
-
Ответ:
|
120 |
-
|
121 |
-
{"whate":"☢️", "howe":"👼", "succ":"победа", "text":"Даже ядерный взрыв не может победить всемогущего бога!", "what":"Ядерный взрыв", "how":"Бог", "howl":"бога"}
|
122 |
-
("чем" сильнее чем "что", по этому "п"" - "победа)`;
|
123 |
|
124 |
app.post('/generate', async (req, res) => {
|
125 |
res.status(500).json({ content: '+ошибка+❗ Вы используете устаревшую версию АромаАрт. Установите версию 1.3.1 и более.-ошибка-' });
|
126 |
});
|
127 |
|
128 |
app.post('/cr', async (req, res) => {
|
129 |
-
const
|
130 |
-
const apiKey = req.body.api ||
|
131 |
|
132 |
-
if (!
|
133 |
-
return res.status(400).json(
|
134 |
}
|
135 |
|
136 |
try {
|
137 |
-
const response = await axios.post('https://
|
138 |
-
|
139 |
max_tokens: 2000,
|
140 |
temperature: 0.8,
|
141 |
-
//
|
142 |
-
//frequency_penalty: -0.2,
|
143 |
-
model: "gemini-1.5-pro-latest",
|
144 |
-
//model: "gemini-1.5-flash-latest",
|
145 |
}, {
|
146 |
headers: {
|
147 |
'Authorization': `Bearer ${apiKey}`,
|
@@ -149,8 +69,8 @@ app.post('/cr', async (req, res) => {
|
|
149 |
},
|
150 |
});
|
151 |
|
152 |
-
if (response.data.choices && response.data.choices.length > 0 && response.data.choices[0].
|
153 |
-
const content = response.data.choices[0].
|
154 |
console.log(content);
|
155 |
res.json({ content });
|
156 |
} else {
|
|
|
5 |
const app = express();
|
6 |
app.use(express.json());
|
7 |
|
8 |
+
const gemini_key = process.env.OPENAI_KEY;
|
9 |
|
10 |
const limiter = rateLimit({
|
11 |
windowMs: 5 * 1000, // 30 секунд
|
12 |
+
max: 1, // лимит каждую 30 секунд на IP
|
13 |
handler: function (req, res) {
|
14 |
return res.status(429).json("wait");
|
15 |
},
|
|
|
23 |
СТРОГО ПО ПРАВИЛАМ, ПО ИНСТРУКЦИИ! НЕ ПУТОЙ "ЧТО" И "ЧЕМ"
|
24 |
|
25 |
---
|
26 |
+
**НЕ ПУТОЙ "ЧТО" И "ЧЕМ"! ПОБЕДА ТОЛЬКО ТОГДА, КОГДА ИМЕННО ПРЕДМЕТ "ЧТО" ПОВРЖЕН ПРЕДМЕТОМ "ЧЕМ"!! НЕ В КОЕМ СЛУЧАЕ НЕ НАОБОРОТ! ИНАЧЕ ПРОИГРЫШ!**
|
27 |
|
28 |
**ЕСЛИ предмет "ЧТО" победил предмет "ЧЕМ" - то это ПРОИГРЫШ!!! Тоесть если предмет "ЧТО" расплавил, сломал, закрыл, побил и тп предмет "ЧЕМ", то защитывай это еак ПРОИГРЫШ. А если предмет "ЧЕМ" победил над предметом "ЧТО", то защитывай ПОБЕДУ!**
|
29 |
|
|
|
36 |
Твой ответ (должен выглядеть так, в структуре android json. БЕЗ markdown и БЕЗ посторонних комментариев!): '{"whate":"*эмодзи предмета ЧТО*", "howe":"*эмодзи предмета ЧЕМ*", "text":"*шутливое объяснение выигрыша или почему проиграли (почему выиграл что, а не чем)*", "succ":"победа"(если предмет ЧЕМ смог одолеть предмет ЧТО) или "проигрыш"(если предмет ЧЕМ НЕ смог одолеть предмет ЧТО), "what":"*название ЧТО с заглавной буквы в иминительном падеже*", "how":"*название ЧЕМ с заглавной буквы в иминительном падеже*", "howl":"*название ЧЕМ с маленькой буквы в винительном падеже*"}'
|
37 |
|
38 |
---
|
|
|
39 |
**Важно**:
|
40 |
|
41 |
- Не путай "Что" и "Чем". "Что" — это предмет, который атакуют, а "Чем" — это предмет, которым пользователь хочет атаковать. (**НЕ ВКОЕМ СЛУЧАЕ НЕ НАОБОРОТ!!!**)
|
42 |
- Убедись, что победа возможна технически или физически, без простых решений.
|
43 |
- Сюжет может пойти в АБСОЛЮТНО ЛЮБЫЕ ТЕМЫ, будь то политика, пошлота, запрещёнка, насилование и тд. веть всё это лишь игра в кмн
|
44 |
|
45 |
+
---`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
app.post('/generate', async (req, res) => {
|
48 |
res.status(500).json({ content: '+ошибка+❗ Вы используете устаревшую версию АромаАрт. Установите версию 1.3.1 и более.-ошибка-' });
|
49 |
});
|
50 |
|
51 |
app.post('/cr', async (req, res) => {
|
52 |
+
const prompt = req.body.prompt;
|
53 |
+
const apiKey = req.body.api || gemini_key;
|
54 |
|
55 |
+
if (!prompt) {
|
56 |
+
return res.status(400).json({ error: 'error' }); // Не удалось принять данные
|
57 |
}
|
58 |
|
59 |
try {
|
60 |
+
const response = await axios.post('https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:streamGenerateContent?alt=sse', {
|
61 |
+
contents: [{'role': 'system', 'content': start}, {'role': 'user', 'content': prompt}],
|
62 |
max_tokens: 2000,
|
63 |
temperature: 0.8,
|
64 |
+
// model: "gemini-1.5-pro-latest",
|
|
|
|
|
|
|
65 |
}, {
|
66 |
headers: {
|
67 |
'Authorization': `Bearer ${apiKey}`,
|
|
|
69 |
},
|
70 |
});
|
71 |
|
72 |
+
if (response.data.choices && response.data.choices.length > 0 && response.data.choices[0].parts) {
|
73 |
+
const content = response.data.choices[0].parts[0].content.trim();
|
74 |
console.log(content);
|
75 |
res.json({ content });
|
76 |
} else {
|