Spaces:
Running
Running
File size: 14,219 Bytes
9c2c656 c4f8111 7b634d5 9c2c656 6b6ea07 9c2c656 d96f5d2 2772773 9c0c131 877758a 8ab30d4 cad6abc b2d3653 0527733 6ef9655 3416d80 6b6ea07 9c2c656 c4f8111 7b634d5 c4f8111 9c2c656 d96f5d2 2772773 9c0c131 877758a a0e1ee7 8ab30d4 cad6abc b2d3653 0527733 6ef9655 3416d80 6b6ea07 d96f5d2 efbe364 d96f5d2 c4f8111 a0e1ee7 d96f5d2 c4f8111 a0e1ee7 d96f5d2 2772773 c4f8111 a0e1ee7 9c0c131 c4f8111 a0e1ee7 877758a a0e1ee7 877758a a0e1ee7 877758a c4f8111 a0e1ee7 2772773 8ab30d4 c4f8111 8ab30d4 cad6abc c4f8111 cad6abc b2d3653 c4f8111 b2d3653 0527733 c4f8111 0527733 6ef9655 c4f8111 6ef9655 3416d80 c4f8111 3416d80 6b6ea07 c4f8111 7b634d5 c4f8111 7b634d5 c4f8111 7b634d5 c4f8111 7b634d5 9c2c656 95ad2c5 d96f5d2 |
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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
import gradio as gr
from transformers import pipeline
from diffusers import DiffusionPipeline # Для Flux
import torch
from PIL import Image
# Загружаем модели для анализа тональности, суммаризации текста, генерации подписей к изображениям, ответов на вопросы, перевода текста, определения эмоций, автодополнения кода, определения фейковых новостей, NER, классификации изображений, генерации кода и исправления кода
sentiment_pipeline = pipeline("sentiment-analysis")
summarization_pipeline = pipeline("summarization")
image_captioning_pipeline = pipeline("image-to-text")
qa_pipeline = pipeline("question-answering")
translation_pipeline = pipeline("translation_en_to_ru", model="Helsinki-NLP/opus-mt-en-ru")
emotion_pipeline = pipeline("text-classification", model="bhadresh-savani/distilbert-base-uncased-emotion")
code_completion_pipeline = pipeline("text-generation", model="Salesforce/codegen-350M-mono")
fake_news_pipeline = pipeline("text-classification", model="roberta-base-openai-detector")
ner_pipeline = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english", grouped_entities=True)
image_classification_pipeline = pipeline("image-classification", model="google/vit-base-patch16-224")
code_generation_pipeline = pipeline("text-generation", model="deepseek-ai/deepseek-coder-1.3b-instruct")
code_fix_pipeline = pipeline("text-generation", model="deepseek-ai/deepseek-coder-1.3b-instruct")
# Загрузка модели Flux
def load_flux_model():
model_id = "black-forest-labs/flux-1.1-dev" # Замените на правильный путь к модели
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16 if device == "cuda" else torch.float32)
pipe = pipe.to(device)
return pipe
# Функция для генерации изображений с помощью Flux
def generate_image_flux(prompt):
pipe = load_flux_model()
with torch.autocast("cuda" if torch.cuda.is_available() else "cpu"):
image = pipe(prompt).images[0]
return image
# Остальные функции (analyze_sentiment, summarize_text, и т.д.) остаются без изменений
def analyze_sentiment(text):
result = sentiment_pipeline(text)[0]
return f"Label: {result['label']}, Confidence: {result['score']:.4f}"
def summarize_text(text):
result = summarization_pipeline(text, max_length=50, min_length=25, do_sample=False)
return result[0]['summary_text']
def generate_caption(image):
result = image_captioning_pipeline(image)
return result[0]['generated_text']
def answer_question(context, question):
result = qa_pipeline(question=question, context=context)
return f"Answer: {result['answer']}, Confidence: {result['score']:.4f}"
def translate_text(text):
result = translation_pipeline(text)
return result[0]['translation_text']
def detect_emotion(text):
result = emotion_pipeline(text)[0]
return f"Emotion: {result['label']}, Confidence: {result['score']:.4f}"
def complete_code(code):
result = code_completion_pipeline(code, max_length=50, num_return_sequences=1)
return result[0]['generated_text']
def detect_fake_news(text):
result = fake_news_pipeline(text)[0]
return f"Label: {result['label']}, Confidence: {result['score']:.4f}"
def recognize_entities(text):
result = ner_pipeline(text)
entities = []
for entity in result:
entities.append(f"Entity: {entity['word']}, Label: {entity['entity_group']}, Confidence: {entity['score']:.4f}")
return "\n".join(entities)
def classify_image(image):
result = image_classification_pipeline(image)
classifications = []
for item in result:
classifications.append(f"Label: {item['label']}, Confidence: {item['score']:.4f}")
return "\n".join(classifications)
def generate_code(prompt):
result = code_generation_pipeline(prompt, max_length=100, num_return_sequences=1)
return result[0]['generated_text']
def fix_code(error, problem, solution, example):
prompt = f"""
**Ошибка:** {error}
**Проблема:** {problem}
**Решение:** {solution}
**Пример:** {example}
"""
result = code_fix_pipeline(prompt, max_length=200, num_return_sequences=1)
return result[0]['generated_text']
# Создаем интерфейс Gradio с вкладками
with gr.Blocks(theme='Felguk/Felguk_theme') as demo:
with gr.Tab("Sentiment Analysis"):
gr.Interface(
fn=analyze_sentiment,
inputs=gr.Textbox(lines=2, placeholder="Введите текст для анализа тональности..."),
outputs="text",
title="Анализ тональности текста",
description="Введите текст, чтобы определить его тональность.",
examples=[
"I love programming, it's so much fun!",
"This movie was terrible, I hated it.",
"The weather is nice today."
],
examples_per_page=3
)
with gr.Tab("Text Summarization"):
gr.Interface(
fn=summarize_text,
inputs=gr.Textbox(lines=5, placeholder="Введите текст для суммаризации..."),
outputs="text",
title="Суммаризация текста",
description="Введите текст, чтобы получить его краткое содержание.",
examples=[
"Gradio is a powerful tool for building machine learning demos. It allows developers to quickly create interactive interfaces for their models.",
"The weather today is sunny with a slight breeze. It's a perfect day to go outside and enjoy nature."
],
examples_per_page=2
)
with gr.Tab("Image Captioning"):
gr.Interface(
fn=generate_caption,
inputs=gr.Image(type="pil", label="Загрузите изображение"),
outputs="text",
title="Генерация подписи к изображению",
description="Загрузите изображение, чтобы сгенерировать его описание.",
examples=[
"https://a.d-cd.net/b977306s-1920.jpg", # Пример 1
"https://i.pinimg.com/originals/ba/bd/6d/babd6d37eb2dd965c7f1dfb516d54094.jpg" # Пример 2
],
examples_per_page=2
)
with gr.Tab("Question Answering"):
gr.Interface(
fn=answer_question,
inputs=[
gr.Textbox(lines=5, placeholder="Введите контекст..."),
gr.Textbox(lines=2, placeholder="Введите вопрос...")
],
outputs="text",
title="Ответы на вопросы",
description="Введите контекст и вопрос, чтобы получить ответ.",
examples=[
["Gradio is a Python library for building machine learning demos. It allows developers to quickly create interactive interfaces for their models.", "What is Gradio?"],
["The weather today is sunny with a slight breeze. It's a perfect day to go outside and enjoy nature.", "What is the weather like today?"]
],
examples_per_page=2
)
with gr.Tab("Language Translation"):
gr.Interface(
fn=translate_text,
inputs=gr.Textbox(lines=2, placeholder="Введите текст на английском..."),
outputs="text",
title="Перевод текста (английский → русский)",
description="Введите текст на английском, чтобы перевести его на русский.",
examples=[
"Hello, how are you?",
"I love machine learning and artificial intelligence."
],
examples_per_page=2
)
with gr.Tab("Emotion Detection"):
gr.Interface(
fn=detect_emotion,
inputs=gr.Textbox(lines=2, placeholder="Введите текст для определения эмоции..."),
outputs="text",
title="Определение эмоций",
description="Введите текст, чтобы определить эмоцию.",
examples=[
"I am so happy today!",
"I feel really sad about what happened."
],
examples_per_page=2
)
with gr.Tab("Code Completion"):
gr.Interface(
fn=complete_code,
inputs=gr.Textbox(lines=5, placeholder="Введите начало кода..."),
outputs="text",
title="Автодополнение кода",
description="Введите начало кода, чтобы получить его продолжение.",
examples=[
"def factorial(n):",
"import numpy as np"
],
examples_per_page=2
)
with gr.Tab("Fake News Detection"):
gr.Interface(
fn=detect_fake_news,
inputs=gr.Textbox(lines=5, placeholder="Введите текст новости..."),
outputs="text",
title="Определение фейковых новостей",
description="Введите текст новости, чтобы определить, является ли она фейковой.",
examples=[
"A new study shows that eating chocolate every day can make you live longer.",
"The government has secretly been working on time travel technology for decades."
],
examples_per_page=2
)
with gr.Tab("Named Entity Recognition (NER)"):
gr.Interface(
fn=recognize_entities,
inputs=gr.Textbox(lines=5, placeholder="Введите текст для распознавания сущностей..."),
outputs="text",
title="Распознавание именованных сущностей (NER)",
description="Введите текст, чтобы извлечь из него именованные сущности.",
examples=[
"My name is John Doe and I live in New York.",
"Apple is looking at buying a startup in the UK for $1 billion."
],
examples_per_page=2
)
with gr.Tab("Image Classification"):
gr.Interface(
fn=classify_image,
inputs=gr.Image(type="pil", label="Загрузите изображение"),
outputs="text",
title="Классификация изображений",
description="Загрузите изображение, чтобы классифицировать его.",
examples=[
"https://a.d-cd.net/b977306s-1920.jpg", # Пример 1
"https://i.pinimg.com/originals/ba/bd/6d/babd6d37eb2dd965c7f1dfb516d54094.jpg" # Пример 2
],
examples_per_page=2
)
with gr.Tab("Code Generation"):
gr.Interface(
fn=generate_code,
inputs=gr.Textbox(lines=5, placeholder="Введите запрос для генерации кода..."),
outputs="text",
title="Генерация кода по запросу",
description="Введите текстовый запрос, чтобы сгенерировать код.",
examples=[
"Write a Python function to calculate the factorial of a number.",
"Create a JavaScript function to reverse a string."
],
examples_per_page=2
)
with gr.Tab("Code Fix"):
gr.Interface(
fn=fix_code,
inputs=[
gr.Textbox(lines=2, placeholder="Ошибка..."),
gr.Textbox(lines=2, placeholder="Проблема..."),
gr.Textbox(lines=2, placeholder="Решение..."),
gr.Textbox(lines=2, placeholder="Пример...")
],
outputs="text",
title="Исправление кода",
description="Введите ошибку, проблему, решение и пример, чтобы получить исправленный код.",
examples=[
["SyntaxError: invalid syntax", "Missing colon at the end of the if statement", "Add a colon at the end of the if statement", "if x == 5\n print('Hello')"],
["NameError: name 'x' is not defined", "Variable 'x' is not defined before use", "Define the variable 'x' before using it", "print(x)\nx = 10"]
],
examples_per_page=2
)
with gr.Tab("Image Generation (Flux)"):
gr.Interface(
fn=generate_image_flux,
inputs=gr.Textbox(lines=2, placeholder="Введите текстовый запрос..."),
outputs=gr.Image(type="pil", label="Сгенерированное изображение"),
title="Генерация изображений (Flux)",
description="Введите текстовый запрос, чтобы сгенерировать изображение с помощью Flux.",
examples=[
"A futuristic cityscape at night",
"A beautiful landscape with mountains and a lake",
"An astronaut riding a horse in space"
],
examples_per_page=2
)
# Запускаем интерфейс
demo.launch() |