Spaces:
Runtime error
Runtime error
import gradio as gr | |
import random | |
from transformers import pipeline | |
# Инициализация модели для текстовой генерации | |
generator = pipeline('text-generation', model='gpt2-medium') | |
# Функции для генерации никнеймов и аватарок | |
def generate_username(): | |
prefixes = ['gay_', 'ebat_', 'ded_', 'gandon_', 'top_'] | |
suffixes = ['penis', 'ebal', 'gandon', 'gomo', 'top', 'bot', 'sosi'] | |
return f"{random.choice(prefixes)}{random.choice(suffixes)}" | |
def generate_anime_avatar(): | |
return "https://picsum.photos/seed/anime/200/200" | |
# Функция для генерации ответа | |
def generate_response(text): | |
result = generator( | |
text, | |
max_length=100, | |
num_return_sequences=1, | |
temperature=0.7 | |
) | |
return result[0]['generated_text'] | |
# Хранилище постов | |
posts = [] | |
# Функция для добавления поста | |
def add_post(text, image, username, avatar): | |
new_post = { | |
"text": text, | |
"image": image, | |
"username": username, | |
"avatar": avatar, | |
"responses": [] | |
} | |
posts.append(new_post) | |
return "", None, update_feed() | |
# Функция для обновления ленты | |
def update_feed(): | |
feed_html = "<div class='feed'>" | |
for post in reversed(posts): # Показывать последние посты сверху | |
feed_html += f""" | |
<div class='post'> | |
<div class='post-header'> | |
<img src='{post['avatar']}' class='avatar' /> | |
<div class='post-info'> | |
<div class='username'>{post['username']}</div> | |
</div> | |
</div> | |
<div class='post-content'>{post['text']}</div> | |
<div class='post-image'><img src='{post['image']}' style='max-width: 100%; border-radius: 8px;'/></div> | |
<div class='responses'> | |
{chr(10).join(f'<div class="response">{r}</div>' for r in post['responses'])} | |
</div> | |
</div> | |
""" | |
feed_html += "</div>" | |
return feed_html | |
# Основной интерфейс | |
with gr.Blocks() as demo: | |
gr.Markdown("# 0qwpif Talk") | |
# Таб "Главная" | |
with gr.Tab("Главная"): | |
with gr.Row(): | |
with gr.Column(): | |
post_input = gr.Textbox(label="Напишите пост", placeholder="Что происходит?") | |
post_image = gr.Image(label="Изображение", interactive=True, type="filepath") | |
username_input = gr.Textbox(label="Никнейм", value=generate_username) | |
avatar_input = gr.Image(label="Аватарка", interactive=True, type="filepath", value=generate_anime_avatar) | |
gr.Button("Отправить").click( | |
add_post, | |
[post_input, post_image, username_input, avatar_input], | |
[post_input, post_image, "feed"] | |
) | |
with gr.Column(): | |
response_output = gr.Textbox(label="Ответы", interactive=False) | |
generate_btn = gr.Button("Сгенерировать ответ") | |
generate_btn.click(generate_response, post_input, response_output) | |
# Лента постов | |
feed = gr.HTML(value=update_feed) | |
# Таб "Профиль" | |
with gr.Tab("Профиль"): | |
with gr.Row(): | |
username_profile = gr.Textbox(label="Никнейм", value=generate_username) | |
avatar_profile = gr.Image(label="Аватарка", interactive=True, type="filepath", value=generate_anime_avatar) | |
with gr.Row(): | |
bio_profile = gr.Textbox(label="О себе", lines=4) | |
gr.Button("Обновить профиль") | |
demo.launch() |