ivanovot commited on
Commit
be410be
·
1 Parent(s): d385d00
Files changed (2) hide show
  1. app.py +62 -0
  2. requirements.txt +2 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from g4f.client import Client
3
+
4
+ def ask(question):
5
+ client = Client()
6
+ response = client.chat.completions.create(
7
+ model="gpt-4o-mini",
8
+ messages=[{
9
+ "role": "user",
10
+ "content": question,
11
+ }],
12
+ )
13
+ return response.choices[0].message.content
14
+
15
+ # Список вопросов
16
+ questions = [
17
+ "Какой вы школьный предмет?",
18
+ "Если бы вы были расстением, то каким?",
19
+ "Какой вы инструмент из коробки с инструментами?",
20
+ "Что вкуснее: круг или квадрат?",
21
+ "Если бы вы были кнопкой, что бы вы включали?",
22
+ "Ваше любимое число?",
23
+ "Чем вы хотите быть в следующей жизни?",
24
+ "Какой вы вид отдыха?",
25
+ "Какой вы звук?",
26
+ "Если бы вы были игрушкой, то какой?"
27
+ ]
28
+
29
+ # Функция обработки данных
30
+ def analyze_test(*args):
31
+ # Создаем словарь ответов
32
+ answers = {question: answer for question, answer in zip(questions, args)}
33
+
34
+ # Формируем запрос для анализа
35
+ prompt = (
36
+ "Вы прошли уникальный тест, который раскрывает вашу внутреннюю сущность. "
37
+ "Не предлагай ответы на новые вопросы, программа не предпологает что пользователь может ответить на твой ответ"
38
+ "Представьте, что я ваш проводник в этом исследовании, и вместе мы пытаемся понять, кем вы являетесь на самом деле. "
39
+ "Проанализируйте результаты теста, соединяя их в общую картину, чтобы создать образ личности. "
40
+ "Опишите характер пользователя так, будто раскрываете его тайный архетип, избегая банальных выводов. "
41
+ "Не упоминайте конкретные ответы, но используйте их, чтобы вдохновиться и рассказать историю пользователя. "
42
+ "Ответ должен быть коротким, увлекательным, словно вы создаете его портрет в двух-трех предложениях. "
43
+ f"Вот данные теста: {str(answers)}"
44
+ )
45
+
46
+ # Здесь вы заменяете `ask` на функцию, вызывающую вашу модель
47
+ result = ask(prompt) # Предполагается, что у вас есть функция `ask`
48
+ return result
49
+
50
+ # Создаем интерфейс
51
+ inputs = [gr.Textbox(label=question, placeholder="Введите ваш ответ...") for question in questions]
52
+ interface = gr.Interface(
53
+ fn=analyze_test,
54
+ inputs=inputs,
55
+ outputs="text",
56
+ title="Тест: Кто вы?",
57
+ description="Отвечайте на вопросы развернуто чтобы получить более точный результат"
58
+ )
59
+
60
+ # Запуск интерфейса
61
+ if __name__ == "__main__":
62
+ interface.launch()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ gradio
2
+ g4f[all]