File size: 8,566 Bytes
9c2c656
 
 
cad6abc
9c2c656
d96f5d2
2772773
9c0c131
877758a
8ab30d4
cad6abc
9c2c656
95ad2c5
9c2c656
 
 
 
d96f5d2
 
 
 
 
2772773
 
 
 
 
9c0c131
 
 
 
 
877758a
 
 
 
a0e1ee7
8ab30d4
 
 
 
 
cad6abc
 
 
 
 
d96f5d2
 
95ad2c5
 
 
 
 
 
 
d96f5d2
 
 
 
 
 
 
2772773
 
 
 
 
 
 
9c0c131
 
 
 
 
 
 
877758a
 
 
 
 
a0e1ee7
 
8ab30d4
 
 
 
 
 
 
 
 
cad6abc
 
 
 
 
 
 
d96f5d2
 
 
 
 
 
 
 
 
 
a0e1ee7
d96f5d2
 
 
 
 
 
 
 
 
a0e1ee7
d96f5d2
2772773
 
 
 
 
 
 
9c0c131
a0e1ee7
9c0c131
 
 
 
 
 
 
 
 
 
 
 
a0e1ee7
 
877758a
a0e1ee7
877758a
 
a0e1ee7
877758a
 
 
a0e1ee7
2772773
8ab30d4
 
 
 
 
 
 
 
 
 
cad6abc
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from transformers import pipeline

# Загружаем модели для анализа тональности, суммаризации текста, генерации подписей к изображениям, ответов на вопросы, перевода текста, определения эмоций и автодополнения кода
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")

# Функция для анализа тональности текста
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']

# Примеры текстов для анализа тональности
sentiment_examples = [
    "I love programming, it's so much fun!",
    "This movie was terrible, I hated it.",
    "The weather is nice today.",
    "I feel so frustrated with this project.",
    "Gradio is an amazing tool for building ML demos!"
]

# Примеры текстов для суммаризации
summarization_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.",
    "Artificial intelligence is transforming industries by automating tasks and providing insights from large datasets."
]

# Примеры изображений для генерации подписей
image_examples = [
    "https://a.d-cd.net/b977306s-1920.jpg",  # Пример 1
    "https://i.pinimg.com/originals/ba/bd/6d/babd6d37eb2dd965c7f1dfb516d54094.jpg",  # Пример 2
    "https://get.wallhere.com/photo/sea-bay-water-beach-coast-swimming-pool-resort-island-lagoon-Caribbean-vacation-estate-leisure-ocean-tropics-2560x1440-px-geographical-feature-atoll-554636.jpg"  # Пример 3
]

# Примеры для ответов на вопросы
qa_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?"],
    ["Artificial intelligence is transforming industries by automating tasks and providing insights from large datasets.", "How is AI transforming industries?"]
]

# Примеры текстов для перевода
translation_examples = [
    "Hello, how are you?",
    "I love machine learning and artificial intelligence.",
    "The weather is beautiful today."
]

# Примеры текстов для определения эмоций
emotion_examples = [
    "I am so happy today!",
    "I feel really sad about what happened.",
    "This situation makes me angry.",
    "I am scared of the dark.",
    "I am surprised by the results."
]

# Примеры кода для автодополнения
code_examples = [
    "def factorial(n):",
    "import numpy as np",
    "for i in range(10):"
]

# Создаем интерфейс Gradio с вкладками
with gr.Blocks() as demo:
    with gr.Tab("Sentiment Analysis"):
        gr.Interface(
            fn=analyze_sentiment,
            inputs=gr.Textbox(lines=2, placeholder="Введите текст для анализа тональности..."),
            outputs="text",
            title="Анализ тональности текста",
            description="Введите текст, чтобы определить его тональность.",
            examples=sentiment_examples,
            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=summarization_examples,
            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=image_examples,
            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=qa_examples,
            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=translation_examples,
            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=emotion_examples,
            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=code_examples,
            examples_per_page=2
        )

# Запускаем интерфейс
demo.launch()