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") speech_to_text_pipeline = pipeline("automatic-speech-recognition", model="openai/whisper-small") # Функция для анализа тональности текста 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 transcribe_audio(audio): result = speech_to_text_pipeline(audio) return result['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?"] ] # Примеры аудио для расшифровки audio_examples = [ "https://lazypy.ro/tts/assets/audio/StreamElements_Nicole_5c029bf08a515afb40579f0cd0c028bf.mp3", # Пример 1 "https://lazypy.ro/tts/assets/audio/Bing_en-US-EricNeural_e2ca58109fc0206fb0d201689ca2bc8f.mp3" # Пример 2 ] # Создаем интерфейс 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("Speech-to-Text Transcription"): gr.Interface( fn=transcribe_audio, inputs=gr.Audio(type="filepath", label="Загрузите аудиофайл"), outputs="text", title="Расшифровка аудио в текст", description="Загрузите аудиофайл, чтобы получить его текстовую расшифровку.", examples=audio_examples, examples_per_page=2 ) # Запускаем интерфейс demo.launch()