0qwpifs commited on
Commit
4c2d508
·
verified ·
1 Parent(s): fcccfd0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +94 -9
app.py CHANGED
@@ -1,20 +1,105 @@
1
  import gradio as gr
 
 
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  def generate_response(text):
4
- # Здесь будет логика генерации ответа нейросетью
5
- return "Это заглушка для генерации ответа"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- with gr.Blocks() as demo:
 
 
 
 
 
 
 
 
8
  gr.Markdown("# 0qwpif Talk")
9
 
 
10
  with gr.Tab("Главная"):
11
- post_input = gr.Textbox(label="Напишите пост")
12
- response = gr.Textbox(label="Ответ")
13
- gr.Button("Отправить").click(generate_response, post_input, response)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
 
15
  with gr.Tab("Профиль"):
16
- username = gr.Textbox(label="Никнейм")
17
- avatar = gr.Image(label="Аватарка", source="upload", type="filepath")
18
- bio = gr.Textbox(label="О себе", lines=4)
 
 
 
19
 
20
  demo.launch()
 
1
  import gradio as gr
2
+ import random
3
+ from transformers import pipeline
4
 
5
+ # Инициализация модели для текстовой генерации
6
+ generator = pipeline('text-generation', model='gpt2-medium')
7
+
8
+ # Функции для генерации никнеймов и аватарок
9
+ def generate_username():
10
+ prefixes = ['gay_', 'ebat_', 'ded_', 'gandon_', 'top_']
11
+ suffixes = ['penis', 'ebal', 'gandon', 'gomo', 'top', 'bot', 'sosi']
12
+ return f"{random.choice(prefixes)}{random.choice(suffixes)}"
13
+
14
+ def generate_anime_avatar():
15
+ return "https://picsum.photos/seed/anime/200/200"
16
+
17
+ # Функция для генерации ответа
18
  def generate_response(text):
19
+ result = generator(
20
+ text,
21
+ max_length=100,
22
+ num_return_sequences=1,
23
+ temperature=0.7
24
+ )
25
+ return result[0]['generated_text']
26
+
27
+ # Хранилище постов
28
+ posts = []
29
+
30
+ # Функция для добавления поста
31
+ def add_post(text, image, username, avatar):
32
+ new_post = {
33
+ "text": text,
34
+ "image": image,
35
+ "username": username,
36
+ "avatar": avatar,
37
+ "responses": []
38
+ }
39
+ posts.append(new_post)
40
+ return "", None, update_feed()
41
+
42
+ # Функция для обновления ленты
43
+ def update_feed():
44
+ feed_html = "<div class='feed'>"
45
+ for post in reversed(posts): # Показывать последние посты сверху
46
+ feed_html += f"""
47
+ <div class='post'>
48
+ <div class='post-header'>
49
+ <img src='{post['avatar']}' class='avatar' />
50
+ <div class='post-info'>
51
+ <div class='username'>{post['username']}</div>
52
+ </div>
53
+ </div>
54
+ <div class='post-content'>{post['text']}</div>
55
+ <div class='post-image'><img src='{post['image']}' style='max-width: 100%; border-radius: 8px;'/></div>
56
+ <div class='responses'>
57
+ {chr(10).join(f'<div class="response">{r}</div>' for r in post['responses'])}
58
+ </div>
59
+ </div>
60
+ """
61
+ feed_html += "</div>"
62
+ return feed_html
63
 
64
+ # Основной интерфейс
65
+ with gr.Blocks(css """.gradio-container {background-color: #1A1C20}
66
+ .post {border: 1px solid #40444B; border-radius: 8px; padding: 15px; margin-bottom: 15px}
67
+ .avatar {width: 40px; height: 40px; border-radius: 50%}
68
+ .username {color: #FFFFFF; font-weight: bold}
69
+ .post-content {margin: 10px 0}
70
+ .post-image {margin: 10px 0}
71
+ .response {color: #8E929A; margin: 5px 0}
72
+ """) as demo:
73
  gr.Markdown("# 0qwpif Talk")
74
 
75
+ # Таб "Главная"
76
  with gr.Tab("Главная"):
77
+ with gr.Row():
78
+ with gr.Column():
79
+ post_input = gr.Textbox(label="Напишите пост", placeholder="Что происходит?")
80
+ post_image = gr.Image(label="Изображение", interactive=True, type="filepath")
81
+ username_input = gr.Textbox(label="Никнейм", value=generate_username)
82
+ avatar_input = gr.Image(label="Аватарка", interactive=True, type="filepath", value=generate_anime_avatar)
83
+ gr.Button("Отправить").click(
84
+ add_post,
85
+ [post_input, post_image, username_input, avatar_input],
86
+ [post_input, post_image, "feed"]
87
+ )
88
+ with gr.Column():
89
+ response_output = gr.Textbox(label="Ответы", interactive=False)
90
+ generate_btn = gr.Button("Сгенерировать ответ")
91
+ generate_btn.click(generate_response, post_input, response_output)
92
+
93
+ # Лента постов
94
+ feed = gr.HTML(value=update_feed)
95
 
96
+ # Таб "Профиль"
97
  with gr.Tab("Профиль"):
98
+ with gr.Row():
99
+ username_profile = gr.Textbox(label="Никнейм", value=generate_username)
100
+ avatar_profile = gr.Image(label="Аватарка", interactive=True, type="filepath", value=generate_anime_avatar)
101
+ with gr.Row():
102
+ bio_profile = gr.Textbox(label="О себе", lines=4)
103
+ gr.Button("Обновить профиль")
104
 
105
  demo.launch()